Page MenuHomePhabricator

CloudVPS: enable TLS in openstack API endpoints
Closed, ResolvedPublic

Description

Our current openstack deployment uses the following API endpoints:

aborrero@cloudcontrol1005:~ $ sudo wmcs-openstack endpoint list -c URL -c 'Service Name' -c 'Service Type' -c Interface
+--------------+--------------+-----------+------------------------------------------------------------------------+
| Service Name | Service Type | Interface | URL                                                                    |
+--------------+--------------+-----------+------------------------------------------------------------------------+
| placement    | placement    | internal  | http://openstack.eqiad1.wikimediacloud.org:8778                        |
| neutron      | network      | admin     | http://openstack.eqiad1.wikimediacloud.org:9696                        |
| keystone     | identity     | internal  | http://openstack.eqiad1.wikimediacloud.org:5000/v3                     |
| nova         | compute      | admin     | http://openstack.eqiad1.wikimediacloud.org:8774/v2.1                   |
| placement    | placement    | public    | http://openstack.eqiad1.wikimediacloud.org:8778                        |
| glance       | image        | public    | http://openstack.eqiad1.wikimediacloud.org:9292                        |
| glance       | image        | internal  | http://openstack.eqiad1.wikimediacloud.org:9292                        |
| proxy        | proxy        | admin     | http://proxy-eqiad1.wmflabs.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
| designate    | dns          | internal  | http://openstack.eqiad1.wikimediacloud.org:9001                        |
| keystone     | identity     | public    | http://openstack.eqiad1.wikimediacloud.org:5000/v3                     |
| glance       | image        | admin     | http://openstack.eqiad1.wikimediacloud.org:9292                        |
| placement    | placement    | admin     | http://openstack.eqiad1.wikimediacloud.org:8778                        |
| designate    | dns          | public    | http://openstack.eqiad1.wikimediacloud.org:9001                        |
| nova         | compute      | public    | http://openstack.eqiad1.wikimediacloud.org:8774/v2.1                   |
| neutron      | network      | public    | http://openstack.eqiad1.wikimediacloud.org:9696                        |
| keystone     | identity     | admin     | http://openstack.eqiad1.wikimediacloud.org:35357/v3                    |
| proxy        | proxy        | internal  | http://proxy-eqiad1.wmflabs.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
| nova         | compute      | internal  | http://openstack.eqiad1.wikimediacloud.org:8774/v2.1                   |
| neutron      | network      | internal  | http://openstack.eqiad1.wikimediacloud.org:9696                        |
| designate    | dns          | admin     | http://openstack.eqiad1.wikimediacloud.org:9001                        |
| proxy        | proxy        | public    | http://proxy-eqiad1.wmflabs.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
+--------------+--------------+-----------+------------------------------------------------------------------------+

The openstack.eqiad1.wikimediacloud.org FQDN points to one of the cloudcontrol nodes, which runs HAproxy to load-balance request between the 3 cloudcontrol servers.

One of the things that we have to decide is where to do TLS termination. In HAproxy? in the openstack API service itself? In any case we should implement TLS by using acme-chief.

