Skip to content
Snippets Groups Projects
  1. May 23, 2022
  2. May 17, 2022
  3. Apr 20, 2022
  4. Mar 22, 2022
  5. Feb 23, 2022
  6. Dec 31, 2021
    • Pierre Riteau's avatar
      Move project_name and kolla_role_name to role vars · 56fc74f2
      Pierre Riteau authored
      Role vars have a higher precedence than role defaults. This allows to
      import default vars from another role via vars_files without overriding
      project_name (see related bug for details).
      
      Change-Id: I3d919736e53d6f3e1a70d1267cf42c8d2c0ad221
      Related-Bug: #1951785
      56fc74f2
  7. Aug 17, 2021
    • Michal Arbet's avatar
      Use Docker healthchecks for keystone-fernet container · 90fd9152
      Michal Arbet authored
      This change enables the use of Docker healthchecks for
      keystone-fernet container. It checks if "key 0" has
      right permissions, and if rsync is able to distribute
      keys to other keystones.
      
      Implements: blueprint container-health-check
      Change-Id: I17bea723d4109e869cd05d211f6f8e4653f46e17
      90fd9152
  8. Jun 23, 2021
    • Mark Goddard's avatar
      Use ansible_facts to reference facts · ade5bfa3
      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 Kolla Ansible
      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
      
      Change-Id: I7e9d5c9b8b9164d4aee3abb4e37c8f28d98ff5d1
      Partially-Implements: blueprint performance-improvements
      ade5bfa3
  9. Feb 15, 2021
    • Pedro Henrique's avatar
      Add support to OpenID Connect Authentication flow · f3fbe837
      Pedro Henrique authored
      
      This pull request adds support for the OpenID Connect authentication
      flow in Keystone and enables both ID and access token authentication
      flows. The ID token configuration is designed to allow users to
      authenticate via Horizon using an identity federation; whereas the
      Access token is used to allow users to authenticate in the OpenStack CLI
      using a federated user.
      
      Without this PR, if one wants to configure OpenStack to use identity
      federation, he/she needs to do a lot of configurations in the keystone,
      Horizon, and register quite a good number of different parameters using
      the CLI such as mappings, identity providers, federated protocols, and
      so on. Therefore, with this PR, we propose a method for operators to
      introduce/present the IdP's metadata to Kolla-ansible, and based on the
      presented metadata, Kolla-ansible takes care of all of the
      configurations to prepare OpenStack to work in a federated environment.
      
      Implements: blueprint add-openid-support
      Co-Authored-By: default avatarJason Anderson <jasonanderson@uchicago.edu>
      Change-Id: I0203a3470d7f8f2a54d5e126d947f540d93b8210
      f3fbe837
  10. Oct 05, 2020
    • Michal Nasiadka's avatar
      Use Docker healthchecks for core services · c52a89ae
      Michal Nasiadka authored
      This change enables the use of Docker healthchecks for core OpenStack
      services.
      Also check-failures.sh has been updated to treat containers with
      unhealthy status as failed.
      
      Implements: blueprint container-health-check
      Change-Id: I79c6b11511ce8af70f77e2f6a490b59b477fefbb
      c52a89ae
  11. Aug 10, 2020
    • Mark Goddard's avatar
      Mount /etc/timezone based on host OS · 146b00ef
      Mark Goddard authored
      Previously we mounted /etc/timezone if the kolla_base_distro is debian
      or ubuntu. This would fail prechecks if debian or ubuntu images were
      deployed on CentOS. While this is not a supported combination, for
      correctness we should fix the condition to reference the host OS rather
      than the container OS, since that is where the /etc/timezone file is
      located.
      
      Change-Id: Ifc252ae793e6974356fcdca810b373f362d24ba5
      Closes-Bug: #1882553
      146b00ef
  12. Apr 09, 2020
    • Dincer Celik's avatar
      Introduce /etc/timezone to Debian/Ubuntu containers · 4b5df0d8
      Dincer Celik authored
      Some services look for /etc/timezone on Debian/Ubuntu, so we should
      introduce it to the containers.
      
      In addition, added prechecks for /etc/localtime and /etc/timezone.
      
      Closes-Bug: #1821592
      Change-Id: I9fef14643d1bcc7eee9547eb87fa1fb436d8a6b3
      4b5df0d8
    • James Kirsch's avatar
      Add support for encrypting backend Keystone HAProxy traffic · b475643c
      James Kirsch authored
      This patch introduces an optional backend encryption for Keystone
      service. When used in conjunction with enabling TLS for service API
      endpoints, network communcation will be encrypted end to end, from
      client through HAProxy to the Keystone service.
      
      Change-Id: I6351147ddaff8b2ae629179a9bc3bae2ebac9519
      Partially-Implements: blueprint add-ssl-internal-network
      b475643c
  13. Mar 06, 2020
  14. Jan 30, 2020
    • Mark Goddard's avatar
      Python 3: Use distro_python_version for dev mode · 5a786436
      Mark Goddard authored
      In dev mode currently the python source is mounted under python2.7
      site-packages. This change fixes this to use the distro_python_version
      variable to ensure dev mode works with Python 3 images.
      
      Change-Id: Ieae3778a02f1b79023b4f1c20eff27b37f481077
      Partially-Implements: blueprint python-3
      5a786436
  15. Jan 10, 2020
    • Mark Goddard's avatar
      CentOS 8: Support variable image tag suffix · 9755c924
      Mark Goddard authored
      For the CentOS 7 to 8 transition, we will have a period where both
      CentOS 7 and 8 images are available. We differentiate these images via a
      tag - the CentOS 8 images will have a tag of train-centos8 (or
      master-centos8 temporarily).
      
      To achieve this, and maintain backwards compatibility for the
      openstack_release variable, we introduce a new 'openstack_tag' variable.
      This variable is based on openstack_release, but has a suffix of
      'openstack_tag_suffix', which is empty except on CentOS 8 where it has a
      value of '-centos8'.
      
      Change-Id: I12ce4661afb3c255136cdc1aabe7cbd25560d625
      Partially-Implements: blueprint centos-rhel-8
      9755c924
  16. Oct 16, 2019
    • Radosław Piliszek's avatar
      Implement IPv6 support in the control plane · bc053c09
      Radosław Piliszek authored
      Introduce kolla_address filter.
      Introduce put_address_in_context filter.
      
      Add AF config to vars.
      
      Address contexts:
      - raw (default): <ADDR>
      - memcache: inet6:[<ADDR>]
      - url: [<ADDR>]
      
      Other changes:
      
      globals.yml - mention just IP in comment
      
      prechecks/port_checks (api_intf) - kolla_address handles validation
      
      3x interface conditional (swift configs: replication/storage)
      
      2x interface variable definition with hostname
      (haproxy listens; api intf)
      
      1x interface variable definition with hostname with bifrost exclusion
      (baremetal pre-install /etc/hosts; api intf)
      
      neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network
      
      basic multinode source CI job for IPv6
      
      prechecks for rabbitmq and qdrouterd use proper NSS database now
      
      MariaDB Galera Cluster WSREP SST mariabackup workaround
      (socat and IPv6)
      
      Ceph naming workaround in CI
      TODO: probably needs documenting
      
      RabbitMQ IPv6-only proto_dist
      
      Ceph ms switch to IPv6 mode
      
      Remove neutron-server ml2_type_vxlan/vxlan_group setting
      as it is not used (let's avoid any confusion)
      and could break setups without proper multicast routing
      if it started working (also IPv4-only)
      
      haproxy upgrade checks for slaves based on ipv6 addresses
      
      TODO:
      
      ovs-dpdk grabs ipv4 network address (w/ prefix len / submask)
      not supported, invalid by default because neutron_external has no address
      No idea whether ovs-dpdk works at all atm.
      
      ml2 for xenapi
      Xen is not supported too well.
      This would require working with XenAPI facts.
      
      rp_filter setting
      This would require meddling with ip6tables (there is no sysctl param).
      By default nothing is dropped.
      Unlikely we really need it.
      
      ironic dnsmasq is configured IPv4-only
      dnsmasq needs DHCPv6 options and testing in vivo.
      
      KNOWN ISSUES (beyond us):
      
      One cannot use IPv6 address to reference the image for docker like we
      currently do, see: https://github.com/moby/moby/issues/39033
      (docker_registry; docker API 400 - invalid reference format)
      workaround: use hostname/FQDN
      
      RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4.
      This is due to old RabbitMQ versions available in images.
      IPv4 is preferred by default and may fail in the IPv6-only scenario.
      This should be no problem in real life as IPv6-only is indeed IPv6-only.
      Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will
      no longer be relevant as we supply all the necessary config.
      See: https://github.com/rabbitmq/rabbitmq-server/pull/1982
      
      For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed
      to work well). Older Ansible versions are known to miss IPv6 addresses
      in interface facts. This may affect redeploys, reconfigures and
      upgrades which run after VIP address is assigned.
      See: https://github.com/ansible/ansible/issues/63227
      
      Bifrost Train does not support IPv6 deployments.
      See: https://storyboard.openstack.org/#!/story/2006689
      
      
      
      Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c
      Implements: blueprint ipv6-control-plane
      Signed-off-by: default avatarRadosław Piliszek <radoslaw.piliszek@gmail.com>
      bc053c09
  17. Sep 17, 2019
  18. Aug 15, 2019
    • Rafael Weingärtner's avatar
      Standardize the configuration of "oslo_messaging" section · 22a6223b
      Rafael Weingärtner authored
      After all of the discussions we had on
      "https://review.opendev.org/#/c/670626/2", I studied all projects that
      have an "oslo_messaging" section. Afterwards, I applied the same method
      that is already used in "oslo_messaging" section in Nova, Cinder, and
      others. This guarantees that we have a consistent method to
      enable/disable notifications across projects based on components (e.g.
      Ceilometer) being enabled or disabled. Here follows the list of
      components, and the respective changes I did.
      
      * Aodh:
      The section is declared, but it is not used. Therefore, it will
      be removed in an upcomming PR.
      
      * Congress:
      The section is declared, but it is not used. Therefore, it will
      be removed in an upcomming PR.
      
      * Cinder:
      It was already properly configured.
      
      * Octavia:
      The section is declared, but it is not used. Therefore, it will
      be removed in an upcomming PR.
      
      * Heat:
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Ceilometer:
      Ceilometer publishes some messages in the rabbitMQ. However, the
      default driver is "messagingv2", and not ''(empty) as defined in Oslo;
      these configurations are defined in ceilometer/publisher/messaging.py.
      Therefore, we do not need to do anything for the
      "oslo_messaging_notifications" section in Ceilometer
      
      * Tacker:
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Neutron:
      It was already properly configured.
      
      * Nova
      It was already properly configured. However, we found another issue
      with its configuration. Kolla-ansible does not configure nova
      notifications as it should. If 'searchlight' is not installed (enabled)
      the 'notification_format' should be 'unversioned'. The default is
      'both'; so nova will send a notification to the queue
      versioned_notifications; but that queue has no consumer when
      'searchlight' is disabled. In our case, the queue got 511k messages.
      The huge amount of "stuck" messages made the Rabbitmq cluster
      unstable.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1478274
      https://bugs.launchpad.net/ceilometer/+bug/1665449
      
      * Nova_hyperv:
      I added the same configurations as in Nova project.
      
      * Vitrage
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Searchlight
      I created a mechanism similar to what we have in AODH, Cinder, Nova,
      and others.
      
      * Ironic
      I created a mechanism similar to what we have in AODH, Cinder, Nova,
      and others.
      
      * Glance
      It was already properly configured.
      
      * Trove
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Blazar
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Sahara
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Watcher
      I created a mechanism similar to what we have in AODH, Cinder, Nova,
      and others.
      
      * Barbican
      I created a mechanism similar to what we have in Cinder, Nova,
      and others. I also added a configuration to 'keystone_notifications'
      section. Barbican needs its own queue to capture events from Keystone.
      Otherwise, it has an impact on Ceilometer and other systems that are
      connected to the "notifications" default queue.
      
      * Keystone
      Keystone is the system that triggered this work with the discussions
      that followed on https://review.opendev.org/#/c/670626/2
      
      . After a long
      discussion, we agreed to apply the same approach that we have in Nova,
      Cinder and other systems in Keystone. That is what we did. Moreover, we
      introduce a new topic "barbican_notifications" when barbican is
      enabled. We also removed the "variable" enable_cadf_notifications, as
      it is obsolete, and the default in Keystone is CADF.
      
      * Mistral:
      It was hardcoded "noop" as the driver. However, that does not seem a
      good practice. Instead, I applied the same standard of using the driver
      and pushing to "notifications" queue if Ceilometer is enabled.
      
      * Cyborg:
      I created a mechanism similar to what we have in AODH, Cinder, Nova,
      and others.
      
      * Murano
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Senlin
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Manila
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Zun
      The section is declared, but it is not used. Therefore, it will
      be removed in an upcomming PR.
      
      * Designate
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      * Magnum
      It was already using a similar scheme; I just modified it a little bit
      to be the same as we have in all other components
      
      Closes-Bug: #1838985
      
      Change-Id: I88bdb004814f37c81c9a9c4e5e491fac69f6f202
      Signed-off-by: default avatarRafael Weingärtner <rafael@apache.org>
      22a6223b
  19. May 17, 2019
    • binhong.hua's avatar
      Make kolla-ansible support extra volumes · 12ff28a6
      binhong.hua authored
      When integrating 3rd party component into openstack with kolla-ansible,
      maybe have to mount some extra volumes to container.
      
      Change-Id: I69108209320edad4c4ffa37dabadff62d7340939
      Implements: blueprint support-extra-volumes
      12ff28a6
  20. Feb 08, 2019
    • Jim Rollenhagen's avatar
      Allow keystone services to use independent hostnames · bece976b
      Jim Rollenhagen authored
      This allows keystone service endpoints to use custom hostnames, and adds the
      following variables:
      
      * keystone_internal_fqdn
      * keystone_external_fqdn
      
      These default to the old values of kolla_internal_fqdn or
      kolla_external_fqdn.
      
      This also adds the following variables:
      
      * keystone_admin_listen_port
      * keystone_public_listen_port
      
      These default to keystone_admin_port and keystone_public_port,
      respectively, for backward compatibility.
      
      These options allow the user to differentiate between the port the
      service listens on, and the port the service is reachable on. This is
      useful for external load balancers which live on the same host as the
      service itself.
      
      Change-Id: I50c46c674134f9958ee4357f0f4eed5483af2214
      Implements: blueprint service-hostnames
      bece976b
  21. Sep 26, 2018
    • Adam Harwell's avatar
      Refactor haproxy config (split by service) V2.0 · f1c81365
      Adam Harwell authored
      Having all services in one giant haproxy file makes altering
      configuration for a service both painful and dangerous. Each service
      should be configured with a simple set of variables and rendered with a
      single unified template.
      
      Available are two new templates:
      
      * haproxy_single_service_listen.cfg.j2: close to the original style, but
      only one service per file
      * haproxy_single_service_split.cfg.j2: using the newer haproxy syntax
      for separated frontend and backend
      
      For now the default will be the single listen block, for ease of
      transition.
      
      Change-Id: I6e237438fbc0aa3c89a3c8bd706a53b74e71904b
      f1c81365
  22. Aug 14, 2018
  23. Jul 26, 2018
    • Lakshmi Prasanna Goutham Pratapa's avatar
      Apply Resource Constraints to Services. · 14bf5247
      Lakshmi Prasanna Goutham Pratapa authored
      This commit is to apply resource-constraints to a few more OpenStack services.
      Commit to  apply constraints to the last set of services will be made in
      the upcoming commit.
      
      Depends-on: Icafa54baca24d2de64238222a5677b9d8b90e2aa
      Change-Id: I39004f54281f97d53dfa4b1dbcf248650ad6f186
      14bf5247
  24. Jan 23, 2018
    • Alexandru Bogdan Pica's avatar
      Implement external MariaDB and pre-configured Databases support · 8e3b7944
      Alexandru Bogdan Pica authored
      This change allows the following use cases:
      
      1. Using an already-configured MariaDB / MySQL server / Cluster
      2. Using already-created DB users, without requiring root DB access.
      
      Update: added external mariadb precheck
      
      Change-Id: I78b0d178306d7c5293b0bf53e445f19f18b4b824
      Implements: blueprint external-mariadb-support.
      Closes-Bug: #1603121
      8e3b7944
  25. Jan 17, 2018
  26. Jan 09, 2018
    • Michal Rostecki's avatar
      dev mode: Add support for keystone · 307d324f
      Michal Rostecki authored
      Provide support fot kolla dev mode in Keystone. When
      'kolla_dev_mode' or 'keystone_dev_mode' variables are
      enabled, source code of Keystone project is cloned
      and bindmounted.
      
      Partially implements: blueprint mount-sources
      
      Change-Id: Ie4cf401ecd9a507e739a53dfdf16f65292ab57e5
      307d324f
  27. Jun 03, 2017
    • Dai Dang Van's avatar
      Mixing binary and source images for I* and K* projects · bf0bf043
      Dai Dang Van authored
      In case Kolla's users want to deploy with both of
      binary and source image, we should have a variable
      install type that define install type for each project.
      
      We also add specific image tag for each Openstack project.
      
      This commit is implemented for Ironic, Kabor,
      Keystone project and iscsi as well.
      
      Change-Id: I134d840b1c0e24171a32dec0c7daa6dc2e9ecd87
      Implements: blueprint mixing-binary-and-source-image
      bf0bf043
  28. Jan 26, 2017
  29. Jan 05, 2017
  30. Aug 25, 2016
    • Shaun Smekel's avatar
      Add full support for fernet · 1c68ae38
      Shaun Smekel authored
      This addresses the ansible aspects of fernet key bootstrapping as
      well as distributed key rotation.
      
      - Bootstrapping is handled in the same way as keystone bootstrap.
      - A new keystone-fernet and keystone-ssh container is created to allow
        the nodes to communicate with each other (taken from nova-ssh).
      - The keystone-fernet is a keystone container with crontab installed.
        This will handle key rotations through keystone-manage and trigger
        an rsync to push new tokens to other nodes.
      - Key rotation is setup to be balanced across the keystone nodes using
        a round-robbin style. This ensures that any node failures will not
        stop the keys from rotating. This is configured by a desired token
        expiration time which then determines the cron scheduling for each
        node as well as the number of fernet tokens in rotation.
      - Ability for recovered node to resync with the cluster. When a node
        starts it will run sanity checks to ensure that its fernet tokens
        are not stale. If they are it will rsync with other nodes to ensure
        its tokens are up to date.
      
      The Docker component is implemented in:
        https://review.openstack.org/#/c/349366
      
      Change-Id: I15052c25a1d1149d364236f10ced2e2346119738
      Implements: blueprint keystone-fernet-token
      1c68ae38
  31. Aug 02, 2016
    • Ken Wronkiewicz's avatar
      Horizon interface address and memcached override · a6d89f44
      Ken Wronkiewicz authored
      Note: This should not result in any behavior changes in regular Kolla, just
      Kolla-Kubernetes and only when you've overridden stuff in globals.yml
      
      Allows override of interface address and memcached pools, so that Kubernetes
      can do the right thing.
      
      There are some significant architectural issues involved in memcached pooling
      in the Kolla-kubernetes world.  Avoiding them right now.
      
      Current working with this Kolla-Kubernetes globals.yml file:
      
      api_interface_address: "0.0.0.0"
      
      memcached_servers: "memcached"
      
      keystone_database_address: "mariadb"
      keystone_admin_url: "http://keystone-admin:35357/v3"
      keystone_internal_url: "http://keystone-public:5000/v3"
      keystone_public_url: "http://keystone-public:5000/v3
      
      "
      
      Three tings to note:
       * In Kolla-Kubernetes, the service is not using net=host, so a
         0.0.0.0 interface address is totally OK.  That patch has been merged.
       * In Kolla-Kubernetes, the global.yml file doesn't do var substitution
         so you have to be explicit about the URLs, otherwise Keystone will
         look like it was provisioned but it won't quite be provisioned right.
       * In order to not duplicate tons of code, moved the keystone_admin_url /
         keystone_internal_url / keystone_public_url to the common defaults
         from the keystone defaults.
      
      Co-Authored-By: default avatarRyan Hallisey <rhallise@redhat.com>
      Change-Id: I586ce1c6c3300254c4e2a398ff46645df576aeb0
      Partially-implements: blueprint api-interface-bind-address-override
      a6d89f44
  32. Jul 14, 2016
  33. May 13, 2016
  34. Mar 03, 2016
    • SamYaple's avatar
      Fix Keystone v3 and Horizon · 57124620
      SamYaple authored
      After our switch to keystone-manage bootstrap Horizon is not happy
      due to v3 not being setup correctly. This patch fixes that
      
      This also includes removal of unused variables (transforms them into
      endpoint url variables)
      
      TrivialFix
      Change-Id: I1e04db8c24049f80e974c063f03068a2ab32a563
      57124620
  35. Mar 01, 2016
    • SamYaple's avatar
      Remove keystone admin token · 4edd0baf
      SamYaple authored
      
      Admin token has been deprecated upstream. It will be removed in O. We
      switch over to the new `keystone-manage bootstrap` method for creating
      the initial admin user, role, and project.
      
      Co-Authored-By: default avatarSam Yaple <sam@yaple.net>
      Change-Id: I6ca90e8d4c3b71009e24b049b2efbc08c05ebfbf
      4edd0baf
  36. Feb 26, 2016
    • SamYaple's avatar
      Change kolla_internal_address variable · d3cfb205
      SamYaple authored
      Due to poor planning on our variable names we have a situation where
      we have "internal_address" which must be a VIP, but "external_address"
      which should be a DNS name. Now with two vips "external_vip_address"
      is a new variable.
      
      This corrects that issue by deprecating kolla_internal_address and
      replacing it with 4 nicely named variables.
      
      kolla_internal_vip_address
      kolla_internal_fqdn
      kolla_external_vip_address
      kolla_external_fqdn
      
      The default behaviour will remain the same, and the way the variable
      inheritance is setup the kolla_internal_address variable can still be
      set in globals.yml and propogate out to these 4 new variables like it
      normally would, but all reference to kolla_internal_address has been
      completely removed.
      
      Change-Id: I4556dcdbf4d91a8d2751981ef9c64bad44a719e5
      Partially-Implements: blueprint ssl-kolla
      d3cfb205
  37. Feb 15, 2016
  38. Jan 20, 2016
  39. Dec 15, 2015
Loading