Skip to content

Instantly share code, notes, and snippets.

@jistr
Last active August 29, 2015 14:28
Show Gist options
  • Save jistr/2575b78058fed8be36d9 to your computer and use it in GitHub Desktop.
Save jistr/2575b78058fed8be36d9 to your computer and use it in GitHub Desktop.
TEMPORARY patching of tripleo environment with big switch extensions
#!/bin/bash
set -euxo pipefail
if [ $(id -un) != 'root' ]; then
echo "This needs to be run as root."
exit 1
fi
mkdir bigswitch-patch || true
cd bigswitch-patch
DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd )
if [ ! -e puppet-neutron ]; then
git clone https://github.com/openstack/puppet-neutron || true
pushd puppet-neutron
git fetch https://review.openstack.org/openstack/puppet-neutron refs/changes/86/214686/4 && git checkout FETCH_HEAD
popd
fi
echo "puppet-neutron checked out, inspect it if you wish, then press enter to continue"
read
rpm -q libguestfs-tools || yum -y install libguestfs-tools
sudo -u stack virt-customize -a ../overcloud-full.qcow2 \
--mkdir /usr/share/openstack-puppet/modules/neutron/manifests/plugins/ml2/bigswitch \
--upload puppet-neutron/manifests/plugins/ml2/bigswitch.pp:/usr/share/openstack-puppet/modules/neutron/manifests/plugins/ml2/bigswitch.pp \
--upload puppet-neutron/manifests/plugins/ml2/bigswitch/restproxy.pp:/usr/share/openstack-puppet/modules/neutron/manifests/plugins/ml2/bigswitch/restproxy.pp
#!/bin/bash
set -euxo pipefail
if [ $(id -un) != 'root' ]; then
echo "This needs to be run as root."
exit 1
fi
mkdir bigswitch-patch || true
cd bigswitch-patch
DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd )
if [ ! -e tht-bigswitch.patch ]; then
# OpenStack gerrit won't allow direct patch download it seems
git clone https://github.com/openstack/tripleo-heat-templates || true
pushd tripleo-heat-templates
git fetch https://review.openstack.org/openstack/tripleo-heat-templates refs/changes/42/213142/3 && git format-patch -1 --stdout FETCH_HEAD > ../tht-bigswitch.patch
popd
fi
if [ ! -e tht-mechanism-drivers.patch ]; then
# OpenStack gerrit won't allow direct patch download it seems
git clone https://github.com/openstack/tripleo-heat-templates || true
pushd tripleo-heat-templates
git fetch https://review.openstack.org/openstack/tripleo-heat-templates refs/changes/49/214649/2 && git format-patch -1 --stdout FETCH_HEAD > ../tht-mechanism-drivers.patch
popd
fi
if [ ! -e tht-keystone-notifications.patch ]; then
# gotta fetch a specifically crafted patch due to merge conflicts
curl -o tht-keystone-notifications.patch https://gist.githubusercontent.com/jistr/2575b78058fed8be36d9/raw/4242704fc72a7c34fed1bc1e64d2c230e96c524d/tht-keystone-notifications.patch
fi
echo "Patches downloaded, inspect them if you wish, then press enter to continue"
read
pushd /usr/share/openstack-tripleo-heat-templates
patch -p1 < "$DIR/tht-bigswitch.patch"
patch -p1 < "$DIR/tht-mechanism-drivers.patch"
patch -p1 < "$DIR/tht-keystone-notifications.patch"
popd
resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-bigswitch.yaml
parameters:
ExtraConfig:
neutron_ovs_use_veth: true
parameter_defaults:
NeutronBigswitchRestproxyServers: 192.0.2.100:8000
NeutronBigswitchRestproxyServerAuth: admin:passwd
From 841cc5ab83889b3cdc93ad1cb90cb049aa295bfc Mon Sep 17 00:00:00 2001
From: root <[email protected]>
Date: Tue, 25 Aug 2015 10:31:10 -0400
Subject: [PATCH] TEMPORARY backport of keystone notifications
---
controller.yaml | 10 ++++++++++
overcloud-without-mergepy.yaml | 12 ++++++++++++
puppet/all-nodes-config.yaml | 1 +
puppet/controller-puppet.yaml | 18 ++++++++++++++++++
puppet/hieradata/common.yaml | 2 ++
5 files changed, 43 insertions(+)
diff --git a/controller.yaml b/controller.yaml
index 5e3f43c..3ab6dd5 100644
--- a/controller.yaml
+++ b/controller.yaml
@@ -248,6 +248,16 @@ parameters:
description: Keystone key for signing tokens.
type: string
hidden: true
+ KeystoneNotificationDriver:
+ description: Comma-separated list of Oslo notification drivers used by Keystone
+ default: ['messaging']
+ type: comma_delimited_list
+ KeystoneNotificationFormat:
+ description: The Keystone notification format
+ default: 'basic'
+ type: string
+ constraints:
+ - allowed_values: [ 'basic', 'cadf' ]
MysqlClusterUniquePart:
description: A unique identifier of the MySQL cluster the controller is in.
type: string
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index 58020d8..62ef2df 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -448,6 +448,16 @@ parameters:
description: Keystone key for signing tokens.
type: string
hidden: true
+ KeystoneNotificationDriver:
+ description: Comma-separated list of Oslo notification drivers used by Keystone
+ default: ['messaging']
+ type: comma_delimited_list
+ KeystoneNotificationFormat:
+ description: The Keystone notification format
+ default: 'basic'
+ type: string
+ constraints:
+ - allowed_values: [ 'basic', 'cadf' ]
MysqlInnodbBufferPoolSize:
description: >
Specifies the size of the buffer pool in megabytes. Setting to
@@ -787,6 +797,8 @@ resources:
KeystoneSigningKey: {get_param: KeystoneSigningKey}
KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
+ KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
+ KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
MysqlMaxConnections: {get_param: MysqlMaxConnections}
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
index 060f4c8..2bc519b 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -238,6 +238,7 @@ resources:
heat::rabbit_hosts: *rabbit_nodes_array
neutron::rabbit_hosts: *rabbit_nodes_array
nova::rabbit_hosts: *rabbit_nodes_array
+ keystone::rabbit_hosts: *rabbit_nodes_array
outputs:
config_id:
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml
index 87fcc85..a8e9fa8 100644
--- a/puppet/controller-puppet.yaml
+++ b/puppet/controller-puppet.yaml
@@ -253,6 +253,16 @@ parameters:
description: Keystone key for signing tokens.
type: string
hidden: true
+ KeystoneNotificationDriver:
+ description: Comma-separated list of Oslo notification drivers used by Keystone
+ default: ['messaging']
+ type: comma_delimited_list
+ KeystoneNotificationFormat:
+ description: The Keystone notification format
+ default: 'basic'
+ type: string
+ constraints:
+ - allowed_values: [ 'basic', 'cadf' ]
MysqlClusterUniquePart:
description: A unique identifier of the MySQL cluster the controller is in.
type: string
@@ -697,6 +707,8 @@ resources:
keystone_signing_certificate: {get_param: KeystoneSigningCertificate}
keystone_ssl_certificate: {get_param: KeystoneSSLCertificate}
keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey}
+ keystone_notification_driver: {get_param: KeystoneNotificationDriver}
+ keystone_notification_format: {get_param: KeystoneNotificationFormat}
keystone_dsn:
list_join:
- ''
@@ -1021,6 +1033,12 @@ resources:
keystone::public_bind_host: {get_input: keystone_public_api_network}
keystone::admin_bind_host: {get_input: keystone_admin_api_network}
keystone::debug: {get_input: debug}
+ keystone::rabbit_userid: {get_input: rabbit_username}
+ keystone::rabbit_password: {get_input: rabbit_password}
+ keystone::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
+ keystone::rabbit_port: {get_input: rabbit_client_port}
+ keystone::notification_driver: {get_input: keystone_notification_driver}
+ keystone::notification_format: {get_input: keystone_notification_format}
# MongoDB
mongodb::server::bind_ip: {get_input: mongo_db_network}
# MySQL
diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml
index 272a668..23e2ae1 100644
--- a/puppet/hieradata/common.yaml
+++ b/puppet/hieradata/common.yaml
@@ -27,3 +27,5 @@ sysctl_settings:
value: 5
net.ipv4.tcp_keepalive_time:
value: 5
+
+keystone::rabbit_heartbeat_timeout_threshold: 60
--
1.8.3.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment