From faff29d66d2b18ac4901f1cea1ababf46c8b7e64 Mon Sep 17 00:00:00 2001
From: Sam Yaple <sam@yaple.net>
Date: Tue, 18 Aug 2015 14:03:44 +0000
Subject: [PATCH] Move lots of global.yml options

This moves the remaining global.yml options into the all.yml file

Change-Id: I9795b924e3e1882d20ba8f16ef3c5fe5c0193ef3
Partially-Implements: blueprint update-configs
---
 ansible/group_vars/all.yml | 101 ++++++++++++++++++++++++++++++------
 etc/kolla/globals.yml      | 103 ++++++++++++++++++-------------------
 2 files changed, 134 insertions(+), 70 deletions(-)

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 0d0100d8a2..1c09a33830 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1,7 +1,5 @@
 ---
-# The options in this file can be overridden in 'globals.yml', but typically
-# shouldn't be modified. A comment describing why the option exists should be
-# included before each option.
+# The options in this file can be overridden in 'globals.yml'
 
 # Ansible Docker module bug. This can be removed when Ansible 2.0 arrives
 # https://github.com/ansible/ansible-modules-core/issues/1227
@@ -19,10 +17,57 @@ node_templates_directory: "/usr/share/kolla/templates"
 # The directory to store the config files on the destination node
 node_config_directory: "/opt/kolla/config"
 
-# All services have ports that need to be referenced on a global scale between
-# the different services. This prevents setting the ports in the defaults for
-# each role.
+###################
+# Kolla options
+###################
+# Valid options are [ CONFIG_EXTERNAL_COPY_ONCE, CONFIG_EXTERNAL_COPY_ALWAYS ]
+config_strategy: "CONFIG_EXTERNAL_COPY_ONCE"
 
+# Valid options are [ centos, fedora, oraclelinux, ubuntu ]
+kolla_base_distro: "centos"
+# Valid options are [ binary, source ]
+kolla_install_type: "binary"
+
+# Value set in the public_url endpoint in Keystone
+kolla_external_address: "{{ kolla_internal_address }}"
+
+
+####################
+# Database options
+####################
+database_address: "{{ kolla_internal_address }}"
+database_user: "root"
+
+
+####################
+# Docker options
+####################
+docker_registry:
+docker_namespace: "kollaglue"
+docker_registry_username:
+docker_insecure_registry: "False"
+
+# Valid options are [ missing, always ]
+docker_pull_policy: "always"
+
+# Valid options are [ no, on-failure, always ]
+docker_restart_policy: "always"
+
+# '0' means unlimited retries
+docker_restart_policy_retry: "10"
+
+
+####################
+# Networking options
+####################
+api_interface: "{{ network_interface }}"
+storage_interface: "{{ network_interface }}"
+tunnel_interface: "{{ network_interface }}"
+
+# Valid options are [ openvswitch, linuxbridge ]
+neutron_plugin_agent: "openvswitch"
+
+# The default ports used by each service.
 mariadb_port: "3306"
 mariadb_wsrep_port: "4567"
 mariadb_ist_port: "4568"
@@ -47,18 +92,17 @@ neutron_server_port: "9696"
 
 cinder_api_port: "8776"
 
-# These roles are required for Kolla to be operation, however a savvy deployer
-# could disable some of these required roles and run thier own services.
-enable_glance: "yes"
-enable_haproxy: "yes"
-enable_keystone: "yes"
-enable_mariadb: "yes"
-enable_neutron: "yes"
-enable_nova: "yes"
-enable_rabbitmq: "yes"
 
+####################
+# Openstack options
+####################
+openstack_release: "latest"
+openstack_logging_verbose: "True"
+openstack_logging_debug: "False"
 
-# Openstack authentication strings. You should only need to adjust these if you
+openstack_region_name: "RegionOne"
+
+# Openstack authentication string. You should only need to override these if you
 # are changing the admin tenant/project or user.
 openstack_auth:
     auth_url: "http://{{ kolla_internal_address }}:{{ keystone_admin_port }}"
@@ -73,3 +117,28 @@ openstack_auth_v2:
     username: "admin"
     password: "{{ keystone_admin_password }}"
     project_name: "admin"
+
+# These roles are required for Kolla to be operation, however a savvy deployer
+# could disable some of these required roles and run thier own services.
+enable_glance: "yes"
+enable_haproxy: "yes"
+enable_keystone: "yes"
+enable_mariadb: "yes"
+enable_neutron: "yes"
+enable_nova: "yes"
+enable_rabbitmq: "yes"
+
+# Additional option OpenStack services are specified here
+enable_cinder: "no"
+
+
+####################
+# RabbitMQ options
+####################
+rabbitmq_user: "openstack"
+
+
+#################################
+# Cinder - Block Storage options
+#################################
+cinder_volume_driver: "lvm"
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index d31a1b6176..47467f3b26 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -1,45 +1,36 @@
 ---
