Adds etcd
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 Change-Id: Idaa3e3deddf9be3d278e90b569466c2717e2d517 Signed-off-by: Feng Pan <fpan@redhat.com>
This commit is contained in:
parent
3b3699ac99
commit
ade8845ac8
@ -29,3 +29,6 @@ mod 'datacat',
|
|||||||
:git => 'https://github.com/richardc/puppet-datacat',
|
:git => 'https://github.com/richardc/puppet-datacat',
|
||||||
:ref => '0.6.2'
|
:ref => '0.6.2'
|
||||||
|
|
||||||
|
mod 'etcd',
|
||||||
|
:git => 'https://github.com/cristifalcas/puppet-etcd',
|
||||||
|
:ref => '1.10.0'
|
@ -251,6 +251,10 @@
|
|||||||
# (optional) Enable or not RabbitMQ binding
|
# (optional) Enable or not RabbitMQ binding
|
||||||
# Defaults to false
|
# Defaults to false
|
||||||
#
|
#
|
||||||
|
# [*etcd*]
|
||||||
|
# (optional) Enable or not Etcd binding
|
||||||
|
# Defaults to hiera('etcd_enabled', false)
|
||||||
|
#
|
||||||
# [*docker_registry*]
|
# [*docker_registry*]
|
||||||
# (optional) Enable or not the Docker Registry API binding
|
# (optional) Enable or not the Docker Registry API binding
|
||||||
# Defaults to hiera('enable_docker_registry', false)
|
# Defaults to hiera('enable_docker_registry', false)
|
||||||
@ -526,6 +530,7 @@ class tripleo::haproxy (
|
|||||||
$mysql_clustercheck = false,
|
$mysql_clustercheck = false,
|
||||||
$mysql_member_options = undef,
|
$mysql_member_options = undef,
|
||||||
$rabbitmq = false,
|
$rabbitmq = false,
|
||||||
|
$etcd = hiera('etcd_enabled', false),
|
||||||
$docker_registry = hiera('enable_docker_registry', false),
|
$docker_registry = hiera('enable_docker_registry', false),
|
||||||
$redis = hiera('redis_enabled', false),
|
$redis = hiera('redis_enabled', false),
|
||||||
$redis_password = undef,
|
$redis_password = undef,
|
||||||
@ -713,6 +718,11 @@ class tripleo::haproxy (
|
|||||||
"${redis_vip}:6379" => $haproxy_listen_bind_param,
|
"${redis_vip}:6379" => $haproxy_listen_bind_param,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$etcd_vip = hiera('etcd_vip', $controller_virtual_ip)
|
||||||
|
$etcd_bind_opts = {
|
||||||
|
"${etcd_vip}:2379" => $haproxy_listen_bind_param,
|
||||||
|
}
|
||||||
|
|
||||||
class { '::haproxy':
|
class { '::haproxy':
|
||||||
service_manage => $haproxy_service_manage,
|
service_manage => $haproxy_service_manage,
|
||||||
global_options => {
|
global_options => {
|
||||||
@ -1255,6 +1265,23 @@ class tripleo::haproxy (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $etcd {
|
||||||
|
haproxy::listen { 'etcd':
|
||||||
|
bind => $etcd_bind_opts,
|
||||||
|
options => {
|
||||||
|
'balance' => 'source',
|
||||||
|
},
|
||||||
|
collect_exported => false,
|
||||||
|
}
|
||||||
|
haproxy::balancermember { 'etcd':
|
||||||
|
listening_service => 'etcd',
|
||||||
|
ports => '2379',
|
||||||
|
ipaddresses => hiera('etcd_node_ips', $controller_hosts_real),
|
||||||
|
server_names => hiera('etcd_node_names', $controller_hosts_names_real),
|
||||||
|
options => $haproxy_member_options,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $docker_registry {
|
if $docker_registry {
|
||||||
::tripleo::haproxy::endpoint { 'docker-registry':
|
::tripleo::haproxy::endpoint { 'docker-registry':
|
||||||
public_virtual_ip => $public_virtual_ip,
|
public_virtual_ip => $public_virtual_ip,
|
||||||
|
66
manifests/profile/base/etcd.pp
Normal file
66
manifests/profile/base/etcd.pp
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# 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::etcd
|
||||||
|
#
|
||||||
|
# etcd profile for tripleo
|
||||||
|
#
|
||||||
|
# === Parameters
|
||||||
|
#
|
||||||
|
# [*bind_ip*]
|
||||||
|
# (optional) IP to bind etcd service to.
|
||||||
|
# Defaults to '127.0.0.1'.
|
||||||
|
#
|
||||||
|
# [*client_port*]
|
||||||
|
# (optional) etcd client listening port.
|
||||||
|
# Defaults to '2379'.
|
||||||
|
#
|
||||||
|
# [*peer_port*]
|
||||||
|
# (optional) etcd peer listening port.
|
||||||
|
# Defaults to '2380'.
|
||||||
|
#
|
||||||
|
# [*nodes*]
|
||||||
|
# (Optional) Array of host(s) for etcd nodes.
|
||||||
|
# Defaults to hiera('etcd_node_ips', []).
|
||||||
|
#
|
||||||
|
# [*step*]
|
||||||
|
# (Optional) The current step in deployment. See tripleo-heat-templates
|
||||||
|
# for more details.
|
||||||
|
# Defaults to hiera('step')
|
||||||
|
#
|
||||||
|
class tripleo::profile::base::etcd (
|
||||||
|
$bind_ip = '127.0.0.1',
|
||||||
|
$client_port = '2379',
|
||||||
|
$peer_port = '2380',
|
||||||
|
$nodes = hiera('etcd_node_names', []),
|
||||||
|
$step = hiera('step'),
|
||||||
|
) {
|
||||||
|
if $step >= 1 {
|
||||||
|
if count($nodes) > 1 {
|
||||||
|
$cluster_enabled = true
|
||||||
|
} else {
|
||||||
|
$cluster_enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'::etcd':
|
||||||
|
listen_client_urls => "http://${bind_ip}:${client_port}",
|
||||||
|
advertise_client_urls => "http://${bind_ip}:${client_port}",
|
||||||
|
listen_peer_urls => "http://${bind_ip}:${peer_port}",
|
||||||
|
initial_advertise_peer_urls => "http://${bind_ip}:${peer_port}",
|
||||||
|
initial_cluster => regsubst($nodes, '.+', "\\0=http://\\0:${peer_port}"),
|
||||||
|
cluster_enabled => $cluster_enabled,
|
||||||
|
proxy => 'off',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user