- Apr 21, 2022
-
-
Christian Berendt authored
Change-Id: Ide82b7a7fa6752b60f2c9c31cdc4c79183fc62f6
-
- Apr 13, 2022
-
-
Maksim Malchuk authored
Add a new parameter 'ironic_dnsmasq_dhcp_ranges' and enable the configuration of the corresponding 'dhcp-range' and 'dhcp-option' blocks in Ironic Inspector dnsmasq for multiple ranges. The old parameters 'ironic_dnsmasq_dhcp_range' and 'ironic_dnsmasq_default_gateway' used for the only range are now removed. This change implements the same solution used in the TripleO several years ago in the: Ie49b07ffe948576f5d9330cf11ee014aef4b282d Also, this change contains: Iae15e9db0acc2ecd5b087a9ca430be948bc3e649 fix for lease time. The value can be changed globally or per range. Change-Id: Ib69fc0017b3bfbc8da4dfd4301710fbf88be661a Signed-off-by:
Maksim Malchuk <maksim.malchuk@gmail.com> Co-Authored-By:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Apr 06, 2022
-
-
Radosław Piliszek authored
Change-Id: I2ae1a402e723cd1063618d1b9fb18f6adb27a390
-
Radosław Piliszek authored
Change-Id: I8e4096d7136d0ce9e54f1af0bb9ba110487fb35b
-
Radosław Piliszek authored
Depends-On: https://review.opendev.org/c/openstack/kolla/+/832163 Change-Id: Ia2dba1854e925041ae23c731273b810bb2d5ec30
-
- Apr 05, 2022
-
-
Marcin Juszkiewicz authored
As we have only source image type then we do not need to handle other option. Change-Id: I753aa0182cfc975bb8b5cd1476ab2c336a7691fa
-
- Mar 04, 2022
-
-
Radosław Piliszek authored
Ironic is dropping default_boot_option and the new default has been around for quite a while now so let's remove this old scary comment. Change-Id: I80d645cb97251ac63e04d7ec1c87d4600d17d4ee
-
Radosław Piliszek authored
Set kernel_append_params instead. Change-Id: I4fb42d376636dc363cd86950ed37de4a3d28df73
-
- Feb 10, 2022
-
-
Mark Goddard authored
The bootloader used to boot Ironic nodes in UEFI boot mode during inspection when iPXE is enabled has been changed from ipxe.efi to snponly.efi. This is in line with the default UEFI iPXE bootloader used in Ironic since the Xena release. The bootloader may be changed via ironic_dnsmasq_uefi_ipxe_boot_file. Note that snponly.efi was not available via in the ironic-pxe image prior to I79e78dca550262fc86b092a036f9ea96b214ab48. Related-Bug: #1959203 Change-Id: I879db340769cc1b076e77313dff15876e27fcac4
-
- Dec 22, 2021
-
-
Margarita Shakhova authored
Fix configuration for ironic role in order to apply custom policies for ironic-inspector API Closes-Bug: #1952948 Change-Id: Id454c693f570e99ea58d2a6231f01a84b80ca56a
-
- Oct 12, 2021
-
-
Maksim Malchuk authored
This change adds the dnsmasq.log for the ironic-dnsmasq container and also enables more verbose logging when debug logging enabled. This can be triggered globbaly via 'openstack_logging_debug' or per service via 'ironic_logging_debug' or 'neutron_logging_debug'. Change-Id: I0e6b089beb88827effbcc365625eb2df902f5470 Signed-off-by:
Maksim Malchuk <maksim.malchuk@gmail.com>
-
- Sep 28, 2021
-
-
Niklas Hagman authored
A system-scoped token implies the user has authorization to act on the deployment system. These tokens are useful for interacting with resources that affect the deployment as a whole, or exposes resources that may otherwise violate project or domain isolation. Since Queens, the keystone-manage bootstrap command assigns the admin role to the admin user with system scope, as well as in the admin project. This patch transitions the Keystone admin user from authenticating using project scoped tokens to system scoped tokens. This is a necessary step towards being able to enable the updated oslo policies in services that allow finer grained access to system-level resources and APIs. An etherpad with discussion about the transition to the new oslo service policies is: https://etherpad.opendev.org/p/enabling-system-scope-in-kolla-ansible Change-Id: Ib631e2211682862296cce9ea179f2661c90fa585 Signed-off-by:
Niklas Hagman <ubuntu@post.blinkiz.com>
-
- Aug 10, 2021
-
-
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
-
- Aug 06, 2021
-
-
Ilya Popov authored
Basically, there are three main installation scenario: Scenario 1: Ironic installation together with other openstack services including keystone. In this case variable enable_keystone is set to true and keystone service will be installed together with ironic installation. It is possible realise this scenario, no fix needed Scenario 2: Ironic installation with connection to already installed keystone. In this scenario we have to set enable_keystone to “No” to prevent from new keystone service installation during the ironic installation process. But in other hand, we need to have correct sections in ironic.conf to provide all information needed to connect to existing keystone. But all sections for keystone are added to ironic.conf only if enable_keystone var is set to “Yes”. It isn’t possible to realise this scenario. Proposed fix provide support for this scenario, where multiple regions share the same keystone service. Scenario 3: No keystone integration. Ironic don't connect to Keystone. It is possible realise this scenario, no fix needed Proposed solution also keep the default behaviour: if no enable_keystone_integration is manually defined by default it takes value of enable_keystone variable and all behaviour is the same. But if we don't want to install keystone and want to connect to existing one at the same time, it will be possible to set enable_keystone var to “No” (preventing keystone from installation) and at the same time set ironic_enable_keystone_integration to Yes to allow needed section appear in ironic.conf through templating. Change-Id: I0c7e9a28876a1d4278fb2ed8555c2b08472864b9
-
- Jul 22, 2021
-
-
Mark Goddard authored
In the Xena release, Ironic removed the iSCSI driver [1]. The recommended driver is direct, which uses HTTP to transfer the disk image. This requires an HTTP server, and the simplest option is to use the one currently deployed when enable_ironic_ipxe is set to true. For this reason, this patch always enables the HTTP server running on the conductor. iPXE is still enabled separately, since it cannot currently be used at the same time as PXE. [1] https://review.opendev.org/c/openstack/ironic/+/789382 Change-Id: I30c2ad2bf2957ac544942aefae8898cdc8a61ec6
-
- Jun 22, 2021
-
-
Michal Arbet authored
Closes-Bug: #1933025 Change-Id: Ib67d715ddfa986a5b70a55fdda39e6d0e3333162
-
- Mar 04, 2021
-
-
Doug Szumski authored
In services which use the Apache HTTP server to service HTTP requests, there exists a TimeOut directive [1] which defaults to 60 seconds. APIs which come under heavy load, such as Cinder, can sometimes exceed this which results in a HTTP 504 Gateway timeout, or similar. However, the request can still be serviced without error. For example, if Nova calls the Cinder API to detach a volume, and this operation takes longer than the shortest of the two timeouts, Nova will emit a stack trace with a 504 Gateway timeout. At some time later, the request to detach the volume will succeed. The Nova and Cinder DBs then become out-of-sync with each other, and frequently DB surgery is required. Although strictly this category of bugs should be fixed in OpenStack services, it is not realistic to expect this to happen in the short term. Therefore, this change makes it easier to set the Apache HTTP timeout via a new variable. An example of a related bug is here: https://bugs.launchpad.net/nova/+bug/1888665 Whilst this timeout can currently be set by overriding the WSGI config for individual services, this change makes it much easier. Change-Id: Ie452516655cbd40d63bdad3635fd66693e40ce34 Closes-Bug: #1917648
-
- Oct 16, 2020
-
-
Jeffrey Zhang authored
Change-Id: I52cee3679e4a733daa165062d64884577e9acc1a Closes-Bug: #1900082
-
- Oct 06, 2020
-
-
Mark Goddard authored
* ipxe_enabled was removed in Ussuri, now there is a separate ipxe boot interface. * iPXE now has its own set of configuration for the bootfile and config template, and the values previously set when iPXE is enabled are now the default in ironic. The overrides have been removed, since they match the iPXE defaults. Change-Id: I9d9f030ee4be979d0a849b59e5eb991f2d82f6a4
-
- Sep 24, 2020
-
-
James Kirsch authored
This patch introduces an optional backend encryption for the Ironic API 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 Ironic service. Change-Id: I9edf7545c174ca8839ceaef877bb09f49ef2b451 Partially-Implements: blueprint add-ssl-internal-network
-
- Sep 22, 2020
-
-
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
-
- Sep 17, 2020
-
-
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
-
- Sep 10, 2020
-
-
Pierre Riteau authored
This reverts commit 316b0496, because ironic-inspector is not ready to use WSGI. It would need to be split into two separate containers, one running ironic-inspector-api-wsgi and another running ironic-inspector-conductor. Change-Id: I7e6c59dc8ad4fdee0cc6d96313fe66bc1d001bf7
-
- Aug 29, 2020
-
-
James Kirsch authored
This patch introduces an optional backend encryption for the Ironic API and Ironic Inspector 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 Ironic service. Change-Id: I3e82c8ec112e53f907e89fea0c8c849072dcf957 Partially-Implements: blueprint add-ssl-internal-network Depends-On: https://review.opendev.org/#/c/742776/
-
- Aug 19, 2020
-
-
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:
Rafael Weingärtner <rafael@apache.org>
-
- Apr 28, 2020
-
-
Marcin Juszkiewicz authored
Change-Id: I18f8855a758703968aba032add68add24b31f673 Closes-bug: #1875588
-
- Apr 03, 2020
-
-
Mark Goddard authored
The use of default(omit) is for module parameters, not templates. We define a default value for openstack_cacert, so it should never be undefined anyway. Change-Id: Idfa73097ca168c76559dc4f3aa8bb30b7113ab28
-
- Feb 25, 2020
-
-
James Kirsch authored
Service REST API urls should be constructed using the {{ internal_protocol }} and {{ external_protocol }} configuration parameters. Change-Id: Id1e8098cf59f66aa35b371149fdb4b517fa4c908 Closes-Bug: 1862817
-
- Jan 13, 2020
-
-
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
-
- Oct 16, 2019
-
-
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:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Sep 06, 2019
-
-
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
-
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
-
- Aug 30, 2019
-
-
Jan Horstmann authored
Upstream ironic went from $net_default_ip to $net_default_mac in ironic/drivers/modules/master_grub_cfg.txt with https://review.opendev.org/#/c/578959/ This commit makes the same change for ansible/roles/ironic/templates/ironic_pxe_uefi.default.j2 Using $net_default_ip breaks ironic standalone deployments with [dhcp]dhcp_provider = none Change-Id: I2ca9a66d2bdb0aab5cd9936c8be8206e6ade3bd5 Closes-Bug: 1842078
-
- Aug 29, 2019
-
-
Will Szumski authored
Change-Id: Ic80dbe1f4f7289fe2c2143125a381cec4586f7ef Closes-Bug: #1841908
-
- Aug 15, 2019
-
-
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:
Rafael Weingärtner <rafael@apache.org>
-
- Jul 12, 2019
-
-
Mark Goddard authored
The ironic inspector iPXE configuration includes the following kernel argument: initrd=agent.ramdisk However, the ramdisk is actually called ironic-agent.initramfs, so the argument should be: initrd=ironic-agent.initramfs In BIOS boot mode this does not cause a problem, but for compute nodes with UEFI enabled, it seems to be more strict about this, and fails to boot. Change-Id: Ic84f3b79fdd3cd1730ca2fb79c11c7a4e4d824de Closes-Bug: #1836375
-
- Mar 06, 2019
-
-
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
-
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
-
- Feb 22, 2019
-
-
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
-
- Feb 08, 2019
-
-
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
-