apex-puppet-tripleo.git
8 years agoDeprecate loabalancer profiles
Emilien Macchi [Tue, 31 May 2016 20:22:25 +0000 (16:22 -0400)]
Deprecate loabalancer profiles

Deprecate loadbalancer profiles so we have a profile for HAproxy and
another for keepalived.

Once THT uses the new profiles, we'll remove loadbalancer profiles here.

Change-Id: I8aa9045fc80205485abab723968b26084f60bf71

8 years agoMerge "Composable roles within services - Redis"
Jenkins [Fri, 3 Jun 2016 19:48:00 +0000 (19:48 +0000)]
Merge "Composable roles within services - Redis"

8 years agoRemove tripleo::loadbalancer
Emilien Macchi [Tue, 31 May 2016 12:54:36 +0000 (08:54 -0400)]
Remove tripleo::loadbalancer

The split has been done on both undercloud & overcloud, they now use
tripleo::haproxy and tripleo::keepalived. We can move forward with
removing tripleo::loadbalancer and tripleo::loadbalancer::endpoint, not
used anymore.

Simplify tripleo::profile::base::loadbalancer to just include
tripleo::haproxy and rely on Hiera for parameters.

Change-Id: Ieeb1e94117ae9cb8b11320306de3a9b236bd989a

8 years agoloadbalancer: remove controller_host
Emilien Macchi [Wed, 1 Jun 2016 14:40:43 +0000 (10:40 -0400)]
loadbalancer: remove controller_host

controller_host was deprecated and is not used anymore anywhere.
Let's drop it.
Also make controller_hosts really required, by not setting a default
paramter, so Puppet catalog will fail if no value is given.

Change-Id: Iad760115f925e848e4b72009db5177f88ceb4ad8

8 years agoMerge "Add Cinder API/Scheduler/Volume roles"
Jenkins [Thu, 2 Jun 2016 16:13:48 +0000 (16:13 +0000)]
Merge "Add Cinder API/Scheduler/Volume roles"

8 years agoComposable roles within services - Redis
Pradeep Kilambi [Tue, 12 Apr 2016 16:01:19 +0000 (12:01 -0400)]
Composable roles within services - Redis

Implements: blueprint refactor-puppet-manifests

Co-Authored-By: Carlos Camacho <ccamacho@redhat.com>
Change-Id: I60493a3aa64e5136b763e8e2084d728f5f812f8a

8 years agoAdd Cinder API/Scheduler/Volume roles
Giulio Fidente [Thu, 28 Apr 2016 20:32:55 +0000 (15:32 -0500)]
Add Cinder API/Scheduler/Volume roles

Includes both the base and the pacemaker roles.

Change-Id: I3c6d5226eed5f0f852b0ad9476c7cd9a959fda69

8 years agoApply RabbitMQ rabbitmq_* static hiera in nonha with single controller
Giulio Fidente [Wed, 1 Jun 2016 20:09:18 +0000 (22:09 +0200)]
Apply RabbitMQ rabbitmq_* static hiera in nonha with single controller

We were not consuming the rabbitmq_* static hiera settings when
deploying without pcmk and with a single controller.

Change-Id: I1506093e3d4365e2617521737c8f53edfb022133

8 years agoMerge "Add Sahara profiles"
Jenkins [Thu, 2 Jun 2016 12:18:41 +0000 (12:18 +0000)]
Merge "Add Sahara profiles"

8 years agoMerge "Update profiles for loadbalancer split"
Jenkins [Tue, 31 May 2016 12:26:15 +0000 (12:26 +0000)]
Merge "Update profiles for loadbalancer split"

8 years agoAdd puppet profile for swift proxy
Steven Hardy [Tue, 24 May 2016 16:27:18 +0000 (17:27 +0100)]
Add puppet profile for swift proxy

Breaks out the swift proxy configuration from t-h-t to a
composable profile

Change-Id: I6bd72284911f3f449157a6fc00b76682dd53bd8c
Partially-Implements: blueprint refactor-puppet-manifests

8 years agoUpdate profiles for loadbalancer split
Emilien Macchi [Wed, 25 May 2016 20:24:51 +0000 (16:24 -0400)]
Update profiles for loadbalancer split

Update loadbalancer (nonha and ha) and midonet profiles to consume new
tripleo::haproxy class.

Keep it backward compatible with old interface until we update THT by
using stdlib function: pick. So we first try to get new parameters
otherwise we fallback to the old interface.

Change-Id: I46ed8348dc990d9aa0d896e1abea3b30a8292634

8 years agoglance: known_stores -> stores
Emilien Macchi [Mon, 30 May 2016 15:56:14 +0000 (11:56 -0400)]
glance: known_stores -> stores

known_stores is deprecated in favor of stores.
This patch aims to update it.

Change-Id: Iaf83b847fbe9e8a78c6bf7f534c955eae357d95f

8 years agoMerge "Remove cinder resource for setting SSL middleware"
Jenkins [Mon, 30 May 2016 12:26:47 +0000 (12:26 +0000)]
Merge "Remove cinder resource for setting SSL middleware"

