71 Commits

Author SHA1 Message Date
Jenkins
b9745a7b1e Merge "Fix a typo in haproxy.pp" 2016-12-19 10:49:12 +00:00
Jenkins
34253ecfb5 Merge "Changes default MidoNet API port on HAProxy" 2016-12-11 00:19:33 +00:00
Juan Antonio Osorio Robles
5b0bd1c00a Add verify required and CA bundle to haproxy
This only takes effect is internal-tls is used, and forces haproxy to
do proper verifications of the SSL certificates provided by the
servers.

bp tls-via-certmonger
Change-Id: Ibd98ec46dd6570887db29f55fe183deb1c9dc642
2016-11-30 14:34:41 +02:00
Jenkins
8e73e53d59 Merge "Proxy manila in http mode" 2016-11-23 14:56:33 +00:00
Jenkins
cd49ce7f92 Merge "Use mode 'http' in haproxy for ceilometer, neutron, aodh and gnocchi" 2016-11-22 11:13:41 +00:00
Juan Antonio Osorio Robles
a177abd035 Proxy manila in http mode
It needs it so HAProxy will be able to set the X-Forwarded-Proto header.
Related-Bug: #1640126
Change-Id: I1726fa1742bc70518338b80fc6d27567bb020e7c
2016-11-22 09:52:41 +00:00
Juan Antonio Osorio Robles
255ea29cd4 Use mode 'http' in haproxy for ceilometer, neutron, aodh and gnocchi
HAProxy won't pass X-Forwarded-Proto to these services in mode tcp, so we need
to switch it to http in order for it to work and for the services to properly
set the protocol in the links they serve.

Change-Id: Ib10282159fb9269eebe81af23171ec9fb1297cd0
Closes-Bug: #1640126
2016-11-22 10:31:02 +02:00
Jenkins
7e623480c4 Merge "Adds auto-detection for VIP interfaces" 2016-11-21 23:58:42 +00:00
Jenkins
3df8e5e339 Merge "Add panko service support" 2016-11-21 21:19:37 +00:00
Tim Rozet
87763459ae Adds auto-detection for VIP interfaces
Previously the ctrl plane VIP would default to 'br-ex' which in non-vlan
deployments ends up being the wrong interface.  The public VIP interface
was also defaulted to 'br-ex' which would be incorrect for vlan based
deployments.  Since a user has already given the nic template (and in
most cases the subnet that corresponds to the nic) the installer should
be able to figure out which interface the public/control vip should be
on.

These changes enable that type of auto-detection, unless a user
explicitly overrides the heat parameters for ControlVirtualInterface and
PublicVirtualInterface.  Also removes calling keepalived from haproxy
now that the services are composed separately on the Controller role.

Partial-Bug: 1606632

Change-Id: I05105fce85be8ace986db351cdca2916f405ed04
Signed-off-by: Tim Rozet <trozet@redhat.com>
2016-11-20 11:47:57 -05:00
Alejandro Andreu
6d8c6e1f30 Changes default MidoNet API port on HAProxy
The default port of the MidoNet Cluster (formerly known as MidoNet API)
is now 8181 instead of 8081.

Since this parameter is configurable through the settings, the default
value for the port has been added to the $service_ports array.

Change-Id: I2785d3109993bca0bd68077ff55cfeafbf594e19
2016-11-18 09:25:56 +01:00
Steven Hardy
92f9c952d6 Replace hard-coded haproxy/keepalived coupling
We have a variable in hiera which tells us if the keepalived
service is enabled, so use it here.  Without this any deployment
disabling OS::TripleO::Services::Keepalived will fail.

Change-Id: I90faf51881bd05920067c1e1d82baf5d7586af23
Closes-Bug: #1642677
2016-11-17 17:37:45 +00:00
Jenkins
6661cefcc4 Merge " Enable TLS in the internal network for Barbican API" 2016-11-15 18:21:14 +00:00
Pradeep Kilambi
a6089cb92f Add panko service support
Change-Id: I35f283bdf8dd0ed979c65633724f0464695130a4
2016-11-14 10:57:14 -05:00
Jenkins
d7f4f3efbf Merge "Fix barbican server name to not use aodh hiera" 2016-11-14 09:36:37 +00:00
Juan Antonio Osorio Robles
6e78c2f19a Enable TLS in the internal network for Barbican API
This optionally enables TLS for Barbican API in the internal network.
 If internal TLS is enabled, each node that is serving the Barbican API
 service will use certmonger to request its certificate.

 bp tls-via-certmonger

Change-Id: I1c1d3dab9bba7bec6296a55747e9ade242c47bd9
2016-11-14 09:06:28 +02:00
Jenkins
ffd36a3154 Merge "Enable TLS in the internal network for Cinder API" 2016-11-11 19:19:40 +00:00
Pradeep Kilambi
d6241cdfc1 Fix barbican server name to not use aodh hiera
this looks like a copy/paste error. Let barbican use its own
hiera data.

