diff options
Diffstat (limited to 'manifests/profile/base')
-rw-r--r-- | manifests/profile/base/kernel.pp | 28 | ||||
-rw-r--r-- | manifests/profile/base/neutron/opendaylight/configure_cluster.pp | 45 | ||||
-rw-r--r-- | manifests/profile/base/neutron/opendaylight/create_cluster.pp | 43 | ||||
-rw-r--r-- | manifests/profile/base/neutron/plugins/ml2.pp | 4 | ||||
-rw-r--r-- | manifests/profile/base/neutron/plugins/ml2/nuage.pp | 31 | ||||
-rw-r--r-- | manifests/profile/base/ui.pp | 4 |
6 files changed, 146 insertions, 9 deletions
diff --git a/manifests/profile/base/kernel.pp b/manifests/profile/base/kernel.pp index df13a98..48caf37 100644 --- a/manifests/profile/base/kernel.pp +++ b/manifests/profile/base/kernel.pp @@ -17,14 +17,32 @@ # # Load and configure Kernel modules. # -class tripleo::profile::base::kernel { +# === Parameters +# +# [*module_list*] +# (Optional) List of kernel modules to load. +# Defaults to hiera('kernel_modules') +# +# [*sysctl_settings*] +# (Optional) List of sysctl settings to load. +# Defaults to hiera('sysctl_settings') +# +class tripleo::profile::base::kernel ( + $module_list = hiera('kernel_modules', undef), + $sysctl_settings = hiera('sysctl_settings', undef), +) { - if hiera('kernel_modules', undef) { - create_resources(kmod::load, hiera('kernel_modules'), { }) + if $module_list { + create_resources(kmod::load, $module_list, { }) } - if hiera('sysctl_settings', undef) { - create_resources(sysctl::value, hiera('sysctl_settings'), { }) + if $sysctl_settings { + create_resources(sysctl::value, $sysctl_settings, { }) } Exec <| tag == 'kmod::load' |> -> Sysctl <| |> + # RHEL 7.4+ workaround where this functionality is built into the + # kernel instead of being built as a module. + # That way, we can support both 7.3 and 7.4 RHEL versions. + # https://bugzilla.redhat.com/show_bug.cgi?id=1387537 + Exec <| title == 'modprobe nf_conntrack_proto_sctp' |> { returns => [0,1] } } 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' + } + } +} + diff --git a/manifests/profile/base/neutron/opendaylight/create_cluster.pp b/manifests/profile/base/neutron/opendaylight/create_cluster.pp new file mode 100644 index 0000000..c3e4f7f --- /dev/null +++ b/manifests/profile/base/neutron/opendaylight/create_cluster.pp @@ -0,0 +1,43 @@ +# 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 +# +# == Class: tripleo::profile::base::neutron::opendaylight::create_cluster +# +# OpenDaylight class only used for creating clusters with container deployments +# +# === Parameters +# +# [*odl_api_ips*] +# (Optional) List of OpenStack Controller IPs for ODL API +# Defaults to hiera('opendaylight_api_node_ips') +# +# [*node_name*] +# (Optional) The short hostname of node +# Defaults to hiera('bootstack_nodeid') +# +class tripleo::profile::base::neutron::opendaylight::create_cluster ( + $odl_api_ips = hiera('opendaylight_api_node_ips'), + $node_name = hiera('bootstack_nodeid') +) { + + tripleo::profile::base::neutron::opendaylight::configure_cluster {'ODL cluster': + node_name => $node_name, + odl_api_ips => $odl_api_ips, + } + +} diff --git a/manifests/profile/base/neutron/plugins/ml2.pp b/manifests/profile/base/neutron/plugins/ml2.pp index f7a2935..1f440fa 100644 --- a/manifests/profile/base/neutron/plugins/ml2.pp +++ b/manifests/profile/base/neutron/plugins/ml2.pp @@ -85,5 +85,9 @@ class tripleo::profile::base::neutron::plugins::ml2 ( if 'vpp' in $mechanism_drivers { include ::tripleo::profile::base::neutron::plugins::ml2::vpp } + + if 'nuage' in $mechanism_drivers { + include ::tripleo::profile::base::neutron::plugins::ml2::nuage + } } } diff --git a/manifests/profile/base/neutron/plugins/ml2/nuage.pp b/manifests/profile/base/neutron/plugins/ml2/nuage.pp new file mode 100644 index 0000000..e9608d0 --- /dev/null +++ b/manifests/profile/base/neutron/plugins/ml2/nuage.pp @@ -0,0 +1,31 @@ +# Copyright 2017 Nuage Networks from Nokia 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::neutron::plugins::ml2::nuage +# +# Nuage Neutron ML2 profile for tripleo +# +# [*step*] +# (Optional) The current step in deployment. See tripleo-heat-templates +# for more details. +# Defaults to hiera('step') +# +class tripleo::profile::base::neutron::plugins::ml2::nuage ( + $step = hiera('step'), +) { + + if $step >= 4 { + include ::neutron::plugins::ml2::nuage + } +} diff --git a/manifests/profile/base/ui.pp b/manifests/profile/base/ui.pp index 681496a..710c210 100644 --- a/manifests/profile/base/ui.pp +++ b/manifests/profile/base/ui.pp @@ -17,10 +17,6 @@ # UI profile for tripleo # class tripleo::profile::base::ui () { - package {'openstack-tripleo-ui': } - - include ::apache - include ::tripleo::ui } |