NOTE: this change should happen first in codfw1dev for the following endpoints:
aborrero@cloudcontrol2001-dev:~ $ sudo wmcs-openstack endpoint list -c URL -c 'Service Name' -c 'Service Type' -c Interface
+--------------+--------------+-----------+-------------------------------------------------------------------------------+
| Service Name | Service Type | Interface | URL                                                                           |
+--------------+--------------+-----------+-------------------------------------------------------------------------------+
| keystone     | identity     | internal  | http://openstack.codfw1dev.wikimediacloud.org:5000/v3                         |
| proxy        | proxy        | admin     | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
| designate    | dns          | admin     | http://openstack.codfw1dev.wikimediacloud.org:9001                            |
| neutron      | network      | internal  | http://openstack.codfw1dev.wikimediacloud.org:9696                            |
| nova         | compute      | admin     | http://openstack.codfw1dev.wikimediacloud.org:8774/v2.1                       |
| barbican     | key-manager  | admin     | http://openstack.codfw1dev.wikimediacloud.org:9311                            |
| designate    | dns          | public    | http://openstack.codfw1dev.wikimediacloud.org:9001                            |
| placement    | placement    | public    | http://openstack.codfw1dev.wikimediacloud.org:8778                            |
| keystone     | identity     | admin     | http://openstack.codfw1dev.wikimediacloud.org:35357/v3                        |
| glance       | image        | admin     | http://openstack.codfw1dev.wikimediacloud.org:9292                            |
| barbican     | key-manager  | internal  | http://openstack.codfw1dev.wikimediacloud.org:9311                            |
| nova         | compute      | internal  | http://openstack.codfw1dev.wikimediacloud.org:8774/v2.1                       |
| placement    | placement    | internal  | http://openstack.codfw1dev.wikimediacloud.org:8778                            |
| neutron      | network      | admin     | http://openstack.codfw1dev.wikimediacloud.org:9696                            |
| nova         | compute      | public    | http://openstack.codfw1dev.wikimediacloud.org:8774/v2.1                       |
| proxy        | proxy        | internal  | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
| neutron      | network      | public    | http://openstack.codfw1dev.wikimediacloud.org:9696                            |
| barbican     | key-manager  | public    | http://openstack.codfw1dev.wikimediacloud.org:9311                            |
| glance       | image        | public    | http://openstack.codfw1dev.wikimediacloud.org:9292                            |
| proxy        | proxy        | public    | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s |
| keystone     | identity     | public    | http://openstack.codfw1dev.wikimediacloud.org:5000/v3                         |
| designate    | dns          | internal  | http://openstack.codfw1dev.wikimediacloud.org:9001                            |
| glance       | image        | internal  | http://openstack.codfw1dev.wikimediacloud.org:9292                            |
| placement    | placement    | admin     | http://openstack.codfw1dev.wikimediacloud.org:8778                            |
+--------------+--------------+-----------+-------------------------------------------------------------------------------+

Related documentation:

Details

SubjectRepoBranchLines +/-
operations/puppetproduction+1 -1
operations/puppetproduction+22 -22
operations/puppetproduction+3 -33
operations/puppetproduction+0 -24
operations/puppetproduction+0 -39
operations/puppetproduction+2 -2
operations/puppetproduction+16 -12
operations/puppetproduction+15 -15
operations/puppetproduction+85 -0
operations/puppetproduction+2 -0
operations/dnsmaster+11 -0
operations/puppetproduction+2 -2
operations/puppetproduction+3 -3
operations/puppetproduction+2 -2
operations/puppetproduction+61 -61
operations/puppetproduction+13 -1
operations/puppetproduction+70 -45
operations/homer/publicmaster+22 -2
operations/puppetproduction+8 -6
operations/puppetproduction+8 -6
operations/puppetproduction+8 -6
operations/puppetproduction+8 -6
operations/puppetproduction+8 -6
operations/puppetproduction+8 -6
operations/puppetproduction+16 -7
operations/puppetproduction+9 -6
operations/puppetproduction+16 -12
operations/puppetproduction+2 -1
operations/puppetproduction+34 -6
operations/puppetproduction+14 -0
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
aborrero triaged this task as Medium priority.Nov 4 2020, 10:57 AM
aborrero moved this task from Inbox to Soon! on the cloud-services-team (Kanban) board.

Change 726585 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] acme_chief: add openstack certs

https://gerrit.wikimedia.org/r/726585

One of the things that we have to decide is where to do TLS termination. In HAproxy? in the openstack API service itself?

Ideally we would terminate TLS on the api service itself, to prevent unencrypted requests between haproxy and the api service on another cloudcontrol node.

Essentially we can either

  • Reserve two more ports for each service (one internal and one external). There are no "official" alternative TLS ports for each service (per https://docs.openstack.org/install-guide/firewalls-default-ports.html), but we can likely pick our own
  • Perform vhost-based routing and use one common public port (so likely 443) but multiple hostnames (like trove.openstack.eqiad1.wikimediacloud.org and cinder.openstack.eqiad1.wikimediacloud.org).

I slightly favour the latter, it gives us cleaner urls (in my opinion), makes it easier to split a service to separate from cloudcontrol if needed and it only needs one extra internal port (so we can just prepend 2, like 1 for current internal ports). The downsides are extra complexity, mostly. We can either terminate TLS on the HAProxy layer (and re-encrypt the traffic to the backend) or do SNI-based routing.

Change 726585 merged by Arturo Borrero Gonzalez:

[operations/puppet@production] acme_chief: add openstack certs

https://gerrit.wikimedia.org/r/726585

Perform vhost-based routing and use one common public port (so likely 443) but multiple hostnames (like trove.openstack.eqiad1.wikimediacloud.org and cinder.openstack.eqiad1.wikimediacloud.org).

+1 for this, I also see it as way easier to understand and flexible, probably SNI based routing might be simpler (only have to maintain one cert). This might mean though that we have split DNS, so other internal hosts resolve the names to the internal IPs, or all the traffic has to pass through HAProxy that it's probably nicer, so we get HA also internally, but might slow down requests and increase traffic, we can try and see if that becomes a problem though.

Change 728246 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] acme_chief: add wildcard to openstack certs

