diff options
Diffstat (limited to 'deployment/playbooks/cns-setup.yaml')
-rw-r--r-- | deployment/playbooks/cns-setup.yaml | 121 |
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 |