8 years agoRemove cinder resource for setting SSL middleware
Juan Antonio Osorio Robles [Fri, 27 May 2016 11:01:54 +0000 (14:01 +0300)]
Remove cinder resource for setting SSL middleware

Now that cinder enables http_proxy_to_wsgi by default[1], we no
longer need to add it ourselves. So this is now safe to remove.

[1] If5aab9cc25a2e7c66a0bb13b5f7488a667b30309
Depends-On: I6141b6caf9b04ee73fae3ae2b94b3001b21b9999

Change-Id: I3581d11519b664863f47c5aeeec6efcc4182a5fc

8 years agoAdd Sahara profiles
Brad P. Crochet [Thu, 19 May 2016 01:25:56 +0000 (21:25 -0400)]
Add Sahara profiles

Add Sahara profiles for non-ha & ha scenarios.

Implements: blueprint refactor-puppet-manifests

Change-Id: I0c8bd68f9a98626e9d67ef713c72c9dd05b7cc12

8 years agoExplode loadbalancer role in 2 sub-roles
Emilien Macchi [Wed, 25 May 2016 19:37:01 +0000 (15:37 -0400)]
Explode loadbalancer role in 2 sub-roles

Split loadbalancer role into 2 sub-roles:
- HAproxy
- Keepalived

Change-Id: I84dfa9d409d390c6f549d62cb3634931e4cb432c

8 years agoloadbalancer: make sure controller_* are array-typed
Emilien Macchi [Wed, 25 May 2016 19:51:39 +0000 (15:51 -0400)]
loadbalancer: make sure controller_* are array-typed

Make sure controller_hosts_real and controller_hosts_names_real become
array-types anyway, so we don't need to add brackets in Hiera lookups
(example on both undercloud & overcloud where we do [hiera('controller_host')]).

Change-Id: I2fe899482acfd51919262bc7a6a1c9f450e173f4

8 years agoMerge "Add lookup_hiera_hash function"
Jenkins [Thu, 26 May 2016 14:11:18 +0000 (14:11 +0000)]
Merge "Add lookup_hiera_hash function"

8 years agoMerge "Add Heat profiles"
Jenkins [Thu, 26 May 2016 07:39:02 +0000 (07:39 +0000)]
Merge "Add Heat profiles"

8 years agoAdd lookup_hiera_hash function
Giulio Fidente [Mon, 23 May 2016 19:09:21 +0000 (21:09 +0200)]
Add lookup_hiera_hash function

The lookup_hiera_hash function is meant to lookup for the value
of a given key from a given Hiera hash. In the manifests this is
possible by saving the value of the hash in a variable first but
when driving lookups from the Heat templates we can't do it.

Change-Id: Ie31bb70314db44a0a18e86090cc74aa4df5de169

8 years agoChange default CloudFormation ssl port to 13005
Brad P. Crochet [Fri, 20 May 2016 12:16:03 +0000 (08:16 -0400)]
Change default CloudFormation ssl port to 13005

The current default of 13800 is a bit out of line with the other Heat
SSL ports. This makes it a more sane default of 13005.

Change-Id: Ic9aa71bfc80ca5fdb3b3c48dc55be7b98cf22ada

8 years agoMerge "Adds the base and pacemaker profile for the memcached service"
Jenkins [Fri, 20 May 2016 09:57:49 +0000 (09:57 +0000)]
Merge "Adds the base and pacemaker profile for the memcached service"

8 years agoMerge "Add loadbalancer profile for ha & non-ha"
Jenkins [Thu, 19 May 2016 20:09:17 +0000 (20:09 +0000)]
Merge "Add loadbalancer profile for ha & non-ha"

8 years agoAdd Heat profiles
Brad P. Crochet [Thu, 5 May 2016 11:52:47 +0000 (07:52 -0400)]
Add Heat profiles

Add Heat profiles for non-ha & ha scenarios.

Implements: blueprint refactor-puppet-manifests

Change-Id: I194cbb6aa307c2331597147545cf10299cab132f

8 years agoAdds the base and pacemaker profile for the memcached service
marios [Thu, 5 May 2016 09:50:48 +0000 (12:50 +0300)]
Adds the base and pacemaker profile for the memcached service

Implements: blueprint refactor-puppet-manifests

This is the puppet-tripleo side for the memcached as a composable
service.  The related tht review that uses this is at
I8802c2a0cf1e5fa1a6d1fab5e87f6014bea2f517

Change-Id: Icd504aef7dda144582c286c56c925a78566af72c

8 years agoAdd loadbalancer profile for ha & non-ha
Emilien Macchi [Thu, 5 May 2016 15:41:21 +0000 (11:41 -0400)]
Add loadbalancer profile for ha & non-ha

The profile contains Puppet classes to deploy loadbalancer services
(HAproxy & Keepalived) for ha & non-ha scenarios.

A future iteration will split HAproxy & keepalived, but for now, we just
want to move out the code from THT to puppet-tripleo.

Change-Id: I9b106dcc1a4d446ab5dea8430ed295e6ec209cbd
Implements: blueprint refactor-puppet-manifests

