Merge "Point grafana DS to prometheus-relay"
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..7df4724
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,41 @@
+---
+driver:
+ name: docker
+ use_sudo: false
+ volume:
+ - <%= ENV['PWD'] %>:/tmp/kitchen
+
+provisioner:
+ name: shell
+ script: verify.sh
+
+platforms:
+ <% `find classes/cluster -maxdepth 1 -mindepth 1 -type d | tr '_' '-' |sort -u`.split().each do |cluster| %>
+ <% cluster=cluster.split('/')[2] %>
+ - name: <%= cluster %>
+ driver_config:
+ #image: ubuntu:16.04
+ image: tcpcloud/salt-models-testing # With preinstalled dependencies (faster)
+ platform: ubuntu
+ hostname: cfg01.<%= cluster %>.local
+ provision_command:
+ - apt-get update
+ - apt-get install -y git curl python-pip
+ - git clone https://github.com/salt-formulas/salt-formulas-scripts /srv/salt/scripts
+ - cd /srv/salt/scripts; git pull -r; cd -
+ # NOTE: Configure ENV options as needed, example:
+ - echo "
+ export BOOTSTRAP=1;\n
+ export CLUSTER_NAME=<%= cluster %>;\n
+ export FORMULAS_SOURCE=pkg;\n
+ export RECLASS_VERSION=dev;\n
+ export RECLASS_IGNORE_CLASS_NOTFOUND=True;\n
+ export EXTRA_FORMULAS="";\n
+ " > /kitchen.env
+ #export RECLASS_SOURCE_PATH=/usr/lib/python2.7/site-packages/reclass;\n
+ #export PYTHONPATH=$RECLASS_SOURCE_PATH:$PYTHONPATH;\n
+ <% end %>
+
+suites:
+ - name: cluster
+
diff --git a/classes/cluster/aaa-ha-freeipa/infra/config.yml b/classes/cluster/aaa-ha-freeipa/infra/config.yml
index e69242a..bd29e36 100644
--- a/classes/cluster/aaa-ha-freeipa/infra/config.yml
+++ b/classes/cluster/aaa-ha-freeipa/infra/config.yml
@@ -2,7 +2,7 @@
- system.linux.system.repo.ubuntu
- system.openssh.client.lab
- system.salt.master.single
-- system.salt.master.pkg
+- system.salt.master.git
- system.salt.minion.ca.salt_master
- system.salt.master.api
- system.mysql.client
@@ -13,7 +13,7 @@
- cluster.aaa-ha-freeipa
parameters:
_param:
- salt_master_base_environment: prd
+ salt_master_base_environment: dev
reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab.git"
reclass_data_revision: master
reclass_config_master: ${_param:infra_config_deploy_address}
@@ -22,10 +22,25 @@
salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/"
salt_master_host: 127.0.0.1
salt:
+ #minion:
+ # source:
+ # engine: none
master:
+ #source:
+ # # TEMP: avoid to install salt packages (as we preinstall development version)
+ # engine: none
reactor:
reclass/minion/classify:
- salt://reclass/reactor/node_register.sls
+ environment:
+ dev:
+ formula:
+ salt:
+ #source: pkg
+ #name: salt-formula-salt
+ source: git
+ address: 'https://github.com/epcim/salt-formula-salt.git'
+ revision: 'review/petr_michalec/allow-multiple-ext-pillars-and-reclass-options'
reclass:
storage:
@@ -34,7 +49,7 @@
expression: all
node_param:
single_address:
- value_template: <<node_ip>>
+ value_template: <<node_control_ip>>
linux_system_codename:
value_template: <<node_os>>
salt_master_host:
@@ -43,14 +58,14 @@
expression: <<node_hostname>>__startswith__cfg
cluster_param:
infra_config_address:
- value_template: <<node_ip>>
+ value_template: <<node_control_ip>>
infra_config_deploy_address:
- value_template: <<node_ip>>
+ value_template: <<node_deploy_ip>>
identity_control01:
expression: <<node_hostname>>__equals__idm01
cluster_param:
identity_control_node01_address:
- value_template: <<node_ip>>
+ value_template: <<node_control_ip>>
node_class:
value_template:
#- system.linux.system.repo.saltstack.rhel7
@@ -59,7 +74,7 @@
expression: <<node_hostname>>__equals__idm02
cluster_param:
identity_control_node02_address:
- value_template: <<node_ip>>
+ value_template: <<node_control_ip>>
node_class:
value_template:
#- system.linux.system.repo.saltstack.rhel7
@@ -68,7 +83,7 @@
expression: <<node_hostname>>__equals__idm03
cluster_param:
identity_control_node03_address:
- value_template: <<node_ip>>
+ value_template: <<node_control_ip>>
node_class:
value_template:
#- system.linux.system.repo.saltstack.rhel7
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
index 0122cf9..2ce0ac6 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/init.yml
@@ -49,6 +49,7 @@
- system.docker.swarm.stack.security_monkey
# Docker networks
- system.docker.swarm.network.runbook
+ - system.docker.swarm.network.oss_backend
# Aptly
# We need aptly-publisher.yml on each node for our Jenkins slaves in docker
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/init.yml b/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
index 053a652..9d81f5d 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/init.yml
@@ -3,11 +3,11 @@
cicd_control_hostname: cid
cicd_control_address: 172.16.10.252
cicd_control_node01_hostname: cid01
- cicd_control_node01_address: 172.16.10.11
+ cicd_control_node01_address: 172.16.10.90
cicd_control_node02_hostname: cid02
- cicd_control_node02_address: 172.16.10.12
+ cicd_control_node02_address: 172.16.10.91
cicd_control_node03_hostname: cid03
- cicd_control_node03_address: 172.16.10.13
+ cicd_control_node03_address: 172.16.10.92
# CI/CD control infrastructure
control_node01_address: ${_param:cicd_control_node01_address}
diff --git a/classes/cluster/drivetrain-ha/cicd/control/init.yml b/classes/cluster/drivetrain-ha/cicd/control/init.yml
index 9c87f6e..52b6079 100644
--- a/classes/cluster/drivetrain-ha/cicd/control/init.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/init.yml
@@ -49,6 +49,7 @@
- system.docker.swarm.stack.security_monkey
# Docker networks
- system.docker.swarm.network.runbook
+ - system.docker.swarm.network.oss_backend
# Aptly
# We need aptly-publisher.yml on each node for our Jenkins slaves in docker
diff --git a/classes/cluster/drivetrain-ha/cicd/init.yml b/classes/cluster/drivetrain-ha/cicd/init.yml
index 9b736f2..b8f307d 100644
--- a/classes/cluster/drivetrain-ha/cicd/init.yml
+++ b/classes/cluster/drivetrain-ha/cicd/init.yml
@@ -6,9 +6,9 @@
cicd_control_node01_hostname: cid01
cicd_control_node02_hostname: cid02
cicd_control_node03_hostname: cid03
- cicd_control_node01_address: 172.16.10.11
- cicd_control_node02_address: 172.16.10.12
- cicd_control_node03_address: 172.16.10.13
+ cicd_control_node01_address: 172.16.10.90
+ cicd_control_node02_address: 172.16.10.91
+ cicd_control_node03_address: 172.16.10.92
# CI/CD control infrastructure
control_node01_address: ${_param:cicd_control_node01_address}
diff --git a/verify.sh b/verify.sh
new file mode 100755
index 0000000..f1f9739
--- /dev/null
+++ b/verify.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+#export HOSTNAME=${`hostname -s`}
+#export DOMAIN=${`hostname -d`}
+cd /srv/salt/scripts; git pull -r || true; source bootstrap.sh || exit 1
+
+# BOOTSTRAP
+if [[ $BOOTSTRAP =~ ^(True|true|1|yes)$ ]]; then
+ # workarounds for kitchen
+ test ! -e /tmp/kitchen || (mkdir -p /srv/salt/reclass; rsync -avh /tmp/kitchen/ /srv/salt/reclass)
+ cd /srv/salt/reclass
+ # clone latest system-level if missing
+ if [[ -e .gitmodules ]] && [[ ! -e classes/system/linux ]]; then
+ git submodule update --init --recursive --remote || true
+ fi
+ source_local_envs
+ /srv/salt/scripts/bootstrap.sh
+ if [[ -e /tmp/kitchen ]]; then sed -i '/export BOOTSTRAP=/d' /kitchen.env; fi
+fi
+
+# VERIFY
+export RECLASS_IGNORE_CLASS_NOTFOUND=False
+cd /srv/salt/reclass &&\
+if [[ -z "$1" ]] ; then
+ verify_salt_master &&\
+ verify_salt_minions
+else
+ verify_salt_minion "$1"
+fi