-# Please specify all passwords/secrets in the "/etc/kolla/passwords.yml"
+# You can use this file to override _any_ variable throughout Kolla.
+# Additional options can be found in the 'kolla/group_vars/all.yml' file.
 
 ###################
 # Kolla options
 ###################
-config_strategy: "CONFIG_EXTERNAL_COPY_ONCE"
+# Valid options are [ CONFIG_EXTERNAL_COPY_ONCE, CONFIG_EXTERNAL_COPY_ALWAYS ]
+#config_strategy: "CONFIG_EXTERNAL_COPY_ONCE"
 
-kolla_base_distro: "centos"
-kolla_install_type: "binary"
+# Valid options are [ centos, fedora, oraclelinux, ubuntu ]
+#kolla_base_distro: "centos"
 
-# The Public address used to communicate with Openstack
-# This must be set, but it can be an private ip. It can also be the same as the
-# internal address.
-kolla_external_address: "openstack.example.com"
+# Valid options are [ binary, source ]
+#kolla_install_type: "binary"
+
+# This should be a VIP, an unused IP on your network that will float between
+# the hosts running keepalived for high-availibility. When running an All-In-One
+# without haproxy and keepalived, this should be the first IP on your
+# 'network_interface' as set in the Networking section below.
 kolla_internal_address: "10.10.10.254"
 
-
-####################
-# Database options
-####################
-database_address: "{{ kolla_internal_address }}"
-database_user: "root"
+# The Public address used to communicate with Openstack as set in the public_url
+# for the endpoints that will be created. It defaults to kolla_internal_address
+# but can be overridden in your globals.yml to a public address. It is up to the
+# deployer to ensure that that public address maps to the environment correctly.
+# It is recommended to use a DNS name as well, but not required.
+#kolla_external_address: "{{ kolla_internal_address }}"
 
 
 ####################
 # Docker options
 ####################
-docker_registry:
-docker_namespace: "kollaglue"
-docker_registry_username:
-docker_insecure_registry: "False"
-
-# Valid options are [ missing, always ]
-docker_pull_policy: "always"
-
-# Valid options are [ no, on-failure, always ]
-docker_restart_policy: "always"
-
-# '0' means unlimited retries
-docker_restart_policy_retry: "10"
-
 ### Example: Private repository with authentication
 #
 # docker_registry: "172.16.0.10:5000"
@@ -48,41 +39,45 @@ docker_restart_policy_retry: "10"
 # docker_registry_password: "correcthorsebatterystaple"
 # docker_insecure_registry: "False"
 
+# The default behaviour when running the playbooks is to pull the latest image
+# available when running the playbooks. If a newer image is found, it will pull
+# that new image and recreate the containers. If this is not the behaviour you
+# want, this should be set to 'missing'
+# Valid options are [ always, missing ]
+#docker_pull_policy: "always"
+
 
 ####################
 # Networking options
 ####################
-# The interface to use for various services types
+# This interface is what all your api services will be bound to by default.
+# Additionally, all vxlan/tunnel and storage network traffic will go over this
+# interface by default. This interface must contain an IPv4 address.
 network_interface: "eth0"
+
+# These can be adjusted for even more customization. The default is the same as
+# the 'network_interface'. These interfaces must container an IPv4 address.
+#api_interface: "{{ network_interface }}"
+#storage_interface: "{{ network_interface }}"
+#tunnel_interface: "{{ network_interface }}"
+
+# This is the raw interface given to neutron as its external network port. Even
+# though an IP address can exist on this interface, it will be unusable in most
+# configurations. It is recommended this interface not be configured with any IP
+# addresses for that reason.
 neutron_external_interface: "eth1"
 
-# These can be adjusted for even more customization
-api_interface: "{{ network_interface }}"
-storage_interface: "{{ network_interface }}"
-tunnel_interface: "{{ network_interface }}"
-
-# Valid options are [ openvswitch, linuxbridge ]
-neutron_plugin_agent: "openvswitch"
-
 
 ####################
-# Openstack options
+# OpenStack options
 ####################
-openstack_release: "latest"
-openstack_logging_verbose: "True"
-openstack_logging_debug: "False"
+# This option is used to specify the tag to use when pulling the Docker images
+#openstack_release: "latest"
 
-openstack_region_name: "RegionOne"
+# Use these options to set the various log levels across all OpenStack projects
+#openstack_logging_verbose: "True"
+#openstack_logging_debug: "False"
 
-
-####################
-# RabbitMQ options
-####################
-rabbitmq_user: "openstack"
-
-
-#################################
-## Cinder - Block Storage options
-#################################
-enable_cinder: "no"
-cinder_volume_driver: "lvm"
+# OpenStack services can be enabled or disabled with these options
+#enable_cinder: "yes"
+#enable_heat: "no"