8 years agoMerge "Composable role for RabbitMQ"
Jenkins [Wed, 18 May 2016 15:29:00 +0000 (15:29 +0000)]
Merge "Composable role for RabbitMQ"

8 years agoMerge "Remove manage_service and enabled from TripleO manifests"
Jenkins [Wed, 18 May 2016 09:52:16 +0000 (09:52 +0000)]
Merge "Remove manage_service and enabled from TripleO manifests"

8 years agoComposable role for RabbitMQ
Emilien Macchi [Mon, 2 May 2016 20:42:21 +0000 (16:42 -0400)]
Composable role for RabbitMQ

Add RabbitMQ composable role, and keep the same logic that we had in
THT.

Implements: blueprint refactor-puppet-manifests
Change-Id: I961bdbe1cc6dd1d4a315de616439f9fc77d793ae

8 years agoRemove Nova EC2 HAproxy endpoint
Emilien Macchi [Sat, 14 May 2016 09:22:02 +0000 (11:22 +0200)]
Remove Nova EC2 HAproxy endpoint

THT does not deploy Nova EC2 anymore, so we don't need the HAproxy
endpoint anymore.

Change-Id: Ia888fe7e14c736ef3678d9a7cf69a2deb9233342
Depends-On: Ief2d0e5c77b5ac58560606fee930fbd66c40ffc3

8 years agoUpdate keystone service name for signing keys
Alex Schultz [Fri, 13 May 2016 16:10:18 +0000 (10:10 -0600)]
Update keystone service name for signing keys

Since keystone is being run under apache, the signing keys should notify
apache and not the keystone service.  The keystone service is actually
disabled, so if the keys get updated nothing happens.

Change-Id: Idfebeabf03d010956569c32b24437245e2b93c2a
Related-Bug: #1581591

9 years agoMerge "Add the neutron-dnsmasq.conf to neutron profile"
Jenkins [Wed, 11 May 2016 10:49:10 +0000 (10:49 +0000)]
Merge "Add the neutron-dnsmasq.conf to neutron profile"

9 years agoAdd the neutron-dnsmasq.conf to neutron profile
Dan Prince [Wed, 11 May 2016 01:49:00 +0000 (21:49 -0400)]
Add the neutron-dnsmasq.conf to neutron profile

This was in the initial neutron profile patches but got removed
mid-way (see patch 16 comments here:
Ida781badbcd63bbcb481a2170638aefe262b717b). The file is in fact
required in order to get the ping test properly passing with TripleO.

Change-Id: Ibbfd79421f871e41f870745a593cca65e8c0e58a

9 years agokeystone: drop usage of step 6
Emilien Macchi [Tue, 10 May 2016 12:56:55 +0000 (08:56 -0400)]
keystone: drop usage of step 6

* Manage roles & endpoints at step 5
* Set correct orchestration for Pacemaker resources within a single
  step.

Change-Id: I079e65f535af069312b602e8ff58be80ab2f2226

9 years agoMerge "Add tripleo::selinux"
Jenkins [Tue, 10 May 2016 13:49:13 +0000 (13:49 +0000)]
Merge "Add tripleo::selinux"

9 years agoRemove manage_service and enabled from TripleO manifests
Giulio Fidente [Fri, 6 May 2016 17:38:29 +0000 (19:38 +0200)]
Remove manage_service and enabled from TripleO manifests

These can be controlled via the specific Pacemaker role template.

Depends-On: I91a4267f0fc230f63df3333747d28463c7ae55fe
Change-Id: I8ef7bb94e048b998712b3534ceb51a7d10d016e9

9 years agoMerge "Add neutron profiles"
Jenkins [Sat, 7 May 2016 23:17:33 +0000 (23:17 +0000)]
Merge "Add neutron profiles"

9 years agoMerge "add metadata.json file"
Jenkins [Fri, 6 May 2016 13:13:16 +0000 (13:13 +0000)]
Merge "add metadata.json file"

9 years agoMerge "Add dport/sport parameter to firewall rule"
Jenkins [Fri, 6 May 2016 03:10:21 +0000 (03:10 +0000)]
Merge "Add dport/sport parameter to firewall rule"

9 years agoadd metadata.json file
Emilien Macchi [Thu, 5 May 2016 17:13:36 +0000 (13:13 -0400)]
add metadata.json file

This file will be useful to contain the release tag so we can
automatically generate tarballs in OpenStack Infra.
No requirements have been set, on purpose, because we won't use
puppetlabs forge to install the module.

Change-Id: Iada2ba5ff37760537cd15630333d2e80550fc031

9 years agoAdd tripleo::selinux
James Slagle [Fri, 22 Apr 2016 13:30:38 +0000 (09:30 -0400)]
Add tripleo::selinux

Adds a class to configure SELinux. The code is taken from
puppet-openstack-cloud:
https://github.com/redhat-cip/puppet-openstack-cloud

This allows to share the same code for usage by both the Undercloud and
Overcloud.

