blob: 74e58e8f6ca3d24668048e106e8c6424d6f41573 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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
|