https://gerrit.wikimedia.org/r/728246

Change 728260 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] openstack: haproxy: add tls termination support

https://gerrit.wikimedia.org/r/728260

Change 730879 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/dns@master] codfw1dev.wikimediacloud.org: Add new hostnames for tls openstack endpoints

https://gerrit.wikimedia.org/r/730879

I have some doubts about the approach being taken (different FQDNs, all share the same port), for the following reasons:

  • it was mentioned that it simplifies x509 certificate handling. Nowadays x509 certificate management is fully automated by acme-chief, so I don't think the number of certificates at play should be of any concern.
  • some services may use different ports for different interfaces (admin, internal, public). This can be seen today in at least keystone, which uses a different TCP port for admin interface. As far as I know, this is the standard way upstream recommends separating the 3 interfaces. But I may be wrong here (didn't check in deep).
  • There is a mention to the TLS gap between haproxy <-> API service. The gap only happens if we use haproxy in HTTP mode, no? I don't see any problem with using haproxy in TCP mode. We would need the certificate to be installed in each service individually anyway. In TCP mode, there is no "gap" in the TLS connection between the end client and the final openstack API service.
  • We currently use a lot of firewalling to allow/disallow specific ports for specific clients. If all the endpoints share the same port (443/TCP for example) this would eliminate our ability to do access control like we have been doing so far.
  • It was mentioned that we want to have the flexibility to create API endpoints that doesn't live on cloudcontrol servers. I think this is not related to the TLS thing. We could still create whatever.openstack.xxx.wikimediacloud.org and point that to another host anytime, in case we had such case (swift is the first and only projected case of this).

In summary: I'm failing to see any benefits in having multiple FQDNs, specially if 90% requests will end in the same system anyway.

I'd suggest we take this direction:

  • select one individual openstack API endpoint, and add TLS to its service, on a new TCP port.
  • make HAproxy work on TCP mode (currently configured on haproxy.conf)
  • register the new API endpoint to the openstack catalog, and update client configs to see if that works.
  • if everything works as expected, move to the next service.
NOTE: (edit) I'm open to be convinced that the multiple FQDN approach is better

Per our IRC chat, it was surfaced that the HAproxy TCP mode is not desirable in this situation because some API services need to know the original client source IP address (example: keystone password safelist mechanism).

However, I believe we can still use a single FQDN + multiple ports, with HAproxy in HTTP mode. We would just need to load the same x509 cert in both HAproxy and each individual openstack service.

The sort of vhost routing this does is the common use of haproxy and where they've done the most work on the software itself. It has an advanced and extensive ACL interface so that you can share one port with many FQDNs that allows extensive and fine grained access control if you want it as well since people use haproxy to handle edge traffic. It will probably be how LBaaS works in Openstack and is how I've used haproxy elsewhere to keep entire businesses behind a cluster of them (behind a caching layer). I might suggest the ultimate goal probably ought to be allowing access to the APIs at least inside the cloud instead of firewalling quite so much. That would allow for automation and more standard capabilities.

That's not to speak to your specific concerns around the admin interface and such because I haven't dug in at all, but you could easily replace the firewalling with acls in haproxy in a way that might even be more immediately readable. Just food for thought.

My personal opinion is that we should try first with the single FQDN approach. I believe is the option demanding less changes, easier to implement, and easier to understand.

However, I'm open to be convinced otherwise.

Change 732012 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] openstack:haproxy: port-based tls termination support

https://gerrit.wikimedia.org/r/732012

Change 732012 merged by Andrew Bogott:

[operations/puppet@production] openstack:haproxy: port-based tls termination support

https://gerrit.wikimedia.org/r/732012

Change 732017 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] openstack:haproxy: set x-forwarded-proto

https://gerrit.wikimedia.org/r/732017

Change 732017 merged by Andrew Bogott:

[operations/puppet@production] openstack:haproxy: set x-forwarded-proto

https://gerrit.wikimedia.org/r/732017

Change 732021 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] openstack::haproxy: tls-ify nova and glance on codfw1dev

