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',
|
||||
: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
|
||||
# Defaults to false
|
||||
#
|
||||
# [*etcd*]
|
||||
# (optional) Enable or not Etcd binding
|
||||
# Defaults to hiera('etcd_enabled', false)
|
||||
#
|
||||
# [*docker_registry*]
|
||||
# (optional) Enable or not the Docker Registry API binding
|
||||
# Defaults to hiera('enable_docker_registry', false)
|
||||
@ -526,6 +530,7 @@ class tripleo::haproxy (
|
||||
$mysql_clustercheck = false,
|
||||
$mysql_member_options = undef,
|
||||
$rabbitmq = false,
|
||||
$etcd = hiera('etcd_enabled', false),
|
||||
$docker_registry = hiera('enable_docker_registry', false),
|
||||
$redis = hiera('redis_enabled', false),
|
||||
$redis_password = undef,
|
||||
@ -713,6 +718,11 @@ class tripleo::haproxy (
|
||||
"${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':
|
||||
service_manage => $haproxy_service_manage,
|
||||
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 {
|
||||
::tripleo::haproxy::endpoint { 'docker-registry':
|
||||
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