aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Walker (Daviey) <email@daviey.com>2016-07-07 14:36:42 +0100
committerDave Walker <email@daviey.com>2016-07-14 07:53:41 +0000
commita5e402f1e829be553e79f43ee32b2bc9ba189b12 (patch)
tree8d455e9bc25db61e8e61c6a9088ab1711c38faf3
parent5c2c0a9c2b42150e6ce84a536e3b2b1be51d7297 (diff)
downloadkolla-a5e402f1e829be553e79f43ee32b2bc9ba189b12.tar.gz
kolla-a5e402f1e829be553e79f43ee32b2bc9ba189b12.zip
Support Keystone Domain specific files
Currently, it is not possible to make use of Keystone Domain specific settings. Such as different domains using different LDAP servers or SQL. To enable for example domain ACME - domain settings would be put into: {{ node_custom_config }}keystone/domains/keystone.ACME.conf Change-Id: I23620978c618dd4a3598d7cb74c3e9cf8c2394ac Closes-Bug: #1599868 Signed-off-by: Dave Walker (Daviey) <email@daviey.com>
-rw-r--r--ansible/roles/keystone/tasks/config.yml20
-rw-r--r--ansible/roles/keystone/templates/keystone.conf.j26
-rw-r--r--ansible/roles/keystone/templates/keystone.json.j27
-rw-r--r--releasenotes/notes/support-ldap-e678ce5b0a7eaedb.yaml4
4 files changed, 37 insertions, 0 deletions
diff --git a/ansible/roles/keystone/tasks/config.yml b/ansible/roles/keystone/tasks/config.yml
index 0c55c7b6c..e64a8d7df 100644
--- a/ansible/roles/keystone/tasks/config.yml
+++ b/ansible/roles/keystone/tasks/config.yml
@@ -1,4 +1,8 @@
---
+- name: Check if Keystone Domain specific settings enabled
+ local_action: stat path="{{ node_custom_config }}/keystone/domains"
+ register: keystone_domain_cfg
+
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item }}"
@@ -7,6 +11,15 @@
with_items:
- "keystone"
+- name: Creating Keystone Domain directory
+ file:
+ dest: "{{ node_config_directory }}/{{ item }}/domains/"
+ state: "directory"
+ when:
+ keystone_domain_cfg.stat.exists
+ with_items:
+ - "keystone"
+
- name: Copying over config.json files for services
template:
src: "{{ item }}.json.j2"
@@ -29,6 +42,13 @@
with_items:
- "keystone"
+- name: Copying Keystone Domain specific settings
+ copy:
+ src: "{{ item }}"
+ dest: "{{ node_config_directory }}/keystone/domains/"
+ with_fileglob:
+ - "{{ node_custom_config }}/keystone/domains/*"
+
- name: Copying over wsgi-keystone.conf
template:
src: "wsgi-keystone.conf.j2"
diff --git a/ansible/roles/keystone/templates/keystone.conf.j2 b/ansible/roles/keystone/templates/keystone.conf.j2
index 512fa1dab..f5c9054de 100644
--- a/ansible/roles/keystone/templates/keystone.conf.j2
+++ b/ansible/roles/keystone/templates/keystone.conf.j2
@@ -10,6 +10,12 @@ secure_proxy_ssl_header = HTTP_X_FORWARDED_PROTO
connection = mysql+pymysql://{{ keystone_database_user }}:{{ keystone_database_password }}@{{ keystone_database_address }}/{{ keystone_database_name }}
max_retries = -1
+{% if keystone_domain_cfg.stat.exists %}
+[identity]
+domain_specific_drivers_enabled = true
+domain_config_dir = /etc/keystone/domains
+{% endif %}
+
[cache]
backend = oslo_cache.memcache_pool
enabled = True
diff --git a/ansible/roles/keystone/templates/keystone.json.j2 b/ansible/roles/keystone/templates/keystone.json.j2
index b5ecc3db8..21cc9559e 100644
--- a/ansible/roles/keystone/templates/keystone.json.j2
+++ b/ansible/roles/keystone/templates/keystone.json.j2
@@ -10,6 +10,13 @@
"perm": "0600"
},
{
+ "source": "{{ container_config_directory }}/domains",
+ "dest": "/etc/keystone/domains",
+ "owner": "keystone",
+ "perm": "0600",
+ "optional": true
+ },
+ {
"source": "{{ container_config_directory }}/wsgi-keystone.conf",
"dest": "/etc/{{ keystone_dir }}/wsgi-keystone.conf",
"owner": "keystone",
diff --git a/releasenotes/notes/support-ldap-e678ce5b0a7eaedb.yaml b/releasenotes/notes/support-ldap-e678ce5b0a7eaedb.yaml
new file mode 100644
index 000000000..997dc06f2
--- /dev/null
+++ b/releasenotes/notes/support-ldap-e678ce5b0a7eaedb.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - LDAP & AD support has been added to the base images, and support
+ for Keystone multidomains config files.