https://gerrit.wikimedia.org/r/732021

Change 732021 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: tls-ify nova and glance on codfw1dev

https://gerrit.wikimedia.org/r/732021

Change 732039 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: Add tls frontend for designate api in codfw1dev

https://gerrit.wikimedia.org/r/732039

Change 732040 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the keystone-admin api in codfw1dev

https://gerrit.wikimedia.org/r/732040

Change 732041 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the placement api in codfw1dev

https://gerrit.wikimedia.org/r/732041

Change 732042 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the trove api in codfw1dev

https://gerrit.wikimedia.org/r/732042

Change 732043 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the cinder api in codfw1dev

https://gerrit.wikimedia.org/r/732043

Change 732044 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the neutron api in codfw1dev

https://gerrit.wikimedia.org/r/732044

Change 732045 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the swift api in codfw1dev

https://gerrit.wikimedia.org/r/732045

Change 732046 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack::haproxy: add tls for the barbican api in codfw1dev

https://gerrit.wikimedia.org/r/732046

Change 732039 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: Add tls frontend for designate api in codfw1dev

https://gerrit.wikimedia.org/r/732039

Change 732040 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the keystone-admin api in codfw1dev

https://gerrit.wikimedia.org/r/732040

Change 732043 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the cinder api in codfw1dev

https://gerrit.wikimedia.org/r/732043

Change 732044 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the neutron api in codfw1dev

https://gerrit.wikimedia.org/r/732044

Change 732042 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the trove api in codfw1dev

https://gerrit.wikimedia.org/r/732042

Change 732041 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the placement api in codfw1dev

https://gerrit.wikimedia.org/r/732041

Change 732045 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the swift api in codfw1dev

https://gerrit.wikimedia.org/r/732045

Change 732046 merged by Andrew Bogott:

[operations/puppet@production] openstack::haproxy: add tls for the barbican api in codfw1dev

https://gerrit.wikimedia.org/r/732046

Now we have all openstack service in codfw1dev working with tls:

