Skip to content
Snippets Groups Projects
  1. Aug 23, 2024
  2. Aug 12, 2024
  3. Mar 25, 2024
  4. Nov 30, 2023
  5. Nov 29, 2023
  6. Mar 02, 2023
  7. Feb 14, 2023
  8. Jan 13, 2023
    • Matt Crees's avatar
      Add a flag to handle RabbitMQ high availability · 09df6fc1
      Matt Crees authored
      A combination of durable queues and classic queue mirroring can be used
      to provide high availability of RabbitMQ. However, these options should
      only be used together, otherwise the system will become unstable. Using
      the flag ``om_enable_rabbitmq_high_availability`` will either enable
      both options at once, or neither of them.
      
      There are some queues that should not be mirrored:
      * ``reply`` queues (these have a single consumer and TTL policy)
      * ``fanout`` queues (these have a TTL policy)
      * ``amq`` queues (these are auto-delete queues, with a single consumer)
      An exclusionary pattern is used in the classic mirroring policy. This
      pattern is ``^(?!(amq\\.)|(.*_fanout_)|(reply_)).*``
      
      Change-Id: I51c8023b260eb40b2eaa91bd276b46890c215c25
      09df6fc1
  9. Jan 05, 2023
  10. Oct 31, 2022
  11. Jul 06, 2022
  12. Jun 09, 2022
    • Will Szumski's avatar
      Add keystone_authtoken.service_type · 49006e56
      Will Szumski authored
      Fixes an issue where access rules failed to validate:
      
          Cannot validate request with restricted access rules. Set
          service_type in [keystone_authtoken] to allow access rule validation
      
      I've used the values from the endpoint. This was mostly a straight
      forward copy and paste, except:
      
      - versioned endpoints e.g cinderv3 where I stripped the version
      - monasca has multiple endpoints associated with a single service. For
        this, I concatenated logging and monitoring to be logging-monitoring.
      
      Closes-Bug: #1965111
      Change-Id: Ic4b3ab60abad8c3dd96cd4923a67f2a8f9d195d7
      49006e56
  13. May 28, 2022
    • Radosław Piliszek's avatar
      Do not use keystone_admin_url et al · 7ca9349b
      Radosław Piliszek authored
      Following up on [1].
      The 3 variables are only introducing noise after we removed
      the reliance on Keystone's admin port.
      
      [1] I5099b08953789b280c915a6b7a22bdd4e3404076
      
      Change-Id: I3f9dab93042799eda9174257e604fd1844684c1c
      7ca9349b
  14. Apr 21, 2022
  15. Aug 10, 2021
    • Mark Goddard's avatar
      ironic: Follow up for ironic_enable_keystone_integration · 46df30d8
      Mark Goddard authored
      Follow up for I0c7e9a28876a1d4278fb2ed8555c2b08472864b9 which added a
      ironic_enable_keystone_integration variable to support Ironic in
      multi-region environments. This change skips Keystone service
      registration based on ironic_enable_keystone_integration rather than
      enable_keystone. It also updates the ironic-inspector.conf template to
      use the new variable.
      
      Change-Id: I2ecba4999e194766258ac5beed62877d43829313
      46df30d8
  16. Jun 22, 2021
  17. Sep 22, 2020
    • Pierre Riteau's avatar
      Reduce the use of SQLAlchemy connection pooling · c8177202
      Pierre Riteau authored
      When the internal VIP is moved in the event of a failure of the active
      controller, OpenStack services can become unresponsive as they try to
      talk with MariaDB using connections from the SQLAlchemy pool.
      
      It has been argued that OpenStack doesn't really need to use connection
      pooling with MariaDB [1]. This commit reduces the use of connection
      pooling via two configuration options:
      
      - max_pool_size is set to 1 to allow only a single connection in the
        pool (it is not possible to disable connection pooling entirely via
        oslo.db, and max_pool_size = 0 means unlimited pool size)
      - lower connection_recycle_time from the default of one hour to 10
        seconds, which means the single connection in the pool will be
        recreated regularly
      
      These settings have shown better reactivity of the system in the event
      of a failover.
      
      [1] http://lists.openstack.org/pipermail/openstack-dev/2015-April/061808.html
      
      Change-Id: Ib6a62d4428db9b95569314084090472870417f3d
      Closes-Bug: #1896635
      c8177202
  18. Sep 17, 2020
    • Mark Goddard's avatar
      Support TLS encryption of RabbitMQ client-server traffic · 761ea9a3
      Mark Goddard authored
      This change adds support for encryption of communication between
      OpenStack services and RabbitMQ. Server certificates are supported, but
      currently client certificates are not.
      
      The kolla-ansible certificates command has been updated to support
      generating certificates for RabbitMQ for development and testing.
      
      RabbitMQ TLS is enabled in the all-in-one source CI jobs, or when
      The Zuul 'tls_enabled' variable is true.
      
      Change-Id: I4f1d04150fb2b5af085b762890092f87ae6076b5
      Implements: blueprint message-queue-ssl-support
      761ea9a3
  19. Apr 03, 2020
  20. Jan 13, 2020
    • James Kirsch's avatar
      Configure services to use Certificate Authority · c15dc203
      James Kirsch authored
      Include a reference to the globally configured Certificate Authority to
      all services. Services use the CA to verify HTTPs connections.
      
      Change-Id: I38da931cdd7ff46cce1994763b5c713652b096cc
      Partially-Implements: blueprint support-trusted-ca-certificate-file
      c15dc203
  21. 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
  22. Mar 06, 2019
    • Jim Rollenhagen's avatar
      Allow ironic services to use independent hostnames · d1d1837c
      Jim Rollenhagen authored
      This allows ironic service endpoints to use custom hostnames, and adds the
      following variables:
      
      * ironic_internal_fqdn
      * ironic_external_fqdn
      * ironic_inspector_internal_fqdn
      * ironic_inspector_external_fqdn
      
      These default to the old values of kolla_internal_fqdn or
      kolla_external_fqdn.
      
      This also adds ironic_api_listen_port and ironic_inspector_listen_port
      options, which default to ironic_api_port and ironic_inspector_port 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: I45b175e85866b4cfecad8451b202a5a27f888a84
      Implements: blueprint service-hostnames
      d1d1837c
    • Jim Rollenhagen's avatar
      Use keystone_*_url var in all configs · 2e4e6050
      Jim Rollenhagen authored
      We're duplicating code to build the keystone URLs in nearly every
      config, where we've already done it in group_vars. Replace the
      redundancy with a variable that does the same thing.
      
      Change-Id: I207d77870e2535c1cdcbc5eaf704f0448ac85a7a
      2e4e6050
  23. Feb 22, 2019
    • Mark Goddard's avatar
      Improve standalone ironic support · 54965c87
      Mark Goddard authored
      Adds a new flag, 'enable_openstack_core', which defaults to 'yes'.
      Setting this flag to 'no' will disable the core OpenStack services,
      including Glance, Heat, Horizon, Keystone, Neutron, and Nova.
      
      Improves the default configuration of OpenStack Ironic when used in
      standalone mode. In particular, configures a noauth mode when Keystone
      is disabled, and allows the iPXE server to be used for provisioning as
      well as inspection if Neutron is disabled.
      
      Documentation for standalone ironic will be updated separately.
      
      This patch was developed and tested using Bikolla [1].
      
      [1] https://github.com/markgoddard/bikolla
      
      Change-Id: Ic47f5ad81b8126a51e52a445097f7950dba233cd
      Implements: blueprint standalone-ironic
      54965c87
  24. Jan 22, 2019
  25. Nov 20, 2018
    • Mark Goddard's avatar
      Support Ironic Inspector dnsmasq PXE filter · 4418c164
      Mark Goddard authored
      The dnsmasq PXE filter [1] provides far better scalability than the
      iptables filter typically used. Inspector manages files in a dhcp-hostsdir
      directory that is watched by dnsmasq via inotify. Dnsmasq then either
      whitelists or blacklists MAC addresses based on the contents of these
      files.
      
      This change adds a new variable, ironic_inspector_pxe_filter, that can
      be used to configure the PXE filter for ironic inspector. Currently
      supported values are 'iptables' and 'dnsmasq', with 'iptables' being the
      default for backwards compatibility.
      
      [1]
      https://docs.openstack.org/ironic-inspector/latest/admin/dnsmasq-pxe-filter.html
      
      Implements: blueprint ironic-inspector-dnsmasq-pxe-filter
      Change-Id: I73cae9c33b49972342cf1984372a5c784df5cbc2
      4418c164
  26. Nov 06, 2018
    • Mark Goddard's avatar
      Set ramdisk logs path for ironic inspector · 7ebf548f
      Mark Goddard authored
      If the [processing] ramdisk_logs_dir option is set, logs returned by the
      ironic inspection ramdisk following hardware inspection will be stored
      at that location. This enables easier debugging if inspection fails.
      
      Change-Id: I36bdf75c04b088b67b5f54fdf20251c10bdddb63
      7ebf548f
  27. Sep 28, 2018
  28. Aug 07, 2018
  29. Jan 22, 2018
  30. Dec 30, 2017
    • Mark Goddard's avatar
      Ensure inspector uses internal ironic interface · 5f2429b5
      Mark Goddard authored
      Kolla-ansible typically configures services to access the internal API
      endpoint of other services, rather than the default public endpoint.
      
      This change ensures that this is the case for ironic inspector.
      
      Change-Id: I998f12435fc1bd306444f9a68bd7f99f5b78f6f8
      Closes-Bug: #1740591
      5f2429b5
  31. Jul 18, 2017
  32. Jul 06, 2017
  33. Apr 17, 2017
    • Mark Goddard's avatar
      Use ironic-inspector user for ironic inspector · 07453f34
      Mark Goddard authored
      This change updates the ironic_inspector container deployment tasks
      to use the new kolla ironic-inspector image (see kolla change
      Ibdc5ba35db61f4974d4282aff34bcb5ccd952d45). The new image uses the
      ironic-inspector user rather than the ironic user to execute the
      ironic inspector service as this more closely aligns with what is
      typically done by downstream packagers (specifically, Ubuntu and
      RDO).
      
      This change sets the owner and group to ironic-inspector when
      copying configuration files into place, and uses the log directory
      /var/log/kolla/ironic-inspector.
      
      Change-Id: I8579d5c2d741636406ff60bececc74b50743b83e
      Depends-On: Ibdc5ba35db61f4974d4282aff34bcb5ccd952d45
      Closes-Bug: #1624457
      07453f34
  34. Feb 14, 2017
  35. Jan 20, 2017
Loading