Composable Horizon service - tripleo-heat-templates
authorCarlos Camacho <ccamacho@redhat.com>
Wed, 29 Jun 2016 13:25:23 +0000 (15:25 +0200)
committerEmilien Macchi <emilien@redhat.com>
Mon, 11 Jul 2016 21:18:07 +0000 (17:18 -0400)
Add horizon as a composable service

Depends-on: Iff6508972edfd5f330b239719bc5eb14d3f71944
Change-Id: I734c3e0784c25f30adff2e13faf1155a3e45cefd
Partially-implements: blueprint composable-services-within-roles

overcloud-resource-registry-puppet.yaml
overcloud.yaml
puppet/controller.yaml
puppet/manifests/overcloud_controller.pp
puppet/manifests/overcloud_controller_pacemaker.pp
puppet/services/horizon.yaml [new file with mode: 0644]

index bc902a7..379daab 100644 (file)
@@ -178,6 +178,7 @@ resource_registry:
   OS::TripleO::Services::CeilometerExpirer: puppet/services/ceilometer-expirer.yaml
   OS::TripleO::Services::CeilometerAgentCentral: puppet/services/ceilometer-agent-central.yaml
   OS::TripleO::Services::CeilometerAgentNotification: puppet/services/ceilometer-agent-notification.yaml
+  OS::TripleO::Services::Horizon: puppet/services/horizon.yaml
 
 parameter_defaults:
   EnablePackageInstall: false
index 255c7b5..1e56126 100644 (file)
@@ -48,10 +48,6 @@ parameters:
     default: /dev/log
     description: Syslog address where HAproxy will send its log
     type: string
-  HorizonAllowedHosts:
-    default: '*'
-    description: A list of IP/Hostname allowed to connect to horizon
-    type: comma_delimited_list
   ImageUpdatePolicy:
     default: 'REBUILD_PRESERVE_EPHEMERAL'
     description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
@@ -512,6 +508,8 @@ parameters:
       - OS::TripleO::Services::CeilometerExpirer
       - OS::TripleO::Services::CeilometerAgentCentral
       - OS::TripleO::Services::CeilometerAgentNotification
+      - OS::TripleO::Services::Horizon
+
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Controllers.
@@ -789,7 +787,6 @@ resources:
           GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
           HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
           HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
-          HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
           HorizonSecret: {get_resource: HorizonSecret}
           Image: {get_param: controllerImage}
           ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
index 65238eb..79b141d 100644 (file)
@@ -128,10 +128,6 @@ parameters:
     description: Auth encryption key for heat-engine
     type: string
     hidden: true
-  HorizonAllowedHosts:
-    default: '*'
-    description: A list of IP/Hostname allowed to connect to horizon
-    type: comma_delimited_list
   HorizonSecret:
     description: Secret key for Django
     type: string
@@ -524,7 +520,6 @@ resources:
         haproxy_stats_password: {get_param: HAProxyStatsPassword}
         haproxy_stats_user: {get_param: HAProxyStatsUser}
         heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
-        horizon_allowed_hosts: {get_param: HorizonAllowedHosts}
         horizon_secret: {get_param: HorizonSecret}
         admin_password: {get_param: AdminPassword}
         debug: {get_param: Debug}
@@ -894,7 +889,6 @@ resources:
                 # Horizon
                 apache::mod::remoteip::proxy_ips: {get_input: horizon_subnet}
                 apache::ip: {get_input: horizon_network}
-                horizon::allowed_hosts: {get_input: horizon_allowed_hosts}
                 horizon::django_debug: {get_input: debug}
                 horizon::secret_key: {get_input: horizon_secret}
                 horizon::bind_address: {get_input: horizon_network}
index 4f15bb7..9cdbda0 100644 (file)
@@ -77,27 +77,6 @@ if hiera('step') >= 4 {
   include ::aodh::listener
   include ::aodh::client
 
-  # Horizon
-  include ::apache::mod::remoteip
-  if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
-    $_profile_support = 'cisco'
-  } else {
-    $_profile_support = 'None'
-  }
-  $neutron_options   = merge({'profile_support' => $_profile_support },hiera('horizon::neutron_options',undef))
-
-  $memcached_ipv6 = hiera('memcached_ipv6', false)
-  if $memcached_ipv6 {
-    $horizon_memcached_servers = hiera('memcache_node_ips_v6', '[::1]')
-  } else {
-    $horizon_memcached_servers = hiera('memcache_node_ips', '127.0.0.1')
-  }
-
-  class { '::horizon':
-    cache_server_ip => $horizon_memcached_servers,
-    neutron_options => $neutron_options,
-  }
-
   # Gnocchi
   $gnocchi_database_connection = hiera('gnocchi_mysql_conn_string')
   class { '::gnocchi':
index 9a9d008..cfa693b 100644 (file)
@@ -269,33 +269,6 @@ MYSQL_HOST=localhost\n",
 
   include ::nova::config
 
-  # httpd/apache and horizon
-  # NOTE(gfidente): server-status can be consumed by the pacemaker resource agent
-  class { '::apache' :
-    service_enable => false,
-    # service_manage => false, # <-- not supported with horizon&apache mod_wsgi?
-  }
-  include ::apache::mod::remoteip
-  include ::apache::mod::status
-  if 'cisco_n1kv' in hiera('neutron::plugins::ml2::mechanism_drivers') {
-    $_profile_support = 'cisco'
-  } else {
-    $_profile_support = 'None'
-  }
-  $neutron_options   = merge({'profile_support' => $_profile_support },hiera('horizon::neutron_options',undef))
-
-  $memcached_ipv6 = hiera('memcached_ipv6', false)
-  if $memcached_ipv6 {
-    $horizon_memcached_servers = hiera('memcache_node_ips_v6', '[::1]')
-  } else {
-    $horizon_memcached_servers = hiera('memcache_node_ips', '127.0.0.1')
-  }
-
-  class { '::horizon':
-    cache_server_ip => $horizon_memcached_servers,
-    neutron_options => $neutron_options,
-  }
-
   # Aodh
   class { '::aodh' :
     database_connection => hiera('aodh_mysql_conn_string'),
diff --git a/puppet/services/horizon.yaml b/puppet/services/horizon.yaml
new file mode 100644 (file)
index 0000000..01cf579
--- /dev/null
@@ -0,0 +1,34 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Horizon service configured with Puppet
+
+parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  HorizonAllowedHosts:
+    default: '*'
+    description: A list of IP/Hostname allowed to connect to horizon
+    type: comma_delimited_list
+  NeutronMechanismDrivers:
+    default: 'openvswitch'
+    description: |
+        The mechanism drivers for the Neutron tenant network.
+    type: comma_delimited_list
+
+outputs:
+  role_data:
+    description: Role data for the Horizon role.
+    value:
+      config_settings:
+        horizon::allowed_hosts: {get_param: HorizonAllowedHosts}
+        neutron::plugins::ml2::mechanism_drivers:
+          str_replace:
+            template: MECHANISMS
+            params:
+              MECHANISMS: {get_param: NeutronMechanismDrivers}
+      step_config: |
+        include ::tripleo::profile::base::horizon