andrew@cloudcontrol2001-dev:~$ sudo wmcs-openstack endpoint list -c URL -c 'Service Name' -c 'Service Type' -c Interface
+--------------+--------------+-----------+-----------------------------------------------------------------------------------+
| Service Name | Service Type | Interface | URL                                                                               |
+--------------+--------------+-----------+-----------------------------------------------------------------------------------+
| glance       | image        | admin     | https://openstack.codfw1dev.wikimediacloud.org:29292                              |
| proxy        | proxy        | admin     | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s     |
| placement    | placement    | admin     | https://openstack.codfw1dev.wikimediacloud.org:28778                              |
| nova         | compute      | internal  | https://openstack.codfw1dev.wikimediacloud.org:28774/v2.1                         |
| nova         | compute      | public    | https://openstack.codfw1dev.wikimediacloud.org:28774/v2.1                         |
| neutron      | network      | public    | https://openstack.codfw1dev.wikimediacloud.org:29696                              |
| designate    | dns          | admin     | https://openstack.codfw1dev.wikimediacloud.org:29001                              |
| neutron      | network      | internal  | https://openstack.codfw1dev.wikimediacloud.org:29696                              |
| trove        | database     | public    | https://openstack.codfw1dev.wikimediacloud.org:28779/v1.0/%(tenant_id)s           |
| keystone     | identity     | internal  | https://openstack.codfw1dev.wikimediacloud.org:25000/v3                           |
| cinderv2     | volumev2     | admin     | https://openstack.codfw1dev.wikimediacloud.org:28776/v2/%(project_id)s            |
| neutron      | network      | admin     | https://openstack.codfw1dev.wikimediacloud.org:29696                              |
| swift        | object-store | internal  | https://openstack.codfw1dev.wikimediacloud.org:28080/swift/v1/AUTH_$(project_id)s |
| swift        | object-store | public    | https://openstack.codfw1dev.wikimediacloud.org:28080/swift/v1/AUTH_$(project_id)s |
| keystone     | identity     | internal  | http://openstack.codfw1dev.wikimediacloud.org:5000/v3                             |
| proxy        | proxy        | internal  | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s     |
| trove        | database     | internal  | https://openstack.codfw1dev.wikimediacloud.org:28779/v1.0/%(tenant_id)s           |
| barbican     | key-manager  | public    | https://openstack.codfw1dev.wikimediacloud.org:29311                              |
| designate    | dns          | internal  | https://openstack.codfw1dev.wikimediacloud.org:29001                              |
| barbican     | key-manager  | admin     | https://openstack.codfw1dev.wikimediacloud.org:29311                              |
| keystone     | identity     | public    | https://openstack.codfw1dev.wikimediacloud.org:25000/v3                           |
| glance       | image        | internal  | https://openstack.codfw1dev.wikimediacloud.org:29292                              |
| keystone     | identity     | admin     | https://openstack.codfw1dev.wikimediacloud.org:25357/v3                           |
| cinderv3     | volumev3     | admin     | https://openstack.codfw1dev.wikimediacloud.org:28776/v3/%(project_id)s            |
| barbican     | key-manager  | internal  | https://openstack.codfw1dev.wikimediacloud.org:29311                              |
| swift        | object-store | admin     | https://openstack.codfw1dev.wikimediacloud.org:28080/swift/v1/AUTH_$(project_id)s |
| cinderv2     | volumev2     | public    | https://openstack.codfw1dev.wikimediacloud.org:28776/v2/%(project_id)s            |
| proxy        | proxy        | public    | http://novaproxy.codfw1dev.wmcloud.org:5668/dynamicproxy-api/v1/$(tenant_id)s     |
| cinderv2     | volumev2     | internal  | https://openstack.codfw1dev.wikimediacloud.org:28776/v2/%(project_id)s            |
| trove        | database     | admin     | https://openstack.codfw1dev.wikimediacloud.org:28779/v1.0/%(tenant_id)s           |
| placement    | placement    | public    | https://openstack.codfw1dev.wikimediacloud.org:28778                              |
| cinderv3     | volumev3     | internal  | https://openstack.codfw1dev.wikimediacloud.org:28776/v3/%(project_id)s            |
| designate    | dns          | public    | https://openstack.codfw1dev.wikimediacloud.org:29001                              |
| nova         | compute      | admin     | https://openstack.codfw1dev.wikimediacloud.org:28774/v2.1                         |
| placement    | placement    | internal  | https://openstack.codfw1dev.wikimediacloud.org:28778                              |
| keystone     | identity     | admin     | http://openstack.codfw1dev.wikimediacloud.org:35357/v3                            |
| glance       | image        | public    | https://openstack.codfw1dev.wikimediacloud.org:29292                              |
| cinderv3     | volumev3     | public    | https://openstack.codfw1dev.wikimediacloud.org:28776/v3/%(project_id)s            |
+--------------+--------------+-----------+-----------------------------------------------------------------------------------+

I've left a few http keystone proxies in place to support existing users; those cases share config between eqiad1 and codfw1dev so it's much simpler to cut them both over at once. I've done a lot of by-hand testing with those endpoints deleted and things seem fine. I also hacked Horizon to use the tls endpoint and it continued to work.

So as far as I can tell we're ready to apply this same change in eqiad1.

Awesome! thanks you both @Majavah and @Andrew

Change 732321 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/homer/public@master] cr-cloud: add tls ports for openstack services

https://gerrit.wikimedia.org/r/732321

Change 732397 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openStack:haproxy add tls termination for openstack

https://gerrit.wikimedia.org/r/732397

Change 732398 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] openstack:haproxy add tls for nova metadata service

https://gerrit.wikimedia.org/r/732398

Change 732321 merged by Arturo Borrero Gonzalez:

[operations/homer/public@master] cr-cloud: add tls ports for openstack services

https://gerrit.wikimedia.org/r/732321

Change 732397 merged by Andrew Bogott:

[operations/puppet@production] openStack:haproxy add tls termination for openstack in eqiad1

https://gerrit.wikimedia.org/r/732397

Change 732720 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] Designate: add tls firewall rules to the api firewall class

https://gerrit.wikimedia.org/r/732720

Change 732720 merged by Andrew Bogott:

[operations/puppet@production] Designate: add tls firewall rules to the api firewall class

https://gerrit.wikimedia.org/r/732720

We now have tls endpoints in eqiad1 as well; everything seems to be working.

Some remaining tasks are:

  • Move existing uses of the non-tls keystone endoint to tls (mostly puppet search/replace)
  • Make a plan to open/announce these endpoints to the greated internet
  • Figure out about moving the novaproxy behind tls (and also add auth)
  • Figure out about moving the puppet enc behind tls (and also add auth)

Those last two are somewhat out-of-band for this task but they're needed for the larger goal of allowing people to run orchestration tools somewhere other than cloudcontrol.

