Skip to content
Snippets Groups Projects
  1. Aug 19, 2020
    • Rafael Weingärtner's avatar
      Standardize use and construction of endpoint URLs · f425c067
      Rafael Weingärtner authored
      
      The goal for this push request is to normalize the construction and use
       of internal, external, and admin URLs. While extending Kolla-ansible
       to enable a more flexible method to manage external URLs, we noticed
       that the same URL was constructed multiple times in different parts
       of the code. This can make it difficult for people that want to work
       with these URLs and create inconsistencies in a large code base with
       time. Therefore, we are proposing here the use of
       "single Kolla-ansible variable" per endpoint URL, which facilitates
       for people that are interested in overriding/extending these URLs.
      
      As an example, we extended Kolla-ansible to facilitate the "override"
      of public (external) URLs with the following standard
      "<component/serviceName>.<companyBaseUrl>".
      Therefore, the "NAT/redirect" in the SSL termination system (HAproxy,
      HTTPD or some other) is done via the service name, and not by the port.
      This allows operators to easily and automatically create more friendly
       URL names. To develop this feature, we first applied this patch that
       we are sending now to the community. We did that to reduce the surface
        of changes in Kolla-ansible.
      
      Another example is the integration of Kolla-ansible and Consul, which
      we also implemented internally, and also requires URLs changes.
      Therefore, this PR is essential to reduce code duplicity, and to
      facility users/developers to work/customize the services URLs.
      
      Change-Id: I73d483e01476e779a5155b2e18dd5ea25f514e93
      Signed-off-by: default avatarRafael Weingärtner <rafael@apache.org>
      f425c067
  2. Apr 28, 2020
  3. Apr 03, 2020
  4. 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
  5. 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
  6. Sep 06, 2019
    • Mark Goddard's avatar
      Add [nova] section to ironic.conf · 8489a753
      Mark Goddard authored
      In the Train cycle, ironic added a [nova] section to its configuration.
      This is used to configure access to Nova API, for sending power state
      callbacks.
      
      This change adds the [nova] section to ironic.conf.
      
      Change-Id: Ib891af1db2a2c838c887e858ea0721f5e6a4fab0
      Closes-Bug: #1843070
      8489a753
    • Mark Goddard's avatar
      Fix removed and deprecated options in ironic.conf · 3da05319
      Mark Goddard authored
      The ironic configuration in ironic.conf uses several options which have
      been removed in the Train cycle:
      
      [glance] glance_api_servers was removed in https://review.opendev.org/#/c/665929.
      [neutron] url was removed in https://review.opendev.org/#/c/672971.
      
      We should use the endpoint catalog instead of specifying the endpoint
      for both of these, and also ironic inspector. region_name and
      valid_interfaces have been added for that purpose.
      
      Other options are deprecated.
      
      [conductor] api_url: Use [service_catalog] section to lookup ironic API
      endpoint instead.
      
      [inspector] enabled: No longer used.
      
      Change-Id: If07c4ff9bfea7d780aeff5c3295a0ace7d10ecdc
      Closes-Bug: #1843067
      3da05319
  7. Aug 29, 2019
  8. 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
  9. 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
  10. 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
  11. Feb 08, 2019
    • Jim Rollenhagen's avatar
      Allow neutron services to use independent hostnames · 255fff02
      Jim Rollenhagen authored
      This allows neutron service endpoints to use custom hostnames, and adds the
      following variables:
      
      * neutron_internal_fqdn
      * neutron_external_fqdn
      
      These default to the old values of kolla_internal_fqdn or
      kolla_external_fqdn.
      
      This also adds a neutron_server_listen_port option, which defaults to
      neutron_server_port for backward compatibility.
      
      This option 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: I87d7387326b6eaa6adae1600b48d480319d10676
      Implements: blueprint service-hostnames
      255fff02
    • Jim Rollenhagen's avatar
      Allow glance services to use independent hostnames · a819ef12
      Jim Rollenhagen authored
      This allows glance service endpoints to use custom hostnames, and adds the
      following variables:
      
      * glance_internal_fqdn
      * glance_external_fqdn
      
      These default to the old values of kolla_internal_fqdn or
      kolla_external_fqdn.
      
      This also adds a glance_api_listen_port option, which defaults to
      glance_api_port for backward compatibility.
      
      This option 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: Icb91f728533e2db1908b23dabb0501cf9f8a2b75
      Implements: blueprint service-hostnames
      a819ef12
  12. Feb 04, 2019
    • Mark Goddard's avatar
      Set [pxe] tftp_server in ironic.conf · 4d646466
      Mark Goddard authored
      The ironic TFTP server should be accessed via the internal API network.
      For ironic inspector, dnsmasq.conf advertises this correctly:
      
      dhcp-option=option:tftp-server,'api_interface_address'
      dhcp-option=option:server-ip-address,'api_interface_address'
      
      However, ironic conductor does not set the [pxe] tftp_server variable.
      This means the TFTP server advertised gets the default value of $my_ip,
      which is set by
      https://docs.openstack.org/oslo.utils/latest/reference/netutils.html#oslo_utils.netutils.get_my_ipv4,
      typically the source IP for the default route.
      
      This change sets [pxe] tftp_server to 'api_interface_address'.
      
      Change-Id: Ic3e688b3f2b92ad9515322f49cd5f4f29d763e49
      Closes-Bug: #1808347
      4d646466
  13. Aug 07, 2018
  14. Aug 03, 2018
    • Will Miller's avatar
      Add Cinder credentials to ironic.conf · 95007835
      Will Miller authored
      Ironic requires the Keystone credentials to communicate with Cinder if
      booting from volume.
      
      Change-Id: Id9a90d986e391e84c8ad918af371a5aef33a3524
      Closes-Bug: #1785201
      95007835
  15. Jul 17, 2018
  16. Jun 26, 2018
  17. May 25, 2018
    • Will Szumski's avatar
      Add support for enabling ipxe boot with ironic · 0a1ccc26
      Will Szumski authored
      When enable_ironic_ipxe is set in /etc/kolla/globals.yml,
      the following happens:
      
      - a new docker container, ironic_ipxe, is created. This contains
        an apache webserver used to serve up the boot images
      - ironic is configured to use ipxe
      
      Change-Id: I08fca1864a00afb768494406c49e968920c83ae7
      Implements: blueprint ironic-ipxe
      0a1ccc26
  18. Apr 18, 2018
    • Kevin TIBI's avatar
      Fix SSL api for multiple services · a81a5d5d
      Kevin TIBI authored
      If SSL is enabled, api of multiple services returns
      wrong external URL without https prefix.
      
      Removal of condition for deletion of http  header.
      
      Change-Id: I4264e04d0d6b9a3e11ef7dd7add6c5e166cf9fb4
      Closes-Bug: #1749155
      Closes-Bug: #1717491
      a81a5d5d
  19. Jan 22, 2018
  20. Jan 04, 2018
    • Mark Goddard's avatar
      Fix ironic inspector public endpoint · dda24c47
      Mark Goddard authored
      Fixes a bug where the Baremetal Introspection service's public endpoint
      registered in the Identity service referenced the internal API endpoint.
      
      Also updates keystone endpoints for the Baremetal and Baremetal
      Introspection services during reconfigure and upgrade operations.
      Previously this was only done during deploy.
      
      Change-Id: I32d475f288bb4a3834c13cc86f0c53b5437c3d25
      Closes-Bug: #1738418
      dda24c47
  21. Nov 22, 2017
    • Andrew Smith's avatar
      Add support for hybrid messaging backends · fd1d3af0
      Andrew Smith authored
      This commit separates the messaging rpc and notify transports in order
      to support separate and different oslo.messaging backends
      
      This patch:
      * add rpc and notify variables
      * update service role conf templates
      * add example to globals.yaml
      * add release note
      
      Implements: blueprint hybrid-messaging
      Change-Id: I34691c2895c8563f1f322f0850ecff98d11b5185
      fd1d3af0
  22. Oct 09, 2017
    • jinxingfang's avatar
      Remove discard configuration · f73af439
      jinxingfang authored
      The admin_password and admin_user in default section is discarded
      in code, no longer be used anymore.
      
      Change-Id: I1d31faf0781cb61d13aa6a76534e38783e4f920f
      f73af439
  23. Aug 29, 2017
  24. Jul 25, 2017
    • Yotaro Konishi's avatar
      Remove an unnecessary endif · 133423a3
      Yotaro Konishi authored
      This patch fixes Jinja2 syntax error in ironic.conf.j2.
      
      All kolla-kubernetes configurations was recently removed by [1], but the
      commit overlooked to remove a '{% endif %}' statement in ironic.conf.j2.
      
      [1] cacf08f0
      
      Change-Id: I115fedfd026f14409b62f9552ff401956909f8a8
      Closes-Bug: #1706230
      133423a3
  25. Jul 19, 2017
    • Flavio Percoco's avatar
      Allow for running standalone Ironic w/o keystone · bbe9d418
      Flavio Percoco authored
      The Ironic templates and roles assume Keystone is enabled and they don't
      make use of the `enable_keystone var. This patch changes the behavior so
      that `noauth` is used as auth method for Ironic if keystone is not
      enabled, the Ironic endpoint is not registered if keystone is not
      enabled and the keystone section is not created in the config file.
      
      Change-Id: I813de42d10ac264eec81076cb107b58af09ff686
      bbe9d418
  26. Jul 18, 2017
    • Mark Goddard's avatar
      Revert "Add default_boot_option configuration" · 1ab0b7ad
      Mark Goddard authored
      This reverts commit 898155df.
      
      The default value of the ironic configuration option default_boot_option
      will eventually change from netboot to local. The netboot option is
      incompatible with multitenancy in ironic, as it requires a PXE
      environment in the tenant network, so it was no longer deemed a suitable
      default value.
      
      Ironic added a warning message when this option is not explicitly set,
      presumably to alert operators to the change. The commit being reverted
      set the option to 'netboot'. This will cause operators to continue to
      use the netboot option even after the default value changes, which was
      presumably not the intention of the ironic team in changing the default
      value. It also hides the warning message from the operator that could
      alert them to the fact that this default is changing.
      
      Change-Id: I0ebb1d5ffbead50b034488337e6c93a2f48aaf69
      Related-Bug: #1696636
      1ab0b7ad
    • Jeffrey Zhang's avatar
      Remove all kolla-kubernetes configurations · cacf08f0
      Jeffrey Zhang authored
      kolla-kubernetes is using its own configuration generation[0], so it is
      time for kolla-ansible to remove the related code to simplify the
      logical.
      
      [0] https://github.com/openstack/kolla-kubernetes/tree/master/ansible
      
      Change-Id: I7bb0b7fe3b8eea906613e936d5e9d19f4f2e80bb
      Implements: blueprint clean-k8s-config
      cacf08f0
  27. Jul 06, 2017
  28. Jul 04, 2017
  29. Jun 21, 2017
  30. Jun 08, 2017
    • shaofeng_cheng's avatar
      Add default_boot_option configuration · 898155df
      shaofeng_cheng authored
      The default value of default_boot_option configuration will
      change eventually from "netboot" to "local".
      It is recommended to set an explicit value for it during the
      transition period
      
      Change-Id: Ic42b84e82d4ad27e371536ad9915b5a32118012d
      Closes-Bug: #1696636
      898155df
  31. May 27, 2017
    • shaofeng_cheng's avatar
      Enabled pxe_ssh driver in ironic · 0002de69
      shaofeng_cheng authored
      XenServer drivers can be used to deploy hosts with Ironic by
      using XenServer VMs to simulate bare metal nodes.
      
      Ironic provides support via the pxe_ssh and agent_ssh drivers
      for using a XenServer VM as a bare metal target and do provisioning on it.
      
      Change-Id: Icd39f9f4573cf7c8c654591256f0228ef21d6117
      0002de69
  32. May 23, 2017
  33. Mar 12, 2017
  34. Feb 13, 2017
  35. Feb 03, 2017
  36. Feb 02, 2017
Loading