Co-Authored By: Emilien Macchi <emilien@redhat.com>
Co-Authored By: Yanis Guenane <yguenane@redhat.com>

blueprint undercloud-elements
Change-Id: If214005df733d41c2fa4e197df247d8a14baaa14

9 years agoAdd dport/sport parameter to firewall rule
James Slagle [Wed, 20 Apr 2016 14:11:36 +0000 (10:11 -0400)]
Add dport/sport parameter to firewall rule

The port parameter to puppetlabs-firewall is actually deprecated[1].
This adds support for using the new parameter names dport and sport. The
port parameter is still retained in puppet-tripleo for backwards
compatibily for anyone using that interface. It is marked deprecated in
the documentation, however no deprecation warning is needed because
there is already a warning from from puppetlabs-firewall.

blueprint undercloud-elements
Change-Id: I0598007f90018f80a3266193bb24dbf112de49b7

9 years agoAdd neutron profiles
Michael Chapman [Wed, 16 Mar 2016 13:35:35 +0000 (00:35 +1100)]
Add neutron profiles

Implements: blueprint refactor-puppet-manifests

Add neutron profiles for both pacemaker and non-ha.

HA profiles are designed such that they include the base
profiles, disabling features as needed, while the base
profile can be used independently.

Co-Authored-By: Dan Prince <dprince@redhat.com>
Change-Id: Ida781badbcd63bbcb481a2170638aefe262b717b

9 years agoCreate dbs in step 3 for the roles
Giulio Fidente [Wed, 4 May 2016 13:16:54 +0000 (15:16 +0200)]
Create dbs in step 3 for the roles

Before the roles we could make the create db operation depend on a
'galera-ready' resource [1]. We can't do it anymore from the role so
we need to do create in step 3, when we do sync as well.

1. https://github.com/openstack/tripleo-heat-templates/blob/master/puppet/manifests/overcloud_controller_pacemaker.pp#L382

Change-Id: Id065a9180f1f1a41ab225ec5f755498ec7d9a827

9 years agoNoop start/stop/restart action for Glance and Keystone in the roles
Giulio Fidente [Thu, 28 Apr 2016 21:59:14 +0000 (16:59 -0500)]
Noop start/stop/restart action for Glance and Keystone in the roles

Change-Id: I1d95746cb990292462106c191987147eba30ee61

9 years agoMove databases creation and sync with the role
Giulio Fidente [Fri, 22 Apr 2016 14:45:56 +0000 (16:45 +0200)]
Move databases creation and sync with the role

This change moves the database creation and sync with the role
profile, so that it's only executed when the role is enabled and
by the role itself.

It also calls the non-pacemaker profiles out of the 'step'
conditional because the non-pacemaker profiles know how to deal with
'step' already.

Change-Id: I6c752cb53090e7ef8e0319bade462f2453ed7660
Related-Bug: 1572952

9 years agoAdd aodh and gnocchi to schema profiles
Giulio Fidente [Fri, 22 Apr 2016 14:00:49 +0000 (16:00 +0200)]
Add aodh and gnocchi to schema profiles

Change-Id: Ifb0cc7769ef99e4c7142c8f955f0ca721d61e9b5

9 years agoMerge "Add steps to database profiles"
Jenkins [Fri, 22 Apr 2016 13:55:57 +0000 (13:55 +0000)]
Merge "Add steps to database profiles"

9 years agoMerge "Enable HAProxy forwardfor option for Horizon."
Jenkins [Thu, 21 Apr 2016 14:53:30 +0000 (14:53 +0000)]
Merge "Enable HAProxy forwardfor option for Horizon."

9 years agoMerge "Add destination parameter to firewall rule"
Jenkins [Thu, 21 Apr 2016 14:50:02 +0000 (14:50 +0000)]
Merge "Add destination parameter to firewall rule"

9 years agoMerge "Add Glance profiles"
Jenkins [Wed, 20 Apr 2016 22:16:35 +0000 (22:16 +0000)]
Merge "Add Glance profiles"

9 years agoAdd destination parameter to firewall rule
James Slagle [Wed, 20 Apr 2016 13:03:03 +0000 (09:03 -0400)]
Add destination parameter to firewall rule

Specifying a destination cidr is already supported by
puppetlabs-firewall, we just need to pass through the parameter in
rule.pp in puppet-tripleo.

This will allow creating iptables rules that forward network traffic for
a given cidr via puppet-tripleo.

Change-Id: I23582a55cd97248be52f45e14de7e813ff499ff7

9 years agoAdd steps to database profiles
Michael Chapman [Tue, 19 Apr 2016 15:10:13 +0000 (01:10 +1000)]
Add steps to database profiles

Database schema profiles were missing step information, causing
schemas to be created too early.

Change-Id: Ic381804ce5f1aa257ece75d2e079f4b02f446344

9 years agoIPv6 dual-stack support
Emilien Macchi [Tue, 1 Mar 2016 01:04:34 +0000 (20:04 -0500)]
IPv6 dual-stack support

