Adds etcd composable service
authorFeng Pan <fpan@redhat.com>
Wed, 14 Dec 2016 03:49:40 +0000 (22:49 -0500)
committerFeng Pan <fpan@redhat.com>
Thu, 19 Jan 2017 05:00:39 +0000 (00:00 -0500)
etcd is used by networking-vpp ML2 driver as the messaging mechanism. This
patch adds etcd service which can be used by other services.

Implements: blueprint fdio-integration-tripleo

Depends-on: Idaa3e3deddf9be3d278e90b569466c2717e2d517

Change-Id: I8ae1e2c9b0c3d6f448e1da712100938d011289f5
Signed-off-by: Feng Pan <fpan@redhat.com>
environments/services/etcd.yaml [new file with mode: 0644]
network/service_net_map.j2.yaml
overcloud-resource-registry-puppet.j2.yaml
puppet/services/etcd.yaml [new file with mode: 0644]
roles_data.yaml

diff --git a/environments/services/etcd.yaml b/environments/services/etcd.yaml
new file mode 100644 (file)
index 0000000..08d54d5
--- /dev/null
@@ -0,0 +1,2 @@
+resource_registry:
+  OS::TripleO::Services::Etcd: ../../puppet/services/etcd.yaml
index 8f1c4b4..27278ed 100644 (file)
@@ -63,6 +63,7 @@ parameters:
       # We special-case the default ResolveNetwork for the CephStorage role
       # for backwards compatibility, all other roles default to internal_api
       CephStorageHostnameResolveNetwork: storage
+      EtcdNetwork: internal_api
 {% for role in roles if role.name != 'CephStorage' %}
       {{role.name}}HostnameResolveNetwork: internal_api
 {% endfor %}
index 7e0ecf0..e111a1a 100644 (file)
@@ -232,6 +232,7 @@ resource_registry:
   OS::TripleO::Services::Zaqar: OS::Heat::None
   OS::TripleO::Services::NeutronML2FujitsuCfab: OS::Heat::None
   OS::TripleO::Services::CinderHPELeftHandISCSI: OS::Heat::None
+  OS::TripleO::Services::Etcd: OS::Heat::None
 
 parameter_defaults:
   EnablePackageInstall: false
diff --git a/puppet/services/etcd.yaml b/puppet/services/etcd.yaml
new file mode 100644 (file)
index 0000000..f96fa72
--- /dev/null
@@ -0,0 +1,58 @@
+heat_template_version: ocata
+
+description: >
+  Etcd service configured with Puppet
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  EtcdInitialClusterToken:
+    default: 'etcd-tripleo'
+    description: Initial cluster token for the etcd cluster during bootstrap.
+    type: string
+  MonitoringSubscriptionEtcd:
+    default: 'overcloud-etcd'
+    type: string
+
+outputs:
+  role_data:
+    description: Role data for the Etcd role.
+    value:
+      service_name: etcd
+      monitoring_subscription: {get_param: MonitoringSubscriptionEtcd}
+      config_settings:
+        etcd::etcd_name:
+          str_replace:
+            template:
+              '"%{::fqdn_$NETWORK}"'
+            params:
+              $NETWORK: {get_param: [ServiceNetMap, EtcdNetwork]}
+        # NOTE: bind IP is found in Heat replacing the network name with the local node IP
+        # for the given network; replacement examples (eg. for internal_api):
+        # internal_api -> IP
+        # internal_api_uri -> [IP]
+        # internal_api_subnet - > IP/CIDR
+        tripleo::profile::base::etcd::bind_ip: {get_param: [ServiceNetMap, EtcdNetwork]}
+        tripleo::profile::base::etcd::client_port: '2379'
+        tripleo::profile::base::etcd::peer_port: '2380'
+        etcd::initial_cluster_token: {get_param: EtcdInitialClusterToken}
+        etcd::manage_package: false
+        tripleo.etcd.firewall_rules:
+          '141 etcd':
+            dport:
+              - 2379
+              - 2380
+      step_config: |
+        include ::tripleo::profile::base::etcd
index bbb1ab7..d6c03cb 100644 (file)
     - OS::TripleO::Services::OVNDBs
     - OS::TripleO::Services::NeutronML2FujitsuCfab
     - OS::TripleO::Services::CinderHPELeftHandISCSI
+    - OS::TripleO::Services::Etcd
 
 - name: Compute
   CountDefault: 1