From 1ff831a0a8f4874d9724faeca1a9d603644f8a49 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Mon, 22 May 2017 17:30:18 -0400 Subject: Adds OpenDaylight resources for configuring cluster with docker In puppet-opendaylight configuring a cluster is done using an exec calling an opendaylight script to configure the clustering file. For containerizing ODL, we cannot use exec as a puppet tag, therefore we need to use a defined type to tag with. This patch adds that defined type to configure a cluster and a class to call it. These will only be used during containerized deploys and calls the same configuration script used by puppet-odl. Change-Id: I020550ede0ef981582392cf6c48dd5cb5823a074 Signed-off-by: Tim Rozet --- .../base/neutron/opendaylight/configure_cluster.pp | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 manifests/profile/base/neutron/opendaylight/configure_cluster.pp (limited to 'manifests/profile/base/neutron/opendaylight/configure_cluster.pp') diff --git a/manifests/profile/base/neutron/opendaylight/configure_cluster.pp b/manifests/profile/base/neutron/opendaylight/configure_cluster.pp new file mode 100644 index 0000000..022e8ae --- /dev/null +++ b/manifests/profile/base/neutron/opendaylight/configure_cluster.pp @@ -0,0 +1,45 @@ +# Copyright 2017 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. +# +# Configures an OpenDaylight cluster. +# It creates the akka configuration file for ODL to cluster correctly +# It will not configure clustering if less than 3 nodes +# +# == Function: tripleo::profile::base::neutron::opendaylight::configure_cluster +# +# == Parameters +# +# [*node_name*] +# The short hostname of node +# +# [*odl_api_ips*] Array of IPs per ODL node +# Defaults to empty array +# +define tripleo::profile::base::neutron::opendaylight::configure_cluster( + $node_name, + $odl_api_ips = [], +) { + validate_array($odl_api_ips) + if size($odl_api_ips) > 2 { + $node_string = split($node_name, '-') + $ha_node_index = $node_string[-1] + 1 + $ha_node_ip_str = join($odl_api_ips, ' ') + exec { 'Configure ODL Clustering': + command => "configure_cluster.sh ${ha_node_index} ${ha_node_ip_str}", + path => '/opt/opendaylight/bin/:/usr/sbin:/usr/bin:/sbin:/bin', + creates => '/opt/opendaylight/configuration/initial/akka.conf' + } + } +} + -- cgit 1.2.3-korg