TL;DR:
If keystone_public_api_vip and/or public_virtual_ip is an array of IPs,
HAproxy will be configured to listen on all IPs that are given in the
arrays.
It allows to specify an array for keystone_public_api_vip and/or
public_virtual_ip where one IP is v4 and another one is v6.
HAproxy will configured to listen on both and redirect the traffic to
the IPv6 network (Dual-Stack).

Implementation & background:
HAproxy requires binding options as an hash where each IP contains an
array of binding options.
TripleO does not support Puppet Parser [1] (yet) so we can't manipulate
data iterations inside the manifests.
This patch creates a custom function, called list_to_hash.

Example:
keystone_vips = ['192.168.0.1:5000', '192.168.0.2:5000']
$keystone_bind_opts = ['transparent']

Using this function:
$keystone_vips_hash = list_to_hash($keystone_vips,
$keystone_bind_opts)

Would return:
$keystone_vips_hash = {
  '192.168.0.1:5000' => ['transparent'],
  '192.168.0.2:5000' => ['transparent'],
}

This function will help us in loadbalancer.pp to construct binding
options in dynamic way.
It's backward compatible, so you don't have to give an array.
But if you do, multiple binding will be configured in HAproxy and you'll
also be able to deploy IPv6 Dual-Stack.

[1] https://docs.puppetlabs.com/puppet/latest/reference/lang_iteration.html

Change-Id: I003b6d7d171652654745861d4231882f9e0d373e

9 years agoMerge "Disable ip_nonlocal_bind (rely on the HAProxy 'transparent' option)"
Jenkins [Mon, 18 Apr 2016 20:27:12 +0000 (20:27 +0000)]
Merge "Disable ip_nonlocal_bind (rely on the HAProxy 'transparent' option)"

9 years agoEnable HAProxy forwardfor option for Horizon.
Dimitri Savineau [Wed, 23 Mar 2016 14:14:30 +0000 (10:14 -0400)]
Enable HAProxy forwardfor option for Horizon.

Horizon's backends (httpd) see IP address of the haproxy in the logs instead
of the client address.
Adding forwardfor option allows to add the client address to the
X-Forwarded-For HTTP header and can be replace in the logs by configured the
backend servers with this header.

Change-Id: I54f0f5549d64768dacca71539c71a28cc99d9d95

9 years agoMerge "Add support for internal/admin endpoint TLS in HAProxy"
Jenkins [Thu, 14 Apr 2016 08:29:15 +0000 (08:29 +0000)]
Merge "Add support for internal/admin endpoint TLS in HAProxy"

9 years agoMerge "Add generic manifest for loadbalancer endpoints"
Jenkins [Thu, 14 Apr 2016 07:46:59 +0000 (07:46 +0000)]
Merge "Add generic manifest for loadbalancer endpoints"

9 years agoRefactor HAproxy and VIP creation.
Sofer Athlan-Guyot [Wed, 13 Apr 2016 20:37:05 +0000 (22:37 +0200)]
Refactor HAproxy and VIP creation.

In tripleo heat template, overcloud_controller_pacemaker.pp has a lot of
duplicate code to define haproxy and vip creation.  This is an attempt
to refactor this.

Change-Id: I4cc6711911c1bfa1bc6063979e2b2a7ab5b8d37b

9 years agoMerge "Fix Sahara SSL default port"
Jenkins [Mon, 11 Apr 2016 21:28:45 +0000 (21:28 +0000)]
Merge "Fix Sahara SSL default port"

9 years agoAdd Glance profiles
Emilien Macchi [Tue, 22 Mar 2016 21:33:22 +0000 (17:33 -0400)]
Add Glance profiles

Add Glance profiles for non-ha & ha scenarios.

Change-Id: Ifc388f7058ccfff2818f531bcbc00c7179874bbc
Implements: blueprint refactor-puppet-manifests

9 years agoAdd support for internal/admin endpoint TLS in HAProxy
Juan Antonio Osorio Robles [Fri, 8 Apr 2016 10:33:30 +0000 (10:33 +0000)]
Add support for internal/admin endpoint TLS in HAProxy

This commits adds the option to pass an internal certificate.
The aforementioned certificate will be used to terminate TLS
connections for the internal and admin endpoints.

Change-Id: I9d781b42c63cf34bd1f5ba2c71014c6b9de0f990

9 years agoAdd generic manifest for loadbalancer endpoints
Juan Antonio Osorio Robles [Thu, 7 Apr 2016 06:51:49 +0000 (09:51 +0300)]
Add generic manifest for loadbalancer endpoints

In order to reduce repeated code in the loadbalancer manifest, the
repeated parts were moved into one manifest that contains the
endpoint resource.

Change-Id: Ib72abe9de7ab073dcbd780298385b0c519f363aa

9 years agoFix Sahara SSL default port
Juan Antonio Osorio Robles [Mon, 11 Apr 2016 08:12:10 +0000 (11:12 +0300)]
Fix Sahara SSL default port

There were two issues with the SSL port for sahara.
* It was conflicting with Manila's port
* It was documented incorrectly

This has been fixed

Change-Id: I9f710e014890b6daa6b3e511fd811c1e25bd0de3

