From 591238d1cc4f9f34326555ca4ba8d45862223f12 Mon Sep 17 00:00:00 2001 From: michaelhenkel Date: Fri, 29 Jul 2016 16:35:05 +0200 Subject: Added Contrail Composable Services changed parameter order for tripleo heat templates see https://review.openstack.org/#/c/346799/ Implements: blueprint contrail-services Change-Id: I8de63b6e21f8fdf3c2fd13bf5475cce4a85311d6 --- manifests/network/contrail/analytics.pp | 236 ++++++++++++++++++++++++++++++++ manifests/network/contrail/config.pp | 207 ++++++++++++++++++++++++++++ manifests/network/contrail/control.pp | 154 +++++++++++++++++++++ manifests/network/contrail/database.pp | 52 +++++++ manifests/network/contrail/webui.pp | 102 ++++++++++++++ 5 files changed, 751 insertions(+) create mode 100644 manifests/network/contrail/analytics.pp create mode 100644 manifests/network/contrail/config.pp create mode 100644 manifests/network/contrail/control.pp create mode 100644 manifests/network/contrail/database.pp create mode 100644 manifests/network/contrail/webui.pp (limited to 'manifests/network') diff --git a/manifests/network/contrail/analytics.pp b/manifests/network/contrail/analytics.pp new file mode 100644 index 0000000..57fd815 --- /dev/null +++ b/manifests/network/contrail/analytics.pp @@ -0,0 +1,236 @@ +# +# Copyright (C) 2015 Juniper Networks +# +# 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::network::contrail::analytics +# +# Configure Contrail Analytics services +# +# == Parameters: +# +# [*admin_password*] +# (required) admin password +# String value. +# +# [*admin_tenant_name*] +# (required) admin tenant name. +# String value. +# +# [*admin_token*] +# (required) admin token +# String value. +# +# [*admin_user*] +# (required) admin user name. +# String value. +# +# [*auth_host*] +# (required) keystone server ip address +# String (IPv4) value. +# +# [*cassandra_server_list*] +# (required) List IPs+port of Cassandra servers +# Array of strings value. +# +# [*disc_server_ip*] +# (required) IPv4 address of discovery server. +# String (IPv4) value. +# +# [*host_ip*] +# (required) host IP address of Analytics +# String (IPv4) value. +# +# [*kafka_broker_list*] +# (required) List IPs+port of kafka servers +# Array of strings value. +# +# [*zk_server_ip*] +# (required) List IPs+port of Zookeeper servers +# Array of strings value. +# +# [*auth_port*] +# (required) keystone port. +# Integer value. +# Defaults to 35357. +# +# [*auth_protocol*] +# (required) authentication protocol. +# String value. +# Defaults to http. +# +# [*collector_http_server_port*] +# (required) Collector http port +# Integer value. +# Defaults to 8089 +# +# [*collector_sandesh_port*] +# (required) Collector sandesh port +# Integer value. +# Defaults to 8086 +# +# [*disc_server_port*] +# (required) port Discovery server listens on. +# Integer value. +# Defaults to 5998 +# +# [*http_server_port*] +# (required) Analytics http port +# Integer value. +# Defaults to 8090 +# +# [*insecure*] +# (required) insecure mode. +# Boolean value. +# Defaults to false +# +# [*redis_server*] +# (required) IPv4 address of redis server. +# String (IPv4) value. +# Defaults to '127.0.0.1'. +# +# [*redis_server_port*] +# (required) port Redis server listens on. +# Integer value. +# Defaults to 6379 +# +# [*rest_api_ip*] +# (required) IP address Analytics rest interface listens on +# String (IPv4) value. +# Defaults to '0.0.0.0' +# +# [*rest_api_port*] +# (required) Analytics rest port +# Integer value. +# Defaults to 8081 +# +# [*memcached_servers*] +# (optional) IPv4 address of memcached servers +# String (IPv4) value + port +# Defaults to '127.0.0.1:12111' +# +class tripleo::network::contrail::analytics( + $admin_password = hiera('contrail::admin_password'), + $admin_tenant_name = hiera('contrail::admin_tenant_name'), + $admin_token = hiera('contrail::admin_token'), + $admin_user = hiera('contrail::admin_user'), + $auth_host = hiera('contrail::auth_host'), + $cassandra_server_list = hiera('contrail::cassandra_server_list'), + $disc_server_ip = hiera('contrail::disc_server_ip'), + $host_ip, + $kafka_broker_list = hiera('contrail::kafka_broker_list'), + $zk_server_ip = hiera('contrail::zk_server_ip'), + $auth_port = hiera('contrail::auth_port'), + $auth_protocol = hiera('contrail::auth_protocol'), + $collector_http_server_port = 8089, + $collector_sandesh_port = 8086, + $disc_server_port = hiera('contrail::disc_server_port'), + $http_server_port = 8090, + $insecure = hiera('contrail::insecure'), + $redis_server = '127.0.0.1', + $redis_server_port = 6379, + $rest_api_ip = '0.0.0.0', + $rest_api_port = 8081, + $memcached_servers = hiera('contrail::memcached_server'), +) +{ + class {'::contrail::keystone': + keystone_config => { + 'KEYSTONE' => { + 'admin_password' => $admin_password, + 'admin_tenant_name' => $admin_tenant_name, + 'admin_token' => $admin_token, + 'admin_user' => $admin_user, + 'auth_host' => $auth_host, + 'auth_port' => $auth_port, + 'auth_protocol' => $auth_protocol, + 'insecure' => $insecure, + 'memcached_servers' => $memcached_servers, + }, + }, + } -> + class {'::contrail::analytics': + analytics_api_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'host_ip' => $host_ip, + 'http_server_port' => $http_server_port, + 'redis_server' => $redis_server, + 'rest_api_ip' => $rest_api_ip, + 'rest_api_port' => $rest_api_port, + }, + 'DISCOVERY' => { + 'disc_server_ip' => $disc_server_ip, + 'disc_server_port' => $disc_server_port, + }, + 'REDIS' => { + 'redis_server_port' => $redis_server_port, + 'redis_query_port' => $redis_server_port, + 'server' => $redis_server, + }, + }, + collector_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'disc_server_ip' => $disc_server_ip, + 'hostip' => $host_ip, + 'http_server_port' => $collector_http_server_port, + 'kafka_broker_list' => $kafka_broker_list, + 'zookeeper_server_list' => $zk_server_ip, + }, + 'COLLECTOR' => { + 'port' => $collector_sandesh_port, + }, + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + 'REDIS' => { + 'port' => $redis_server_port, + 'server' => $redis_server, + }, + }, + query_engine_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'hostip' => $host_ip, + }, + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + 'REDIS' => { + 'port' => $redis_server_port, + 'server' => $redis_server, + }, + }, + snmp_collector_config => { + 'DEFAULTS' => { + 'zk_server_ip' => $zk_server_ip, + }, + 'DISCOVERY' => { + 'disc_server_ip' => $disc_server_ip, + 'disc_server_port' => $disc_server_port, + }, + }, + topology_config => { + 'DEFAULTS' => { + 'zk_server_ip' => $zk_server_ip, + }, + 'DISCOVERY' => { + 'disc_server_ip' => $disc_server_ip, + 'disc_server_port' => $disc_server_port, + }, + }, + } +} diff --git a/manifests/network/contrail/config.pp b/manifests/network/contrail/config.pp new file mode 100644 index 0000000..9a9e9bd --- /dev/null +++ b/manifests/network/contrail/config.pp @@ -0,0 +1,207 @@ +# +# Copyright (C) 2015 Juniper Networks +# +# 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::network::contrail::config +# +# Configure Contrail Config services +# +# == Parameters: +# +# [*admin_password*] +# (required) admin password +# String value. +# +# [*admin_tenant_name*] +# (required) admin tenant name. +# String value. +# +# [*admin_token*] +# (required) admin token +# String value. +# +# [*admin_user*] +# (required) admin user name. +# String value. +# +# [*auth_host*] +# (required) keystone server ip address +# String (IPv4) value. +# +# [*cassandra_server_list*] +# (required) List IPs+port of Cassandra servers +# Array of strings value. +# +# [*disc_server_ip*] +# (required) IPv4 address of discovery server. +# String (IPv4) value. +# +# [*ifmap_password*] +# (required) ifmap password +# String value. +# +# [*ifmap_server_ip*] +# (required) ifmap server ip address. +# String value. +# +# [*ifmap_username*] +# (required) ifmap username +# String value. +# +# [*rabbit_server*] +# (required) IPv4 address of rabbit server. +# String (IPv4) value. +# +# [*zk_server_ip*] +# (required) List IPs+port of Zookeeper servers +# Array of strings value. +# +# [*auth*] +# (required) Authentication method. +# Defaults to 'keystone'. +# +# [*auth_port*] +# (required) keystone port. +# Defaults to 35357. +# +# [*auth_protocol*] +# (required) authentication protocol. +# Defaults to http. +# +# [*insecure*] +# (required) insecure mode. +# Defaults to false +# +# [*listen_ip_address*] +# (required) IP address to listen on. +# String (IPv4) value. +# Defaults to '0.0.0.0'. +# +# [*listen_port*] +# (required) Listen port for config-api +# Defaults to 8082. +# +# [*memcached_servers*] +# (optional) IPv4 address of memcached servers +# String (IPv4) value + port +# Defaults to '127.0.0.1:12111' +# +# [*multi_tenancy*] +# (required) Defines if mutli-tenancy is enabled. +# Defaults to 'true'. +# +# [*redis_server*] +# (required) IPv4 address of redis server. +# String (IPv4) value. +# Defaults to '127.0.0.1'. +# +class tripleo::network::contrail::config( + $admin_password = hiera('contrail::admin_password'), + $admin_tenant_name = hiera('contrail::admin_tenant_name'), + $admin_token = hiera('contrail::admin_token'), + $admin_user = hiera('contrail::admin_user'), + $auth_host = hiera('contrail::auth_host'), + $cassandra_server_list = hiera('contrail::cassandra_server_list'), + $disc_server_ip = hiera('contrail::disc_server_ip'), + $ifmap_password, + $ifmap_server_ip, + $ifmap_username, + $rabbit_server, + $zk_server_ip = hiera('contrail::zk_server_ip'), + $auth = hiera('contrail::auth'), + $auth_port = hiera('contrail::auth_port'), + $auth_protocol = hiera('contrail::auth_protocol'), + $insecure = hiera('contrail::insecure'), + $listen_ip_address = '0.0.0.0', + $listen_port = 8082, + $memcached_servers = hiera('contrail::memcached_server'), + $multi_tenancy = hiera('contrail::multi_tenancy'), + $redis_server = '127.0.0.1', +) +{ + validate_ip_address($listen_ip_address) + validate_ip_address($disc_server_ip) + validate_ip_address($ifmap_server_ip) + class {'::contrail::keystone': + keystone_config => { + 'KEYSTONE' => { + 'admin_password' => $admin_password, + 'admin_tenant_name' => $admin_tenant_name, + 'admin_token' => $admin_token, + 'admin_user' => $admin_user, + 'auth_host' => $auth_host, + 'auth_port' => $auth_port, + 'auth_protocol' => $auth_protocol, + 'insecure' => $insecure, + 'memcached_servers' => $memcached_servers, + }, + }, + } -> + class {'::contrail::config': + api_config => { + 'DEFAULTS' => { + 'auth' => $auth, + 'cassandra_server_list' => $cassandra_server_list, + 'disc_server_ip' => $disc_server_ip, + 'ifmap_password' => $ifmap_password, + 'ifmap_server_ip' => $ifmap_server_ip, + 'ifmap_username' => $ifmap_username, + 'listen_ip_addr' => $listen_ip_address, + 'listen_port' => $listen_port, + 'multi_tenancy' => $multi_tenancy, + 'rabbit_server' => $rabbit_server, + 'redis_server' => $redis_server, + 'zk_server_ip' => $zk_server_ip, + }, + }, + device_manager_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'disc_server_ip' => $disc_server_ip, + 'rabbit_server' => $rabbit_server, + 'redis_server' => $redis_server, + 'zk_server_ip' => $zk_server_ip, + }, + }, + schema_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'disc_server_ip' => $disc_server_ip, + 'ifmap_password' => $ifmap_password, + 'ifmap_server_ip' => $ifmap_server_ip, + 'ifmap_username' => $ifmap_username, + 'rabbit_server' => $rabbit_server, + 'redis_server' => $redis_server, + 'zk_server_ip' => $zk_server_ip, + }, + }, + discovery_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'zk_server_ip' => $zk_server_ip, + }, + }, + svc_monitor_config => { + 'DEFAULTS' => { + 'cassandra_server_list' => $cassandra_server_list, + 'disc_server_ip' => $disc_server_ip, + 'ifmap_password' => $ifmap_password, + 'ifmap_server_ip' => $ifmap_server_ip, + 'ifmap_username' => $ifmap_username, + 'rabbit_server' => $rabbit_server, + 'redis_server' => $redis_server, + }, + }, + } +} diff --git a/manifests/network/contrail/control.pp b/manifests/network/contrail/control.pp new file mode 100644 index 0000000..8e1f4b8 --- /dev/null +++ b/manifests/network/contrail/control.pp @@ -0,0 +1,154 @@ +# +# Copyright (C) 2015 Juniper Networks +# +# 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::network::contrail::control +# +# Configure Contrail Control services +# +# == Parameters: +# +# [*admin_password*] +# (required) admin password +# String value. +# +# [*admin_tenant_name*] +# (required) admin tenant name. +# String value. +# +# [*admin_token*] +# (required) admin token +# String value. +# +# [*admin_user*] +# (required) admin user name. +# String value. +# +# [*auth_host*] +# (required) keystone server ip address +# String (IPv4) value. +# +# [*disc_server_ip*] +# (required) IPv4 address of discovery server. +# String (IPv4) value. +# +# [*host_ip*] +# (required) host IP address of Control +# String (IPv4) value. +# +# [*ifmap_password*] +# (required) ifmap password +# String value. +# +# [*ifmap_server_ip*] +# (required) ifmap server ip address. +# String value. +# +# [*ifmap_username*] +# (required) ifmap username +# String value. +# +# [*auth_port*] +# (required) keystone port. +# Defaults to 35357. +# +# [*auth_protocol*] +# (required) authentication protocol. +# Defaults to http. +# +# [*disc_server_port*] +# (required) port Discovery server listens on. +# Integer value. +# Defaults to 5998 +# +# [*insecure*] +# (required) insecure mode. +# Defaults to false +# +# [*memcached_servers*] +# (optional) IPv4 address of memcached servers +# String (IPv4) value + port +# Defaults to '127.0.0.1:12111' +# +# [*multi_tenancy*] +# (required) Defines if mutli-tenancy is enabled. +# Defaults to 'true'. +# +class tripleo::network::contrail::control( + $admin_tenant_name = hiera('contrail::admin_tenant_name'), + $admin_token = hiera('contrail::admin_token'), + $admin_password = hiera('contrail::admin_password'), + $admin_user = hiera('contrail::admin_user'), + $auth_host = hiera('contrail::auth_host'), + $disc_server_ip = hiera('contrail::disc_server_ip'), + $host_ip, + $ifmap_password, + $ifmap_username, + $auth_port = hiera('contrail::auth_port'), + $auth_protocol = hiera('contrail::auth_protocol'), + $disc_server_port = hiera('contrail::disc_server_port'), + $insecure = hiera('contrail::insecure'), + $memcached_servers = hiera('contrail::memcached_server'), +) +{ + class {'::contrail::keystone': + keystone_config => { + 'KEYSTONE' => { + 'admin_tenant_name' => $admin_tenant_name, + 'admin_token' => $admin_token, + 'admin_password' => $admin_password, + 'admin_user' => $admin_user, + 'auth_host' => $auth_host, + 'auth_port' => $auth_port, + 'auth_protocol' => $auth_protocol, + 'insecure' => $insecure, + 'memcached_servers' => $memcached_servers, + }, + }, + } -> + class {'::contrail::control': + control_config => { + 'DEFAULTS' => { + 'hostip' => $host_ip, + }, + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + 'IFMAP' => { + 'password' => $ifmap_password, + 'user' => $ifmap_username, + }, + }, + dns_config => { + 'DEFAULTS' => { + 'hostip' => $host_ip, + }, + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + 'IFMAP' => { + 'password' => $ifmap_password, + 'user' => $ifmap_username, + } + }, + control_nodemgr_config => { + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + }, + } +} diff --git a/manifests/network/contrail/database.pp b/manifests/network/contrail/database.pp new file mode 100644 index 0000000..5fdfb97 --- /dev/null +++ b/manifests/network/contrail/database.pp @@ -0,0 +1,52 @@ +# +# Copyright (C) 2015 Juniper Networks +# +# 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::network::contrail::control +# +# Configure Contrail Control services +# +# == Parameters: +# +# [*disc_server_ip*] +# (required) IPv4 address of discovery server. +# String (IPv4) value. +# +# [*host_ip*] +# (required) host IP address of Database node +# String (IPv4) value. +# +# [*disc_server_port*] +# (required) port Discovery server listens on. +# Integer value. +# Defaults to 5998 +# +class tripleo::network::contrail::database( + $disc_server_ip = hiera('contrail::disc_server_ip'), + $host_ip, + $disc_server_port = hiera('contrail::disc_server_port'), +) +{ + class {'::contrail::database': + database_nodemgr_config => { + 'DEFAULTS' => { + 'hostip' => $host_ip, + }, + 'DISCOVERY' => { + 'port' => $disc_server_port, + 'server' => $disc_server_ip, + }, + }, + } +} diff --git a/manifests/network/contrail/webui.pp b/manifests/network/contrail/webui.pp new file mode 100644 index 0000000..f289923 --- /dev/null +++ b/manifests/network/contrail/webui.pp @@ -0,0 +1,102 @@ +# +# Copyright (C) 2015 Juniper Networks +# +# 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::network::contrail::webui +# +# Configure Contrail Webui services +# +# == Parameters: +# +# [*admin_password*] +# (required) admin password +# String value. +# +# [*admin_tenant_name*] +# (required) admin tenant name. +# String value. +# +# [*admin_token*] +# (required) admin token +# String value. +# +# [*admin_user*] +# (required) admin user name. +# String value. +# +# [*auth_host*] +# (required) keystone server ip address +# String (IPv4) value. +# +# [*cassandra_server_list*] +# (required) List IPs+port of Cassandra servers +# Array of strings value. +# +# [*contrail_analytics_vip*] +# (required) VIP of Contrail Analytics +# String (IPv4) value. +# +# [*contrail_config_vip*] +# (required) VIP of Contrail Config +# String (IPv4) value. +# +# [*neutron_vip*] +# (required) VIP of Neutron +# String (IPv4) value. +# +# [*contrail_webui_http_port*] +# (required) Webui HTTP Port +# Integer value. +# Defaults to 8080 +# +# [*contrail_webui_https_port*] +# (required) Webui HTTPS Port +# Integer value. +# Defaults to 8143 +# +# [*redis_ip*] +# (required) IP of Redis +# String (IPv4) value. +# Defaults to '127.0.0.1' +# +class tripleo::network::contrail::webui( + $admin_password = hiera('contrail::admin_password'), + $admin_tenant_name = hiera('contrail::admin_tenant_name'), + $admin_token = hiera('contrail::admin_token'), + $admin_user = hiera('contrail::admin_user'), + $auth_host = hiera('contrail::auth_host'), + $cassandra_server_list = hiera('contrail::cassandra_server_list'), + $contrail_analytics_vip, + $contrail_config_vip, + $neutron_vip, + $contrail_webui_http_port = 8080, + $contrail_webui_https_port = 8143, + $redis_ip = '127.0.0.1', +) +{ + class {'::contrail::webui': + openstack_vip => $auth_host, + contrail_config_vip => $contrail_config_vip, + contrail_analytics_vip => $contrail_analytics_vip, + neutron_vip => $neutron_vip, + cassandra_ip => $cassandra_server_list, + redis_ip => $redis_ip, + contrail_webui_http_port => $contrail_webui_http_port, + contrail_webui_https_port => $contrail_webui_https_port, + admin_user => $admin_user, + admin_password => $admin_password, + admin_token => $admin_token, + admin_tenant_name => $admin_tenant_name, + } +} -- cgit 1.2.3-korg