Change-Id: I84118c1a561c3db2f18504b55c5a8c4f042e7e3b
2016-11-11 12:57:12 +00:00
Jenkins
311bd47d1f Merge "Enable TLS in the internal network for Nova API" 2016-11-09 13:27:01 +00:00
Jenkins
7ce94fce7d Merge "Better way to ensure keepalived before haproxy." 2016-11-09 13:26:32 +00:00
Jenkins
f050e6ee9c Merge "Pass X-Forwarded-Proto for missing services" 2016-11-09 10:48:44 +00:00
Sofer Athlan-Guyot
b11d048e55 Better way to ensure keepalived before haproxy.
The lastest patchset of https://review.openstack.org/393361 was actually
not working.

The `if defined` idiom depends on *evaluation* order.

At the time it's red in the haproxy.pp class, the line that loads the
class 'haproxy' has still not yet been reached and thus the `defined`
result is false. The constraint is not added.

For this reason, the use of `defined` in module is not advised by
puppetlabs[1].

[1] https://docs.puppet.com/puppet/latest/reference/function.html#defined

Change-Id: Ibd352cb313f8863d62db8987419378bed5b87256
Relates-To: #1638029
2016-11-08 18:35:11 +01:00
Jenkins
c326036cfc Merge "Enable TLS in the internal network for gnocchi" 2016-11-08 16:19:48 +00:00
Jenkins
4d6b55c699 Merge "Improve failed mysql node removal time in HA deploys." 2016-11-08 16:12:46 +00:00
Juan Antonio Osorio Robles
005bf64e4a Pass X-Forwarded-Proto for missing services
aodh, ceilometer, gnocchi and neutron need the X-Forwarded-Proto in
order to return links with the correct protocol when SSL is enabled.
This enables it in HAProxy

Change-Id: Icceab92f86b1cc40d42195fa4ba0c75f302795b8
Closes-Bug: #1640126
2016-11-08 13:22:13 +02:00
Chris Jones
943e494356 Improve failed mysql node removal time in HA deploys.
In HA deployments, we now check mysql nodes every 1s and removed them
immediately if they are failed. Previously we would check every 2s and
allow them to fail 5 checks before being removed, producing errors from
other OpenStack services for 10s, which causes confusion and delay for
operators.
Additionally, these check options are now also a class parameter so can
be overridden by operators.

Closes-Bug: #1639189

Change-Id: I0b915f790ae5a4b018a212d3aa83cca507be05e9
2016-11-08 10:44:14 +00:00
Steven Hardy
1bee7bc8fa Increase haproxy timeouts
It's been proposed this may help with the
('Connection aborted.', BadStatusLine("''",)) errors.

This patch increase queue, server and client timeouts to 2m (default is 1m)
Related-Bug: #1638908

Change-Id: Ie4f059f3fad2271bb472697e85ede296eee91f5d
2016-11-07 11:36:37 +00:00
Juan Antonio Osorio Robles
cf70097238 Enable TLS in the internal network for Cinder API
This optionally enables TLS for Cinder API in the internal network.
If internal TLS is enabled, each node that is serving the Cinder API
service will use certmonger to request its certificate.

bp tls-via-certmonger

Change-Id: Ib4a9c8d3ca57f1b02e1bb0d150f333db501e9863
2016-11-02 10:53:24 +02:00
Juan Antonio Osorio Robles
625c7d9fc8 Fix default for barbican documentation
Change-Id: Id4dc2379b0c423012a0b3aaf49d1e1a7d633a03b
2016-11-01 15:47:53 +02:00
Jenkins
47f62da745 Merge "Add barbican profile" 2016-11-01 12:58:55 +00:00
Jenkins
7ecb68289f Merge "Fixes transparent binding to OpenDaylight in HA Proxy" 2016-11-01 12:12:57 +00:00
Juan Antonio Osorio Robles
7050852e22 Enable TLS in the internal network for Nova API
This optionally enables TLS for Nova API in the internal network.
If internal TLS is enabled, each node that is serving the Nova API
service will use certmonger to request its certificate.

Note that this doesn't enable internal TLS for the nova metadata
service since it doesn't run over httpd. This will be handled in
a later commit.

bp tls-via-certmonger

Change-Id: I88380a1ed8fd597a1a80488cbc6ce357f133bd70
2016-11-01 12:18:18 +02:00
Jenkins
a78b862cc5 Merge "Enable TLS in the internal network for aodh" 2016-10-31 11:48:53 +00:00
Jenkins
23e98fe884 Merge "Enable TLS in the internal network for ceilometer" 2016-10-31 09:39:36 +00:00
Tim Rozet
8ee57d6b61 Fixes transparent binding to OpenDaylight in HA Proxy
ODL was missing transparent binding mode, which causes HA deployments to
fail since HA Proxy will try to come up on every node (even without
VIP).

Closes-Bug: 1637833

