Add barbican profile
authorAde Lee <alee@redhat.com>
Mon, 8 Aug 2016 14:18:51 +0000 (10:18 -0400)
committerJuan Antonio Osorio Robles <jaosorior@redhat.com>
Wed, 19 Oct 2016 05:44:58 +0000 (08:44 +0300)
Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Change-Id: If2804b469eb3ee08f3f194c7dd3290d23a245a7a

manifests/haproxy.pp
manifests/profile/base/barbican.pp [new file with mode: 0644]
manifests/profile/base/barbican/api.pp [new file with mode: 0644]
manifests/profile/base/keystone.pp

index c4d018d..e17dc90 100644 (file)
 #  (optional) Enable or not Aodh API binding
 #  Defaults to hiera('aodh_api_enabled', false)
 #
+# [*barbican*]
+#  (optional) Enable or not Barbican API binding
+#  Defaults to false
+#
 # [*gnocchi*]
 #  (optional) Enable or not Gnocchi API binding
 #  Defaults to hiera('gnocchi_api_enabled', false)
 #  (optional) Specify the network aodh is running on.
 #  Defaults to hiera('aodh_api_network', undef)
 #
+# [*barbican_network*]
+#  (optional) Specify the network barbican is running on.
+#  Defaults to hiera('barbican_api_network', undef)
+#
 # [*ceilometer_network*]
 #  (optional) Specify the network ceilometer is running on.
 #  Defaults to hiera('ceilometer_api_network', undef)
 #  The available keys to modify the services' ports are:
 #    'aodh_api_port' (Defaults to 8042)
 #    'aodh_api_ssl_port' (Defaults to 13042)
+#    'barbican_api_port' (Defaults to 9311)
+#    'barbican_api_ssl_port' (Defaults to 13311)
 #    'ceilometer_api_port' (Defaults to 8777)
 #    'ceilometer_api_ssl_port' (Defaults to 13777)
 #    'cinder_api_port' (Defaults to 8776)
@@ -444,6 +454,7 @@ class tripleo::haproxy (
   $nova_novncproxy             = hiera('nova_vnc_proxy_enabled', false),
   $ceilometer                  = hiera('ceilometer_api_enabled', false),
   $aodh                        = hiera('aodh_api_enabled', false),
+  $barbican                    = hiera('barbican_api_enabled', false),
   $gnocchi                     = hiera('gnocchi_api_enabled', false),
   $mistral                     = hiera('mistral_api_enabled', false),
   $swift_proxy_server          = hiera('swift_proxy_enabled', false),
@@ -464,6 +475,7 @@ class tripleo::haproxy (
   $opendaylight                = hiera('opendaylight_api_enabled', false),
   $zaqar_ws                    = hiera('zaqar_api_enabled', false),
   $aodh_network                = hiera('aodh_api_network', undef),
+  $barbican_network            = hiera('barbican_api_network', false),
   $ceilometer_network          = hiera('ceilometer_api_network', undef),
   $ceph_rgw_network            = hiera('ceph_rgw_network', undef),
   $cinder_network              = hiera('cinder_api_network', undef),
@@ -492,6 +504,8 @@ class tripleo::haproxy (
   $default_service_ports = {
     aodh_api_port => 8042,
     aodh_api_ssl_port => 13042,
+    barbican_api_port => 9311,
+    barbican_api_ssl_port => 13311,
     ceilometer_api_port => 8777,
     ceilometer_api_ssl_port => 13777,
     cinder_api_port => 8776,
@@ -880,6 +894,18 @@ class tripleo::haproxy (
     }
   }
 
+  if $barbican {
+    ::tripleo::haproxy::endpoint { 'barbican':
+      public_virtual_ip => $public_virtual_ip,
+      internal_ip       => hiera('barbican_api_vip', $controller_virtual_ip),
+      service_port      => $ports[barbican_api_port],
+      ip_addresses      => hiera('barbican_api_node_ips', $controller_hosts_real),
+      server_names      => hiera('aodh_api_node_names', $controller_hosts_names_real),
+      public_ssl_port   => $ports[barbican_api_ssl_port],
+      service_network   => $barbican_network
+    }
+  }
+
   if $gnocchi {
     ::tripleo::haproxy::endpoint { 'gnocchi':
       public_virtual_ip => $public_virtual_ip,
diff --git a/manifests/profile/base/barbican.pp b/manifests/profile/base/barbican.pp
new file mode 100644 (file)
index 0000000..f4d6230
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::barbican
+#
+# Barbican profile for tripleo
+#
+# === Parameters
+#
+# [*step*]
+#   (Optional) The current step in deployment. See tripleo-heat-templates
+#   for more details.
+#   Defaults to hiera('step')
+#
+
+class tripleo::profile::base::barbican (
+  $step = hiera('step'),
+) {
+
+  if $step >= 3 {
+    include ::barbican
+    include ::barbican::config
+    include ::barbican::client
+  }
+}
diff --git a/manifests/profile/base/barbican/api.pp b/manifests/profile/base/barbican/api.pp
new file mode 100644 (file)
index 0000000..470e649
--- /dev/null
@@ -0,0 +1,56 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::barbican::api
+#
+# Barbican profile for tripleo api
+#
+# === Parameters
+#
+# [*bootstrap_node*]
+#   (Optional) The hostname of the node responsible for bootstrapping tasks
+#   Defaults to hiera('bootstrap_nodeid')
+#
+# [*step*]
+#   (Optional) The current step in deployment. See tripleo-heat-templates
+#   for more details.
+#   Defaults to hiera('step')
+#
+class tripleo::profile::base::barbican::api (
+  $bootstrap_node = hiera('bootstrap_nodeid', undef),
+  $step           = hiera('step'),
+) {
+  if $::hostname == downcase($bootstrap_node) {
+    $sync_db = true
+  } else {
+    $sync_db = false
+  }
+
+  include ::tripleo::profile::base::barbican
+
+  if $step >= 3 and $sync_db {
+    include ::barbican::db::mysql
+  }
+
+  if $step >= 4 or ( $step >= 3 and $sync_db ) {
+    class { '::barbican::api':
+      sync_db => $sync_db
+    }
+    include ::barbican::keystone::authtoken
+    include ::barbican::api::logging
+    include ::barbican::keystone::notification
+    include ::barbican::quota
+    include ::barbican::wsgi::apache
+  }
+}
index 846296e..29234d2 100644 (file)
@@ -103,6 +103,9 @@ class tripleo::profile::base::keystone (
     if hiera('aodh_api_enabled', false) {
       include ::aodh::keystone::auth
     }
+    if hiera('barbican_api_enabled', false) {
+      include ::barbican::keystone::auth
+    }
     if hiera('ceilometer_api_enabled', false) {
       include ::ceilometer::keystone::auth
     }