| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_APT01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CFG01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CTL01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CTL02 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CTL03 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CID01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CID02 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CID03 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CMP01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_CMP02 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_GTW01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_PRX01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_DNS01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_DNS02 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_MDB01 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_MDB02 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_MDB03 with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import HOSTNAME_VS with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import LAB_CONFIG_NAME with context %} |
| {% from 'virtual-offline-pike-ovs-dpdk/underlay.yaml' import DOMAIN_NAME with context %} |
| {% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'proposed') %} |
| |
| {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.local.test/salt-models/mcp-virtual-lab') %} |
| # Other salt model repository parameters see in shared-salt.yaml |
| |
| |
| {% import 'shared-salt.yaml' as SHARED with context %} |
| {% from 'shared-salt.yaml' import IPV4_NET_CONTROL_PREFIX with context %} |
| {% import 'virtual-offline-pike-ovs-dpdk/vswitch-config.yaml' as VSWITCH with context %} |
| {% set VSWITCH_IP = SHARED.IPV4_NET_CONTROL_PREFIX+'.178' %} |
| |
| - description: Check nginx APT node is ready |
| cmd: systemctl status nginx; |
| node_name: {{ HOSTNAME_APT01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| - description: Check dnsmasq on APT node is ready |
| cmd: systemctl status dnsmasq; |
| node_name: {{ HOSTNAME_APT01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_VS) }} |
| {{ VSWITCH.MACRO_CONFIGURE_VSWITCH(HOSTNAME_VS, VSWITCH_IP) }} |
| |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CFG01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CTL01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CTL02) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CTL03) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CID01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CID02) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CID03) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CMP01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CMP02) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_GTW01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_PRX01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_DNS01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_DNS02) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_MDB01) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_MDB02) }} |
| {{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_MDB03) }} |
| |
| {{ SHARED.MACRO_INSTALL_SALT_MASTER() }} |
| |
| {{ SHARED.MACRO_CLONE_RECLASS_MODELS() }} |
| |
| - description: 'Workaround of local_repo_url - set to offline image repository structure' |
| cmd: | |
| find /srv/salt/reclass/classes/cluster -type f -exec sed -i 's/local_repo_url: .*/local_repo_url: mirror.mcp.mirantis.local.test/g' {} + |
| find /srv/salt/reclass/classes/cluster -type f -exec sed -i 's/aptly_server_address: .*/aptly_server_address: {{ os_env('HOST_APT') }}/g' {} + |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| {{ 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" "powerdns" "fluentd" "backupninja" "watchdog" "runtest" "auditd" "logrotate" "gnocchi" "manila" "jenkins" "glusterfs"') }} |
| |
| {{ SHARED.MACRO_INSTALL_SALT_MINIONS() }} |
| |
| {{ SHARED.MACRO_RUN_SALT_MASTER_UNDERLAY_STATES() }} |
| |
| {{ SHARED.MACRO_GENERATE_INVENTORY() }} |
| |
| {{ SHARED.MACRO_BOOTSTRAP_ALL_MINIONS() }} |
| |
| {{SHARED.MACRO_CHECK_SALT_VERSION_SERVICES_ON_CFG()}} |
| {{SHARED.MACRO_CHECK_SALT_VERSION_ON_NODES()}} |
| |
| {{ VSWITCH.MACRO_CHECK_BGPVPN_ENABLED_BY_DEFAULT() }} |
| |
| {{ VSWITCH.MACRO_ENABLE_L2GW(SHARED.CLUSTER_NAME, VSWITCH_IP) }} |
| |
| - description: Enable hugepages on cmp nodes |
| cmd: salt 'cmp*' cmd.run "apt-get install -y hugepages; echo 2048 > /proc/sys/vm/nr_hugepages"; |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| #- description: Install watchdog |
| # cmd: salt -C "I@watchdog:server" state.sls watchdog; |
| # node_name: {{ HOSTNAME_CFG01 }} |
| # retry: {count: 1, delay: 10} |
| # skip_fail: false |
| |
| - description: WR for correct acces to git repo from jenkins on cfg01 node |
| cmd: | |
| export GIT_SSL_NO_VERIFY=true; git clone --mirror https://gerrit.mcp.mirantis.local.test/mk/mk-pipelines /home/repo/mk/mk-pipelines/; |
| export GIT_SSL_NO_VERIFY=true; git clone --mirror https://gerrit.mcp.mirantis.local.test/mcp-ci/pipeline-library /home/repo/mcp-ci/pipeline-library/; |
| chown -R git:www-data /home/repo/mk/mk-pipelines/*; |
| chown -R git:www-data /home/repo/mcp-ci/pipeline-library/*; |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| - description: '*Workaround* to remove apt key until migrate on CC' |
| cmd: salt-key -d apt01.virtual-offline-pike-ovs-dpdk -y |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 1} |
| skip_fail: true |
| |
| - description: '*Workaround* stop minion on apt like proxy node' |
| cmd: systemctl stop salt-minion.service |
| node_name: {{ HOSTNAME_APT01 }} |
| retry: {count: 1, delay: 1} |
| skip_fail: true |
| |
| - description: Workaround to avoid reboot cmp nodes bring OVS interfaces UP |
| cmd: | |
| salt 'cmp*' cmd.run "ifup br-mesh"; |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: false |
| |
| - description: Temporary WR |
| cmd: | |
| ssh-keyscan cfg01 > /var/lib/jenkins/.ssh/known_hosts || true; |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: true |
| |
| - description: Enable Jenkins |
| cmd: | |
| systemctl enable jenkins || true; |
| systemctl restart jenkins || true; |
| sleep 5; |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 1, delay: 10} |
| skip_fail: true |
| |
| - description: run jenkins.client |
| cmd: | |
| salt-call state.sls jenkins.client |
| node_name: {{ HOSTNAME_CFG01 }} |
| retry: {count: 3, delay: 60} |
| skip_fail: false |