Change 732738 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] OpenStack: Always use the tls port (25357) for keystone admin endpoints

https://gerrit.wikimedia.org/r/732738

Change 732738 merged by Andrew Bogott:

[operations/puppet@production] OpenStack: Always use the tls ports (25000, 25357) for openstack services

https://gerrit.wikimedia.org/r/732738

Change 733353 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] Designate: specify https for keystone authtoken url

https://gerrit.wikimedia.org/r/733353

Change 733353 merged by Andrew Bogott:

[operations/puppet@production] Designate: specify https for keystone authtoken url

https://gerrit.wikimedia.org/r/733353

Change 733362 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] Striker: use https endpoint for OpenStack

https://gerrit.wikimedia.org/r/733362

Change 733362 merged by Andrew Bogott:

[operations/puppet@production] Striker: use https endpoint for OpenStack

https://gerrit.wikimedia.org/r/733362

Change 733363 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] keystone: use https check rather than http check for endpoint checks

https://gerrit.wikimedia.org/r/733363

Change 733363 merged by Andrew Bogott:

[operations/puppet@production] keystone: use https check rather than http check for endpoint checks

https://gerrit.wikimedia.org/r/733363

Change 730879 abandoned by Andrew Bogott:

[operations/dns@master] codfw1dev.wikimediacloud.org: Add new hostnames for tls openstack endpoints

Reason:

dropped in favor of per-port tls

https://gerrit.wikimedia.org/r/730879

Change 728246 abandoned by Majavah:

[operations/puppet@production] acme_chief: add wildcard to openstack certs

Reason:

we ended up not needing this

https://gerrit.wikimedia.org/r/728246

Change 728260 abandoned by Majavah:

[operations/puppet@production] openstack: haproxy: add tls termination support

Reason:

ended up going with a different route

https://gerrit.wikimedia.org/r/728260

Change 768293 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] openstack: fix remaining http keystone urls

https://gerrit.wikimedia.org/r/768293

Change 768293 merged by Arturo Borrero Gonzalez:

[operations/puppet@production] openstack: fix remaining http keystone urls

https://gerrit.wikimedia.org/r/768293

This looks done to me! @Majavah, @aborrero any leftover pieces you're aware of?

We'll want to eventually disable the non-tls endpoints, otherwise this is pretty much done

Change 732398 abandoned by Andrew Bogott:

[operations/puppet@production] openstack:haproxy add tls for nova metadata service

Reason:

https://gerrit.wikimedia.org/r/732398

Change 800948 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack::designate: set base_url to use the https port

https://gerrit.wikimedia.org/r/800948

Change 800952 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack::haproxy: codfw1dev: remove non-tls ports

https://gerrit.wikimedia.org/r/800952

Change 800953 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack::haproxy: eqiad1: remove non-tls ports

https://gerrit.wikimedia.org/r/800953

Change 800954 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack::designate::firewall: cleanup

https://gerrit.wikimedia.org/r/800954

Change 800955 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack: misc cleanup for non-tls ports

https://gerrit.wikimedia.org/r/800955

Change 800948 merged by Andrew Bogott:

[operations/puppet@production] P:openstack::designate: set base_url to use the https port

https://gerrit.wikimedia.org/r/800948

Change 800952 merged by Andrew Bogott:

[operations/puppet@production] P:openstack::haproxy: codfw1dev: remove non-tls ports

https://gerrit.wikimedia.org/r/800952

Change 800953 merged by Andrew Bogott:

[operations/puppet@production] P:openstack::haproxy: eqiad1: remove non-tls ports

https://gerrit.wikimedia.org/r/800953

Change 800954 merged by Andrew Bogott:

[operations/puppet@production] P:openstack::designate::firewall: cleanup

https://gerrit.wikimedia.org/r/800954

Change 800955 merged by Andrew Bogott:

[operations/puppet@production] P:openstack: misc cleanup for non-tls ports

https://gerrit.wikimedia.org/r/800955

Change 822738 had a related patch set uploaded (by Andrew Bogott; author: Andrew Bogott):

[operations/puppet@production] profile::openstack::base::designate::firewall::api: add a missing )

https://gerrit.wikimedia.org/r/822738

Change 822738 merged by Andrew Bogott:

[operations/puppet@production] profile::openstack::base::designate::firewall::api: add a missing )

https://gerrit.wikimedia.org/r/822738

taavi claimed this task.