9 years agoMap gnocchi vip to haproxy_listen_bind_param
Pradeep Kilambi [Tue, 5 Apr 2016 15:34:49 +0000 (11:34 -0400)]
Map gnocchi vip to haproxy_listen_bind_param

Change-Id: I7d2eb9405e0171fc54fa0b616122f69db5f51ce2

9 years agoMerge "Fix comparison to control_virtual_ip"
Jenkins [Mon, 11 Apr 2016 10:45:02 +0000 (10:45 +0000)]
Merge "Fix comparison to control_virtual_ip"

9 years agoRemove individual service certificates
Juan Antonio Osorio Robles [Tue, 5 Apr 2016 07:43:33 +0000 (10:43 +0300)]
Remove individual service certificates

They are not being used and add extra logic and unnecessary clutter
to the code. So this CR removes them in favor of just configuring
TLS with the service_certificate. The only individual cert left was
the one for haproxy stats.

Change-Id: Ic3b769423917e723ecc83e32bcbae17568345661

9 years agoAdd missing services ports to service_ports map
Juan Antonio Osorio Robles [Thu, 7 Apr 2016 06:50:56 +0000 (09:50 +0300)]
Add missing services ports to service_ports map

AODH, Gnocchi, Sahara and Trove were missing from the service_ports
maps and thus had hardcoded ports in the listener configuration. The
addition of those ports to the map is required to give the
possibility to deployers to configure those ports if needed. This
commit adds them to that map.

Change-Id: Id009d65bf68ba91f97b0d60d32028da50fc88fc3

9 years agoFix comparison to control_virtual_ip
James Slagle [Mon, 4 Apr 2016 16:08:17 +0000 (12:08 -0400)]
Fix comparison to control_virtual_ip

When managing the vip's, we were incorrectly comparing the vip to
$control_virtual_interface instead of $controller_virtual_ip when
determining if we needed to actually create the vip or not.

This caused the vips for internal api, storage, and storage mgmt to
always be created even if they were the same as the control vip. Afaict,
this didn't actually cause any problems, other than having extra vip's
created when they weren't needed. Still, this corrects the code to do
what it was intended to do.

Change-Id: I29aee95afcba25008b8b7bee37ba636eb2595cca

9 years agoMerge "Make cipher suite and SSL options configurable"
Jenkins [Fri, 1 Apr 2016 08:36:19 +0000 (08:36 +0000)]
Merge "Make cipher suite and SSL options configurable"

9 years agoMerge "Redirect to https for horizon"
Jenkins [Mon, 28 Mar 2016 21:16:05 +0000 (21:16 +0000)]
Merge "Redirect to https for horizon"

9 years agoMerge "Add keystone and db sync profiles"
Jenkins [Sun, 27 Mar 2016 23:57:32 +0000 (23:57 +0000)]
Merge "Add keystone and db sync profiles"

9 years agoAllow the Redis specific monitor to use authentication
Giulio Fidente [Tue, 22 Mar 2016 16:22:59 +0000 (17:22 +0100)]
Allow the Redis specific monitor to use authentication

When accessing Redis, if password protected, we need to update
the HAProxy checks so that they use a password or we won't be able
to gather which node is the replica master.

Also adds PING/PONG and QUIT/OK sequence before and after the info
command is sent.

More at https://bugzilla.redhat.com/show_bug.cgi?id=1320036

Change-Id: Ia9e61e66c5426061eab8172f0a25820989597780

9 years agoMake cipher suite and SSL options configurable
Juan Antonio Osorio Robles [Fri, 18 Mar 2016 07:57:42 +0000 (09:57 +0200)]
Make cipher suite and SSL options configurable

This CR enables the ability to set the cipher suite to be used by
HAproxy and the SSL options. So now the user can enable these through
hiera.  The cipher suite comes from the Fedora system crypto policy.

Change-Id: Ia5751d4049026683fa13d4bc4cbf4eaffe054b48
Depends-On: I4943c6c74e0be96c1d7e190908b9262df05d059a

9 years agoAdd keystone and db sync profiles
Michael Chapman [Tue, 15 Mar 2016 05:38:35 +0000 (16:38 +1100)]
Add keystone and db sync profiles

Implements: blueprint refactor-puppet-manifests

Add keystone profiles for both pacemaker and non-ha.
Add db sync profiles for pacemaker and non-ha.

HA profiles are designed such that they include the base
profiles, disabling features as needed, while the base
profile can be used independently.

Change-Id: I2faf5a78db802549053ec41678bf83bf28108189

9 years agoRedirect to https for horizon
Juan Antonio Osorio Robles [Fri, 18 Mar 2016 08:30:55 +0000 (10:30 +0200)]
Redirect to https for horizon

This adds a TLS binding listening on the internal network for
horizon. And on the other hand, if the public binding for horizon is
accessed via non-https, it will redirect to https.

Change-Id: I1f92ecd0c4845450df4b24f6b621d313ba9cbfc4
Depends-On: I4943c6c74e0be96c1d7e190908b9262df05d059a

