summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2017-11-16 00:13:48 -0800
committerGitHub <noreply@github.com>2017-11-16 00:13:48 -0800
commit4011df52c4ab9418a2261ce20f01c00c4e7a40b6 (patch)
tree3289c1bee817ccaa3acfe514611a0f97b2128138 /roles
parent9f6bc3afc950d4f6622e3dfb048158db9b06677c (diff)
parent6039b8928ba8b172d95f10c9d0ae7880f393f2f7 (diff)
downloadopenshift-4011df52c4ab9418a2261ce20f01c00c4e7a40b6.tar.gz
openshift-4011df52c4ab9418a2261ce20f01c00c4e7a40b6.tar.bz2
openshift-4011df52c4ab9418a2261ce20f01c00c4e7a40b6.tar.xz
openshift-4011df52c4ab9418a2261ce20f01c00c4e7a40b6.zip
Merge pull request #5500 from vshn/projtmpl1
Automatic merge from submit-queue. Add role to configure project request template The OpenShift master role already supports changing the master configuration to refer to a project template, but there's no way to manage that template directly. This role adds the necessary code to generate a default template and to apply customizations using the "yedit" module. We need to configure custom services and endpoints in every project. The project request template enables us to do that automatically in every project and we'd like to manage the template using Ansible.
Diffstat (limited to 'roles')
-rw-r--r--roles/openshift_project_request_template/README.md33
-rw-r--r--roles/openshift_project_request_template/defaults/main.yml5
-rw-r--r--roles/openshift_project_request_template/meta/main.yml15
-rw-r--r--roles/openshift_project_request_template/tasks/main.yml40
4 files changed, 93 insertions, 0 deletions
diff --git a/roles/openshift_project_request_template/README.md b/roles/openshift_project_request_template/README.md
new file mode 100644
index 000000000..81c3aca5c
--- /dev/null
+++ b/roles/openshift_project_request_template/README.md
@@ -0,0 +1,33 @@
+OpenShift Project Request Template
+==================================
+
+Configure template used when creating new projects. If enabled only the template is managed. It must still be enabled in the OpenShift master configuration. The base template is created using `oc adm create-bootstrap-project-template` and can be modified by setting `openshift_project_request_template_edits`.
+
+
+Requirements
+------------
+
+
+Role Variables
+--------------
+
+From this role:
+
+| Name | Default value | Description |
+|----------------------------------------------|-----------------|------------------------------------------------|
+| openshift_project_request_template_manage | false | Whether to manage the project request template |
+| openshift_project_request_template_namespace | default | Namespace for template |
+| openshift_project_request_template_name | project-request | Template name |
+| openshift_project_request_template_edits | [] | Changes for template |
+
+
+Dependencies
+------------
+
+* lib_utils
+
+
+License
+-------
+
+Apache License Version 2.0
diff --git a/roles/openshift_project_request_template/defaults/main.yml b/roles/openshift_project_request_template/defaults/main.yml
new file mode 100644
index 000000000..2dab6f99e
--- /dev/null
+++ b/roles/openshift_project_request_template/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+openshift_project_request_template_manage: false
+openshift_project_request_template_namespace: default
+openshift_project_request_template_name: project-request
+openshift_project_request_template_edits: []
diff --git a/roles/openshift_project_request_template/meta/main.yml b/roles/openshift_project_request_template/meta/main.yml
new file mode 100644
index 000000000..3bc6dfb45
--- /dev/null
+++ b/roles/openshift_project_request_template/meta/main.yml
@@ -0,0 +1,15 @@
+---
+galaxy_info:
+ author: Michael Hanselmann
+ description: Configure project request template
+ company: VSHN AG
+ license: Apache License, Version 2.0
+ min_ansible_version: 2.2
+ platforms:
+ - name: EL
+ versions:
+ - 7
+ categories:
+ - cloud
+dependencies:
+- role: lib_utils
diff --git a/roles/openshift_project_request_template/tasks/main.yml b/roles/openshift_project_request_template/tasks/main.yml
new file mode 100644
index 000000000..c31ee5795
--- /dev/null
+++ b/roles/openshift_project_request_template/tasks/main.yml
@@ -0,0 +1,40 @@
+---
+- name: Create temp file for template
+ command: mktemp /tmp/openshift-ansible-XXXXXX.yaml
+ register: mktemp
+ changed_when: False
+
+- name: Generate default project template
+ command: |
+ {{ openshift.common.client_binary | quote }} \
+ --config {{ openshift.common.config_base | quote }}/master/admin.kubeconfig \
+ --output yaml \
+ adm create-bootstrap-project-template \
+ --name {{ openshift_project_request_template_name | quote }}
+ register: default_project_template
+
+- name: Write default project template to file
+ copy:
+ mode=0600
+ content="{{ default_project_template.stdout }}"
+ dest="{{ mktemp.stdout }}"
+
+- name: Apply template modifications
+ yedit:
+ state: present
+ src: "{{ mktemp.stdout }}"
+ edits: "{{ openshift_project_request_template_edits }}"
+ when: "openshift_project_request_template_edits | length > 0"
+
+- name: Create or update project request template
+ command: |
+ {{ openshift.common.client_binary }} \
+ --config {{ openshift.common.config_base }}/master/admin.kubeconfig \
+ --namespace {{ openshift_project_request_template_namespace | quote }} \
+ apply --filename {{ mktemp.stdout }}
+
+- name: Delete temp file
+ file:
+ name: "{{ mktemp.stdout }}"
+ state: absent
+ changed_when: False