From b450ff75888f7801094ca88957a237f33f5e85f1 Mon Sep 17 00:00:00 2001
From: tzumainn <tzumainn@redhat.com>
Date: Fri, 13 Oct 2017 05:21:26 -0400
Subject: Allow the specification of server group policies when provisioning
 openstack (#747)

* Allow for the specifying of server policies during OpenStack provisioning

* documentation for openstack server group policies

* add doc link detailing allowed policies

* changed default to anti-affinity
---
 playbooks/provisioning/openstack/README.md                | 15 +++++++++++++++
 .../openstack/sample-inventory/group_vars/all.yml         |  5 +++++
 playbooks/provisioning/openstack/stack_params.yaml        |  2 ++
 3 files changed, 22 insertions(+)

(limited to 'playbooks/provisioning')

diff --git a/playbooks/provisioning/openstack/README.md b/playbooks/provisioning/openstack/README.md
index fe87f68f4..370f582b2 100644
--- a/playbooks/provisioning/openstack/README.md
+++ b/playbooks/provisioning/openstack/README.md
@@ -308,6 +308,21 @@ In order to set a custom entrypoint, update `openshift_master_cluster_public_hos
 Note than an empty hostname does not work, so if your domain is `openshift.example.com`,
 you cannot set this value to simply `openshift.example.com`.
 
+
+### Specifying server group policies
+
+You can specify server group policies for infra and master nodes using the following
+parameters in `inventory/group_vars/all.yml`:
+
+    ## Specify server group policies for master and infra nodes. Nova must be configured to
+    ## enable these policies. 'anti-affinity' will ensure that each VM is launched on a
+    ## different physical host.
+    #openstack_master_server_group_policies: [anti-affinity]
+    #openstack_infra_server_group_policies: [anti-affinity]
+
+The [Heat template documentation](https://docs.openstack.org/heat/pike/template_guide/openstack.html#OS::Nova::ServerGroup)
+lists allowed policy values.
+
 ### Creating and using a Cinder volume for the OpenShift registry
 
 You can optionally have the playbooks create a Cinder volume and set
diff --git a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
index 12f64f401..fa1fb6c64 100644
--- a/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
+++ b/playbooks/provisioning/openstack/sample-inventory/group_vars/all.yml
@@ -62,6 +62,11 @@ openstack_default_flavor: "m1.medium"
 #docker_lb_volume_size: "5"
 docker_volume_size: "15"
 
+## Specify server group policies for master and infra nodes. Nova must be configured to
+## enable these policies. 'anti-affinity' will ensure that each VM is launched on a
+## different physical host.
+#openstack_master_server_group_policies: [anti-affinity]
+#openstack_infra_server_group_policies: [anti-affinity]
 
 ## Create a Cinder volume and use it for the OpenShift registry.
 ## NOTE: the openstack credentials and hosted registry options must be set in OSEv3.yml!
diff --git a/playbooks/provisioning/openstack/stack_params.yaml b/playbooks/provisioning/openstack/stack_params.yaml
index 484c06889..a4da31bfe 100644
--- a/playbooks/provisioning/openstack/stack_params.yaml
+++ b/playbooks/provisioning/openstack/stack_params.yaml
@@ -36,6 +36,8 @@ num_masters: "{{ openstack_num_masters }}"
 num_nodes: "{{ openstack_num_nodes }}"
 num_infra: "{{ openstack_num_infra }}"
 num_dns: "{{ openstack_num_dns | default(1) }}"
+master_server_group_policies: "{{ openstack_master_server_group_policies | default([]) | to_yaml }}"
+infra_server_group_policies: "{{ openstack_infra_server_group_policies | default([]) | to_yaml }}"
 master_volume_size: "{{ docker_master_volume_size | default(docker_volume_size) }}"
 infra_volume_size: "{{ docker_infra_volume_size | default(docker_volume_size) }}"
 node_volume_size: "{{ docker_node_volume_size | default(docker_volume_size) }}"
-- 
cgit v1.2.3