9 years agoHack to fix IPv6 parsing in facter.
Sofer Athlan-Guyot [Thu, 17 Mar 2016 16:44:41 +0000 (17:44 +0100)]
Hack to fix IPv6 parsing in facter.

This kludge fixes the wrong regexp used in facter to report all IPv6
addresses.

While the upstream bug[1] is being work out, this should do the job.

Closes-Bug: 1558490

[1] https://tickets.puppetlabs.com/browse/FACT-1372

Change-Id: I85dabbd26bf8f25b2a03d22f547618b666421a83

9 years agoAllow enabling authentication on haproxy.stats
Ben Nemec [Wed, 9 Mar 2016 21:46:14 +0000 (21:46 +0000)]
Allow enabling authentication on haproxy.stats

Right now we always deploy the haproxy.stats endpoint with no
authentication, which is a security concern.  Allow setting a
password on the endpoint so it isn't accessible to the world.

While this allows configuring SSL on the stats endpoint, it does
not use the service_certificate parameter because that certificate
is intended to be used only for public endpoints, and the stats
endpoint is actually on the admin VIP.  Once we have support for
SSL on admin endpoints we can have stats use it by default.

Change-Id: I8a5844e89bd81a99d5101ab6bce7a8d79e069565

9 years agoMerge "Make OpenStack service ports configurable in HAProxy"
Jenkins [Wed, 9 Mar 2016 15:28:30 +0000 (15:28 +0000)]
Merge "Make OpenStack service ports configurable in HAProxy"

9 years agoMake OpenStack service ports configurable in HAProxy
Juan Antonio Osorio Robles [Wed, 2 Mar 2016 13:54:16 +0000 (15:54 +0200)]
Make OpenStack service ports configurable in HAProxy

Some deployments were expecting specific ports for the OpenStack
services; In case the default ports are not meeting those needs, we
need to provide the means of changing the defaults.

Change-Id: Idbbcc90e2af1b3a731b0b5ea955df6082541a9f7

9 years agoMerge "loadbalancer: fix Redis timeout HAproxy config"
Jenkins [Thu, 3 Mar 2016 14:55:49 +0000 (14:55 +0000)]
Merge "loadbalancer: fix Redis timeout HAproxy config"

9 years agoAlways override X-Forwarded-Proto header for Heat
Juan Antonio Osorio Robles [Tue, 1 Mar 2016 07:34:16 +0000 (09:34 +0200)]
Always override X-Forwarded-Proto header for Heat

Heat has the ssl middleware to handle the X-Forwarded-Proto header by
default. We override this header when SSL is enabled because we need
to, but overriding it even when we won't be terminating SSL will
prevent some attacks using this header.

Change-Id: I0b2c61cd4f47c8c08a84402af310983af752d3f2

9 years agoloadbalancer: fix Redis timeout HAproxy config
Jason Guiditta [Thu, 25 Feb 2016 15:27:26 +0000 (10:27 -0500)]
loadbalancer: fix Redis timeout HAproxy config

Current HAproxy config is broken for Redis timeout parameters. This is what we
have today by default in HAproxy logs:
[WARNING] 238/115010 (13878) : config : missing timeouts for proxy 'redis'.
| While not properly invalid, you will certainly encounter various problems
| with such a configuration. To fix this, please ensure that all following
| timeouts are set to a non-zero value: 'client', 'connect', 'server'.

This patch removes the explicit setting of client and server timeouts to 0,
which is the cause of the above warning.  Instead, Redis will simply inherit the
haproxy defaults, which should be a more reasonable setting, and result in no
warnings.

Change-Id: Ibe7941bec02f5facf21732910c9ad96f547ff8e5

9 years agoOverride X-Forwarded-Proto header
Juan Antonio Osorio Robles [Mon, 22 Feb 2016 13:09:05 +0000 (15:09 +0200)]
Override X-Forwarded-Proto header

Right now, the only manipulation done to the X-Forwarded-Proto header
is done if an SSL connection is established. This is not sufficient as
one might be able to erroneously put values through that header.

This patch disables that behaviour by defaulting to plain http if an
SSL connection is not established.

Change-Id: I4bf6def21e21148834c2baa9669190bab8fa95ef

9 years agoMerge "packages: secure upgrade workflow from dependency cycles"
Jenkins [Thu, 18 Feb 2016 13:19:57 +0000 (13:19 +0000)]
Merge "packages: secure upgrade workflow from dependency cycles"

9 years agoMerge "Handle redirects for Horizon"
Jenkins [Wed, 17 Feb 2016 09:25:04 +0000 (09:25 +0000)]
Merge "Handle redirects for Horizon"

9 years agoMerge "Enable X-Forwarded-Proto header for keystone admin endpoint"
Jenkins [Thu, 11 Feb 2016 20:40:46 +0000 (20:40 +0000)]
Merge "Enable X-Forwarded-Proto header for keystone admin endpoint"

9 years agoHandle redirects for Horizon
Ben Nemec [Fri, 15 Jan 2016 18:45:11 +0000 (18:45 +0000)]
Handle redirects for Horizon

