blob: ea0a172fa8f83dc1fd8dd02e0ef9006b31e9a42f [file] [log] [blame]
Oleksii Butenkof65a0042018-06-27 13:38:43 +03001{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import HOSTNAME_CFG01 with context %}
2{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import HOSTNAME_CMP01 with context %}
3{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import HOSTNAME_CMP02 with context %}
4{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import HOSTNAME_GTW01 with context %}
5{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import LAB_CONFIG_NAME with context %}
6{% from 'cookied-bm-dpdk-pipeline/underlay.yaml' import DOMAIN_NAME with context %}
7
8{% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-baremetal-lab') %}
9# Other salt model repository parameters see in shared-salt.yaml
10
11{% import 'shared-salt.yaml' as SHARED with context %}
12
13{{ SHARED.MACRO_INSTALL_SALT_MASTER() }}
14
15{{ SHARED.MACRO_CLONE_RECLASS_MODELS() }}
16
17{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "fluentd" "runtest" "maas" "jenkins" "glusterfs" "backupninja" "auditd"') }}
18
19{{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}
20
21{{ SHARED.MACRO_RUN_SALT_MASTER_UNDERLAY_STATES() }}
22
23{{ SHARED.MACRO_GENERATE_INVENTORY() }}
24{{ SHARED.MACRO_NETWORKING_WORKAROUNDS() }}
25 node_name: {{ HOSTNAME_CFG01 }}
26 retry: {count: 1, delay: 10}
27 skip_fail: false
28
29- description: Temporary workaround for removing cinder-volume from CTL nodes
30 cmd: |
31 sed -i 's/\-\ system\.cinder\.volume\.single//g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml;
32 sed -i 's/\-\ system\.cinder\.volume\.notification\.messagingv2//g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml;
33 node_name: {{ HOSTNAME_CFG01 }}
34 retry: {count: 1, delay: 5}
35 skip_fail: true
36
37- description: WR for mounting 1G hugepages before linux.state
38 cmd: |
39 salt 'cmp*' state.sls linux.system.hugepages;
40 salt 'cmp*' cmd.run "mount -o mode=775,pagesize=1G -t hugetlbfs Hugetlbfs-kvm /mnt/hugepages_1G";
41 salt 'cmp*' cmd.run "echo 16 | sudo tee /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages";
42 node_name: {{ HOSTNAME_CFG01 }}
43 retry: {count: 1, delay: 10}
44 skip_fail: false
45
46- description: "Workaround for PROD-18834: Pre-install linux-headers package"
47 cmd: salt 'cmp*' cmd.run "apt-get install -y linux-headers-$(uname -r)";
48 node_name: {{ HOSTNAME_CFG01 }}
49 retry: {count: 1, delay: 10}
50 skip_fail: false
51
52- description: WR for correct acces to git repo from jenkins on cfg01 node
53 cmd: |
54 git clone --mirror https://github.com/Mirantis/mk-pipelines.git /home/repo/mk/mk-pipelines/;
55 git clone --mirror https://github.com/Mirantis/pipeline-library.git /home/repo/mcp-ci/pipeline-library/;
56 chown -R git:www-data /home/repo/mk/mk-pipelines/*;
57 chown -R git:www-data /home/repo/mcp-ci/pipeline-library/*;
58
59 node_name: {{ HOSTNAME_CFG01 }}
60 retry: {count: 1, delay: 10}
61 skip_fail: false
62
63{{ SHARED.MACRO_BOOTSTRAP_ALL_MINIONS() }}
64
65#########################################
66# Configure all running salt minion nodes
67#########################################
68
69- description: Refresh pillars on all minions
70 cmd: salt --hard-crash --state-output=mixed --state-verbose=False '*' saltutil.refresh_pillar
71 node_name: {{ HOSTNAME_CFG01 }}
72 retry: {count: 1, delay: 5}
73 skip_fail: false
74
75- description: Sync all salt resources
76 cmd: salt --hard-crash --state-output=mixed --state-verbose=False '*' saltutil.sync_all && sleep 5
77 node_name: {{ HOSTNAME_CFG01 }}
78 retry: {count: 1, delay: 5}
79 skip_fail: false
80
81- description: Show reclass-salt --top for generated nodes
82 cmd: reclass-salt --top -u /srv/salt/reclass/nodes/_generated/
83 node_name: {{ HOSTNAME_CFG01 }}
84 retry: {count: 1, delay: 5}
85 skip_fail: false
86
87- description: Add cpm nodes to /etc/hosts
88 cmd: |
89 salt --hard-crash --state-output=mixed --state-verbose=False -C '*' cmd.run "echo '10.167.11.105 cmp01.cookied-bm-dpdk-pipeline.local cmp01' >> /etc/hosts";
90 salt --hard-crash --state-output=mixed --state-verbose=False -C '*' cmd.run "echo '10.167.11.106 cmp02.cookied-bm-dpdk-pipeline.local cmp02' >> /etc/hosts";
91 node_name: {{ HOSTNAME_CFG01 }}
92 retry: {count: 1, delay: 10}
93 skip_fail: true
94
95{{SHARED.MACRO_CHECK_SALT_VERSION_SERVICES_ON_CFG()}}
96{{SHARED.MACRO_CHECK_SALT_VERSION_ON_NODES()}}
97
98- description: Temporary WR
99 cmd: |
100 ssh-keyscan cfg01 > /var/lib/jenkins/.ssh/known_hosts || true;
101 node_name: {{ HOSTNAME_CFG01 }}
102 retry: {count: 1, delay: 10}
103 skip_fail: true
104
105- description: Enable Jenkins
106 cmd: |
107 systemctl enable jenkins || true;
108 systemctl restart jenkins || true;
109 sleep 5;
110 node_name: {{ HOSTNAME_CFG01 }}
111 retry: {count: 1, delay: 10}
112 skip_fail: true
113
114- description: run jenkins.client
115 cmd: |
116 salt-call state.sls jenkins.client
117 node_name: {{ HOSTNAME_CFG01 }}
118 retry: {count: 1, delay: 10}
119 skip_fail: false
120
121- description: "Give each node root access with key from cfg01"
122 cmd: |
123 set -e;
124 set -x;
125 key=$(ssh-keygen -y -f /root/.ssh/id_rsa);
126 salt '*' cmd.run "echo $key >> /root/.ssh/authorized_keys";
127 salt '*' cmd.run "service sshd restart"
128 node_name: {{ HOSTNAME_CFG01 }}
129 retry: {count: 1, delay: 5}
130 skip_fail: true
131
132- description: temp WR
133 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' cmd.run
134 'ifdown br-prv; ifup br-prv'
135 node_name: {{ HOSTNAME_CFG01 }}
136 retry: {count: 1, delay: 30}
137 skip_fail: false
138
139- description: Create net04_external
140 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
141 '. /root/keystonercv3; neutron net-create net04_ext --router:external True --provider:physical_network physnet1 --provider:network_type flat'
142 node_name: {{ HOSTNAME_CFG01 }}
143 retry: {count: 1, delay: 30}
144 skip_fail: false
145
146- description: Create subnet_external
147 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
148 '. /root/keystonercv3; neutron subnet-create net04_ext 172.17.42.128/26 --name net04_ext__subnet --disable-dhcp --allocation-pool start=172.17.42.130,end=172.17.42.180 --gateway 172.17.42.129'
149 node_name: {{ HOSTNAME_CFG01 }}
150 retry: {count: 1, delay: 30}
151 skip_fail: false
152
153- description: Create net04
154 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
155 '. /root/keystonercv3; neutron net-create net04 --provider:network_type vxlan'
156 node_name: {{ HOSTNAME_CFG01 }}
157 retry: {count: 1, delay: 30}
158 skip_fail: false
159
160- description: Create subnet_net04
161 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
162 '. /root/keystonercv3; neutron subnet-create net04 192.168.1.0/24 --name net04__subnet --allocation-pool start=192.168.1.150,end=192.168.1.240'
163 node_name: {{ HOSTNAME_CFG01 }}
164 retry: {count: 1, delay: 30}
165 skip_fail: false
166
167- description: Create router
168 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
169 '. /root/keystonercv3; neutron router-create net04_router01 --ha False'
170 node_name: {{ HOSTNAME_CFG01 }}
171 retry: {count: 1, delay: 30}
172 skip_fail: false
173
174- description: Set geteway
175 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
176 '. /root/keystonercv3; neutron router-gateway-set net04_router01 net04_ext'
177 node_name: {{ HOSTNAME_CFG01 }}
178 retry: {count: 1, delay: 30}
179 skip_fail: false
180
181- description: Add interface
182 cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
183 '. /root/keystonercv3; neutron router-interface-add net04_router01 net04__subnet'
184 node_name: {{ HOSTNAME_CFG01 }}
185 retry: {count: 1, delay: 30}
186 skip_fail: false
187
188{{ SHARED.INSTALL_DOCKER_ON_GTW() }}
189