Change-Id: I0bb7839cdcfeacb4ca1a9fc6f878e8b51330be92
Signed-off-by: Tim Rozet <trozet@redhat.com>
2016-10-30 09:44:18 -04:00
Jenkins
0b9c8fb56a Merge "Enable communication between UI and the Undercloud by making HAProxy proxy for the UI" 2016-10-23 08:47:56 +00:00
Jenkins
9d8a6b6e74 Merge "Enable haproxy statistics unix socket" 2016-10-23 08:09:44 +00:00
Jenkins
d897f2005c Merge "Increase haproxy client/server timeout for swift-proxy" 2016-10-22 21:45:27 +00:00
Jenkins
b23f488775 Merge "Use HAProxy for docker-registry endpoint" 2016-10-22 21:44:51 +00:00
John Trowbridge
4887e187a6 Increase haproxy client/server timeout for swift-proxy
The upload and extraction for the plan tarball to swift can take
longer than the default one minute in slower environments. Doubling
the timeout to two minutes has proven to help.

This is only a partial fix, because the error reporting for this
issue also needs to be improved.

Change-Id: I06592d38fdfefacc8bdf76289a0bfa20eb33a89b
Partial-Bug: 1635269
2016-10-21 10:51:44 -04:00
Steve Baker
d80b2d99b6 Use HAProxy for docker-registry endpoint
The docker tooling has a preference for interacting with encrypted
endpoints. Terminating the docker-registry endpoint with HAProxy
allows the SSL VIP to be used for this purpose.

Change-Id: Ifebfa7256e0887d6f26a478ff8dc82b0ef5f65f6
2016-10-20 15:11:07 +13:00
Juan Antonio Osorio Robles
9f9a6db9fc Enable TLS in the internal network for gnocchi
This optionally enables TLS for gnocchi in the internal network.
If internal TLS is enabled, each node that is serving the gnocchi
service will use certmonger to request its certificate.

bp tls-via-certmonger

Change-Id: Ie983933e062ac6a7f0af4d88b32634e6ce17838b
2016-10-19 17:41:34 +03:00
Juan Antonio Osorio Robles
aa7315e585 Enable TLS in the internal network for aodh
This optionally enables TLS for aodh in the internal network.
If internal TLS is enabled, each node that is serving the aodh
service will use certmonger to request its certificate.

This, in turn should also configure a command that should be ran when
the certificate is refreshed (which requires the service to be
restarted).

bp tls-via-certmonger

Change-Id: I50ef0c8fbecb19d6597a28290daa61a91f3b13fc
2016-10-19 17:40:32 +03:00
Juan Antonio Osorio Robles
a173a030aa Enable TLS in the internal network for ceilometer
This optionally enables TLS for aodh in the internal network.
If internal TLS is enabled, each node that is serving the ceilometer
service will use certmonger to request its certificate.

This, in turn should also configure a command that should be ran when
the certificate is refreshed (which requires the service to be
restarted).

bp tls-via-certmonger

Change-Id: Ib5609f77a31b17ed12baea419ecfab5d5f676496
2016-10-19 17:39:07 +03:00
Juan Antonio Osorio Robles
76bf2f532f Enable TLS in the internal network for keystone
This optionally enables TLS for keystone in the internal network.
If internal TLS is enabled, each node that is serving the keystone
service will use certmonger to request its certificate.

This, in turn should also configure a command that should be ran when
the certificate is refreshed (which requires the service to be
restarted).

bp tls-via-certmonger
Change-Id: I303f6cf47859284785c0cdc65284a7eb89a4e039
2016-10-19 17:37:32 +03:00
Ade Lee
aa6660376d Add barbican profile
Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Change-Id: If2804b469eb3ee08f3f194c7dd3290d23a245a7a
2016-10-19 08:44:58 +03:00
Dan Trainor
43d6dc468d Enable communication between UI and the Undercloud by making HAProxy
proxy for the UI

Change-Id: I74eac4bbfc16720eeb6e2bf0ee251689dde3bafc
Implements: enable-communication-ui-undercloud
2016-10-17 23:17:55 -07:00
Michele Baldessari
36c0d0a3c1 Enable haproxy statistics unix socket
By enabling the statistics socket we allow the collection
of statistics over time for haproxy.

This socket is set to "user" level, so this socket is limited
to read-only. The "stats timeout" line is optional, but since the
default timeout of the stats socket is 10s, we set this higher.

Change-Id: I22d3ab771e981be0d2c74b60443d276973bc1639
2016-10-16 21:57:29 +02:00
Juan Antonio Osorio Robles
d7b449943a Fetch internal certificates for HAProxy based on network
The service profile in HAProxy has the capability of creating
certificates based on a map. The idea is to standardize this, as
some of those certificates should match certain networks the services
are listening on (with the exception of the external network which is
handled differently and the tenant network which doesn't need a
certificate). So, based on which network a certain service is
listening on, we fetch the appropriate certificate.

bp tls-via-certmonger

Change-Id: I89001ae32f46c9682aecc118753ef6cd647baa62
2016-10-05 18:38:31 +03:00
Juan Antonio Osorio Robles
b04f01026b Use service-specific servernames for haproxy
Right now we're hardcoding the server names for the services to be
the controllers. This is problematic if we start  using custom roles
for services, which listen on nodes that are not controllers.

We already have the server names for each service, so using this
mapping instead fixes the issue.

Change-Id: Ic4b65edb3dc1b75abbc3421a87cab97425b058c4
Closes-Bug: #1629098
2016-10-05 08:21:17 +00:00