As for Heat, we need to be able to handle 30X redirects from Horizon
when configured to use SSL.  Because Horizon's redirects are
handled directly by Apache, we can't use middleware to handle the
X-Forwarded-Proto header like we are planning to do for the other
services.  However, in this case we don't need to worry about
rewriting urls in the payload like we do for the other services
because Horizon is just serving standard web pages, not custom
HTTP bodies with JSON contents.

One other change from the previous Heat patch is to drop the IP
from the rewrite regex.  This is because Horizon will generally be
accessed via a DNS name, so the IP won't appear in the Location
header.  The heat regex should probably be changed as well since
we now support registering endpoints with DNS names, but since we
plan to move all the other services to the X-Forwarded-Proto header
middleware anyway we can probably just wait until that happens and
then remove the Heat rule entirely.

Change-Id: I039a3036be17eeabe3cff68e0ef24f70907cc568

9 years agoMerge "Use HAProxy 'transparent' bind option for compat with IPv6"
Jenkins [Thu, 11 Feb 2016 12:51:05 +0000 (12:51 +0000)]
Merge "Use HAProxy 'transparent' bind option for compat with IPv6"

9 years agoMerge "Make haproxy balancer default options configurable"
Jenkins [Thu, 11 Feb 2016 12:50:56 +0000 (12:50 +0000)]
Merge "Make haproxy balancer default options configurable"

9 years agoMerge "loadbalancer: add Gnocchi API support"
Jenkins [Mon, 25 Jan 2016 15:14:32 +0000 (15:14 +0000)]
Merge "loadbalancer: add Gnocchi API support"

9 years agoMerge "SSL/Cinder: enable ssl_header_handler filter"
Jenkins [Mon, 25 Jan 2016 09:32:22 +0000 (09:32 +0000)]
Merge "SSL/Cinder: enable ssl_header_handler filter"

9 years agoDrop webmock dependency
Emilien Macchi [Fri, 22 Jan 2016 13:48:45 +0000 (08:48 -0500)]
Drop webmock dependency

webmock is not used anywhere in puppet-tripleo, let's clean it.

Change-Id: Idd8646e69e31a63791a345765c459d094a23f813

9 years agoSSL/Cinder: enable ssl_header_handler filter
Juan Antonio Osorio Robles [Sat, 16 Jan 2016 10:07:59 +0000 (12:07 +0200)]
SSL/Cinder: enable ssl_header_handler filter

Enable oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory in
ssl_header_handler middlewarefilter so we can run Nova API with SSL
support.

Change-Id: If88dcdf9f4905e2a792b2fdc656eab51c85f637e

9 years agopackages: secure upgrade workflow from dependency cycles
Emilien Macchi [Sat, 16 Jan 2016 00:25:17 +0000 (19:25 -0500)]
packages: secure upgrade workflow from dependency cycles

Change the workflow to be:
Upgrade all packages before any services that is notified & managed by
Puppet.
It also disable the Exec timeout so we rely on Heat timeout and not on
the 300s that are the default in Puppet [1]

Example: we upgrade and OpenStack config will change (obviously).
         Puppet catalog will contain 3 important things:
           * config resources
           * service resources
           * package-upgrade Exec resource
         with that patch, what will happen:
           * puppet will update config first or second and notify
             services
           * puppet will run package-upgrade first or second but before
             the package-upgrade Exec resource
           * at the very end, puppet will restart services

That way, we avoid complications with Puppet dependency cycle issues.

[1] https://docs.puppetlabs.com/references/latest/type.html#exec-attribute-timeout

Closes-Bug: 1536349
Change-Id: I07310bdfc5b07b03ac9fa5f8c13e87eaa2bfef4d

9 years agoEnable X-Forwarded-Proto header for keystone admin endpoint
Juan Antonio Osorio Robles [Thu, 14 Jan 2016 09:01:13 +0000 (11:01 +0200)]
Enable X-Forwarded-Proto header for keystone admin endpoint

This is useful for handling URLs properly when TLS is enabled.

Change-Id: I4defed679cf3b2980dcc4ce1db030c0fdf154bfe

9 years agoDisable ip_nonlocal_bind (rely on the HAProxy 'transparent' option)
Giulio Fidente [Wed, 13 Jan 2016 20:12:57 +0000 (21:12 +0100)]
Disable ip_nonlocal_bind (rely on the HAProxy 'transparent' option)

Change-Id: Ib57a4bf463900e68cbf97900027f972e590799c2

9 years agoUse HAProxy 'transparent' bind option for compat with IPv6
Giulio Fidente [Fri, 8 Jan 2016 15:26:36 +0000 (16:26 +0100)]
Use HAProxy 'transparent' bind option for compat with IPv6

Change-Id: Iddf1fdaabc1c758546999e7af7e7412158400e7f

9 years agoEnable X-Forwarded-Proto header for cinder
Juan Antonio Osorio Robles [Wed, 13 Jan 2016 16:26:15 +0000 (18:26 +0200)]
Enable X-Forwarded-Proto header for cinder

Change-Id: I3bd836140537fc5b7e3fba600a712d6a9d6f1185