summaryrefslogtreecommitdiffstats
path: root/deployment/playbooks/cns-setup.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'deployment/playbooks/cns-setup.yaml')
-rw-r--r--deployment/playbooks/cns-setup.yaml121
1 files changed, 121 insertions, 0 deletions
diff --git a/deployment/playbooks/cns-setup.yaml b/deployment/playbooks/cns-setup.yaml
new file mode 100644
index 00000000..74e58e8f
--- /dev/null
+++ b/deployment/playbooks/cns-setup.yaml
@@ -0,0 +1,121 @@
+---
+- hosts: cns
+ tasks:
+ - name: Install required kernel modules on CNS nodes
+ import_role:
+ name: openshift_storage_glusterfs
+ tasks_from: kernel_modules.yml
+
+- name: Restart dnsmasq to make our custom configs take effect
+ hosts: allnodes
+ tasks:
+ - service:
+ name: dnsmasq
+ state: restarted
+
+- hosts: single_master
+ tasks:
+ - name: Perform actions on master node which are required to install CNS
+ import_role:
+ name: openshift_storage_glusterfs
+ vars:
+ openshift_storage_glusterfs_name: 'storage'
+ openshift_storage_glusterfs_namespace: 'storage'
+ openshift_storage_glusterfs_is_native: true
+ openshift_storage_glusterfs_storageclass: true
+ openshift_storage_glusterfs_block_storageclass: true
+ openshift_storage_glusterfs_s3_deploy: false
+ openshift_storage_glusterfs_heketi_admin_key: "{{
+ (dp_tool_heketi_admin_key.strip() != '') |
+ ternary(dp_tool_heketi_admin_key.strip(), omit) }}"
+ openshift_storage_glusterfs_heketi_user_key: "{{
+ (dp_tool_heketi_user_key.strip() != '') |
+ ternary(dp_tool_heketi_user_key.strip(), omit) }}"
+ openshift_storage_glusterfs_heketi_topology_load: true
+ - name: Allow to expand PVCs using 'glusterfs' storageclass.
+ oc_edit:
+ kind: sc
+ name: glusterfs-{{ glusterfs_name }}
+ content:
+ allowVolumeExpansion: true
+
+- name: Get IP address of the node with router
+ hosts: single_master
+ tasks:
+ - command: "oc get endpoints router -o=custom-columns=:.subsets[*].addresses[0].ip -n default"
+ register: router_get
+ - set_fact:
+ router_ip: "{{ router_get.stdout_lines[1].strip() }}"
+ delegate_to: "{{ item }}"
+ delegate_facts: True
+ with_items: "{{ groups['allnodes'] }}"
+
+- name: Update dnsmasq config with custom domain zone for apps
+ hosts: allnodes
+ tasks:
+ - lineinfile:
+ path: /etc/dnsmasq.conf
+ line: "address=/.{{ app_dns_prefix }}.{{ dns_zone }}/{{ router_ip }}"
+ - service:
+ name: dnsmasq
+ state: restarted
+
+- name: Set External IP address for heketi service
+ hosts: single_master
+ tasks:
+ - command: "python -c \"import yaml ;
+ config = yaml.load(open('/etc/origin/master/master-config.yaml', 'r'));
+ print(config['kubernetesMasterConfig']['masterIP'])
+ \""
+ register: master_ipv4
+ - set_fact:
+ master_ipv4: "{{ master_ipv4.stdout_lines[0] }}"
+ - command: "oc patch svc heketi-storage
+ --namespace storage
+ -p '{\"spec\":{\"externalIPs\":[\"{{ master_ipv4 }}\"]}}'"
+ run_once: true
+
+# Following updates config file
+# which is required for automated tests from 'cns-automation' repo
+
+- name: Update 'cns-automation' config file
+ hosts: localhost
+ tasks:
+ - set_fact:
+ master_ipv4: "{{ hostvars[groups['single_master'][0]].master_ipv4 }}"
+ - yedit:
+ src: "{{ cns_automation_config_file_path }}"
+ state: present
+ edits:
+ - key: openshift.storage_project_name
+ value: "storage"
+ - key: openshift.heketi_config.heketi_dc_name
+ value: "heketi-storage"
+ - key: openshift.heketi_config.heketi_service_name
+ value: "heketi-storage"
+ - key: openshift.heketi_config.heketi_client_node
+ value: "{{ master_ipv4 }}"
+ - key: openshift.heketi_config.heketi_server_url
+ value: "http://{{ master_ipv4 }}:8080"
+ - key: openshift.heketi_config.heketi_cli_user
+ value: 'admin'
+ - key: openshift.heketi_config.heketi_cli_key
+ value: "{{ dp_tool_heketi_admin_key }}"
+ - key: openshift.dynamic_provisioning.storage_classes
+ value:
+ file_storage_class:
+ provisioner: "kubernetes.io/glusterfs"
+ resturl: "http://{{ master_ipv4 }}:8080"
+ restuser: "admin"
+ secretnamespace: "storage"
+ volumenameprefix: "autotests-file"
+ block_storage_class:
+ provisioner: "gluster.org/glusterblock"
+ resturl: "http://{{ master_ipv4 }}:8080"
+ restuser: "admin"
+ restsecretnamespace: "storage"
+ volumenameprefix: "autotests-block"
+ hacount: "3"
+ chapauthenabled: "true"
+ when: cns_automation_config_file_path | length > 0
+ run_once: true