Merge "Add mitaka models with trusty"
diff --git a/.kitchen-verify.sh b/.kitchen-verify.sh
new file mode 100755
index 0000000..8db3819
--- /dev/null
+++ b/.kitchen-verify.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+## -----------------------------------------------------------------------------
+# PREREQ
+if [ -e /tmp/kitchen ]; then
+ rsync -avh --force --exclude "**/.kitchen" /tmp/kitchen/ /srv/salt/reclass
+fi
+source /srv/salt/bootstrap.sh
+source_local_envs
+
+# FULL BOOTSTRAP
+# make sure everything is set-up and exactly as in the model
+if [[ $BOOTSTRAP =~ ^(True|true|1|yes)$ ]]; then
+ cd /srv/salt/reclass
+ if [[ -e .gitmodules ]] && [[ ! -e classes/system/linux ]]; then
+ git submodule update --init --recursive --remote || true
+ fi
+ /srv/salt/bootstrap.sh &&\
+ if [[ -e /tmp/kitchen ]]; then sed -i '/BOOTSTRAP=/d' /kitchen.env; fi || exit 1
+else
+# JUST CONFIGURE AND START SALT-MASTER
+# minimal setup to speed up, good-enough for model validation
+ mkdir -p /srv/salt/reclass/nodes/_generated;
+ cat <<-EOF > /srv/salt/reclass/nodes/_generated/cfg01.$CLUSTER_NAME.local.yml
+ classes:
+ - cluster.$CLUSTER_NAME.infra.config
+ parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision:
+ reclass_data_repository:
+ cluster_name: $CLUSTER_NAME
+ cluster_domain: local
+ linux:
+ system:
+ name: cfg01
+ domain: $CLUSTER_NAME.local
+ reclass:
+ storage:
+ data_source:
+ engine: local
+ EOF
+# RECLASS PREREQUISITES
+# remove lock if you need (re)configure salt-master, reclass 2nd time
+ if [ ! -e /tmp/.reclass-prerequisite-once.lock ]; then
+ # link services (subject of future changes)
+ if [ ! -e /srv/salt/reclass/classes/service -a -e /usr/share/salt-formulas/reclass/service ]; then
+ rm -rf /srv/salt/reclass/classes/service || true;
+ ln -sf /usr/share/salt-formulas/reclass/service /srv/salt/reclass/classes
+ fi &&\
+ # reload
+ service salt-master force-reload &&\
+ service salt-minion force-reload &&\
+ retry salt-call saltutil.sync_all &&\
+ # generate static nodes
+ PILLAR='{"reclass":{"storage":{"data_source":{"engine":"local"}}} }' &&\
+ salt-call state.apply reclass.storage.node pillar="$PILLAR" &&\
+ # generate/mockup dynamic nodes (uses fn from bootstrap.sh)
+ mockup_node_registration &&\
+ touch /tmp/.salt-services-reload-once.lock || exit 1
+ fi
+fi
+
+
+
+## -----------------------------------------------------------------------------
+## VERIFY MASTER AND MINIONS
+
+if [[ ! -e /tmp/.verify-prerequisite-once.lock && ! $RECLASS_IGNORE_CLASS_NOTFOUND =~ ^(True|true|1|yes)$ ]]; then
+ sed -i 's/ignore_class_notfound:\s*True.*/ignore_class_notfound: False/' /etc/salt/master.d/reclass.conf
+ sed -i 's/ignore_class_notfound:\s*True.*/ignore_class_notfound: False/' /etc/reclass/reclass-config.yml
+ service salt-master force-reload
+ retry salt-call test.ping
+fi
+
+cd /srv/salt/reclass &&\
+if [[ -z "$1" ]] ; then
+ verify_salt_master &&\
+ verify_salt_minions
+else
+ verify_salt_minion "$1"
+fi
diff --git a/.kitchen.yml b/.kitchen.yml
index a8c4051..9fee5b8 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -7,35 +7,41 @@
provisioner:
name: shell
- script: verify.sh
+ script: .kitchen-verify.sh
+
+verifier:
+ name: inspec
+
+# Use: find classes/cluster/$cluster -name '*.env' | xargs -n1 source
+# TODO, Load and set ENV from **/*.env
+<%- saltver = ENV['SALT_VERSION'] || '2017.7' %>
+<%- btstrap = ENV['SALT_BOOTSTRAP'] || '0' %>
+<%- extrafo = ENV['EXTRA_FORMULAS'] || 'ntp' %>
+<%- formula = ENV['FORMULA_VERSION'] || 'master' %>
+<%- reclass = ENV['RECLASS_VERSION'] || 'develop' %>
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)
+ # image: epcim/salt:saltstack-ubuntu-xenial-salt-stable
+ # FIXME, USE ONCE RECLASS@DEVELOP IS IN MASTER, AND REQUIREDE FEATURES FROM FORMULA NIGHTLY REPO ARE IN STABLE
+ image: epcim/salt:saltmaster-reclass-ubuntu-xenial-salt-<%= saltver %>-formula-<%= formula %>
platform: ubuntu
hostname: cfg01.<%= cluster %>.local
provision_command:
- - apt-get update
- - apt-get install -y git curl python-pip
- - pip install --upgrade 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:
+ - test -e /srv/salt/bootstrap.sh || curl -qsSL https://raw.githubusercontent.com/salt-formulas/salt-formulas-scripts/develop/bootstrap.sh -o /srv/salt/bootstrap.sh
+ # Configure ENV options as needed, example:
- echo "
- export BOOTSTRAP=1;\n
+ export BOOTSTRAP=<%= btstrap %>;\n
export CLUSTER_NAME=<%= cluster %>;\n
- export FORMULAS_SOURCE=pkg;\n
- export RECLASS_VERSION=master;\n
+ export EXTRA_FORMULAS='<%= extrafo %>';\n
+ export RECLASS_VERSION=<%= reclass %>;\n
export RECLASS_IGNORE_CLASS_NOTFOUND=True;\n
export RECLASS_IGNORE_CLASS_REGEXP='service.*';\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
+ #export FORMULAS_SOURCE=pkg;\n
<% end %>
suites:
diff --git a/README.rst b/README.rst
index cc8cc13..51ba437 100755
--- a/README.rst
+++ b/README.rst
@@ -74,7 +74,7 @@
* virtual-mcp-ocata-dvr
* virtual-mcp-ocata-ovs
-MCP Kunbernetes
+MCP Kubernetes
---------------
Deployment:
@@ -88,6 +88,7 @@
* k8s-ha-calico
* k8s-ha-calico-syndic
* k8s-ha-contrail
+* k8s-ha-calico-flannel-virtlet
Stacklight
----------
@@ -159,8 +160,12 @@
cluster-virtual-mcp-ocata-dvr Docker Shell Busser Ssh <Not Created> <None>
cluster-virtual-mcp-ocata-ovs Docker Shell Busser Ssh <Not Created> <None>
+
+Example usage
+
.. code-block:: shell
- ➜ kitchen converge aaa-ha-freeipa
+ ➜ kitchen converge cluster-k8s-ha-calico
+ ➜ kitchen verify cluster-os-ha-contrail
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
index 7b74e37..3d76431 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
@@ -27,6 +27,7 @@
- system.openldap.client.people.admin
# PostgreSQL
- system.postgresql.client.pushkin
+ - system.postgresql.client.pushkin.security_monkey
- system.postgresql.client.rundeck
- system.postgresql.client.security_monkey
diff --git a/classes/cluster/drivetrain-ha-oss/oss/client.yml b/classes/cluster/drivetrain-ha-oss/oss/client.yml
index dc99d6e..9239169 100644
--- a/classes/cluster/drivetrain-ha-oss/oss/client.yml
+++ b/classes/cluster/drivetrain-ha-oss/oss/client.yml
@@ -29,11 +29,12 @@
# PostgreSQL
- system.postgresql.client.pushkin
- - system.postgresql.client.rundeck
+ - system.postgresql.client.pushkin.security_monkey
+ - system.postgresql.client.pushkin.janitor_monkey
+ - system.postgresql.client.pushkin.sfdc
+ - system.postgresql.client.pushkin.alertmanager
- system.postgresql.client.security_monkey
- - system.postgresql.client.janitor_monkey
- - system.postgresql.client.sfdc
- - system.postgresql.client.alertmanager
+ - system.postgresql.client.rundeck
# Elasticsearch
- system.elasticsearch.client
diff --git a/classes/cluster/drivetrain-ha/cicd/control/master.yml b/classes/cluster/drivetrain-ha/cicd/control/master.yml
index 40d881e..3798bf5 100644
--- a/classes/cluster/drivetrain-ha/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/master.yml
@@ -27,6 +27,7 @@
- system.openldap.client.people.admin
# PostgreSQL
- system.postgresql.client.pushkin
+ - system.postgresql.client.pushkin.security_monkey
- system.postgresql.client.rundeck
- system.postgresql.client.security_monkey
diff --git a/classes/cluster/k8s-aio-calico/kubernetes/compute.yml b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
index ede1437..be4d1c7 100644
--- a/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-aio-calico/kubernetes/compute.yml
@@ -43,9 +43,9 @@
network:
resolv:
dns:
- - 10.254.0.10
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - 10.254.0.10
interface:
ens3:
enabled: true
diff --git a/classes/cluster/k8s-compact/kubernetes/compute.yml b/classes/cluster/k8s-compact/kubernetes/compute.yml
index edb70a4..4537d07 100644
--- a/classes/cluster/k8s-compact/kubernetes/compute.yml
+++ b/classes/cluster/k8s-compact/kubernetes/compute.yml
@@ -45,9 +45,9 @@
network:
resolv:
dns:
- - ${_param:kubernetes_internal_dns_address}
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - ${_param:kubernetes_internal_dns_address}
interface:
ens3:
enabled: true
@@ -57,8 +57,5 @@
address: ${_param:single_address}
netmask: 255.255.255.0
gateway: 192.168.122.1
- route:
- kubernetes_services:
- address: 10.201.0.0
- netmask: 255.255.0.0
- gateway: ${_param:single_address}
+ post_up_cmds:
+ - ip r rep 10.254.0.0/16 via ${_param:deploy_address}
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
index 4fa8ad2..bb04c5e 100644
--- a/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/kubernetes/compute.yml
@@ -47,9 +47,9 @@
network:
resolv:
dns:
- - 10.254.0.10
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - 10.254.0.10
interface:
primary_interface:
route:
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/.env b/classes/cluster/k8s-ha-calico-flannel-virtlet/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/MAINTAINERS b/classes/cluster/k8s-ha-calico-flannel-virtlet/MAINTAINERS
new file mode 100644
index 0000000..458882c
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/MAINTAINERS
@@ -0,0 +1 @@
+Andrey Shestakov <ashestakov@mirantis.com>
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/config.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/config.yml
new file mode 100644
index 0000000..ef9ae97
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/config.yml
@@ -0,0 +1,81 @@
+classes:
+- system.linux.system.repo.ubuntu
+- system.linux.system.repo.mcp.salt
+- system.openssh.client.lab
+- system.salt.master.pkg
+- system.salt.minion.ca.salt_master
+- system.salt.master.api
+- system.salt.minion.cert.k8s_server
+- system.reclass.storage.salt
+- system.reclass.storage.system.kubernetes_control_cluster
+- cluster.k8s-ha-calico-flannel-virtlet
+parameters:
+ _param:
+ salt_master_base_environment: prd
+ 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}
+ single_address: ${_param:infra_config_address}
+ deploy_address: ${_param:infra_config_deploy_address}
+ linux_system_codename: xenial
+ salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/"
+ salt_master_host: 127.0.0.1
+ salt_master_environment_revision: master
+ salt_master_environment_repository: 'https://github.com/salt-formulas'
+ salt:
+ master:
+ reactor:
+ reclass/minion/classify:
+ - salt://reclass/reactor/node_register.sls
+ reclass:
+ storage:
+ class_mapping:
+ common_node:
+ expression: all
+ node_param:
+ single_address:
+ value_template: <<node_control_ip>>
+ linux_system_codename:
+ value_template: <<node_os>>
+ salt_master_host:
+ value_template: <<node_master_ip>>
+ deploy_address:
+ value_template: <<node_deploy_ip>>
+ infra_config:
+ expression: <<node_hostname>>__startswith__cfg
+ cluster_param:
+ infra_config_address:
+ value_template: <<node_control_ip>>
+ infra_config_deploy_address:
+ value_template: <<node_deploy_ip>>
+ cluster_domain:
+ value_template: <<node_domain>>
+ kubernetes_control01:
+ expression: <<node_hostname>>__equals__ctl01
+ cluster_param:
+ kubernetes_control_node01_address:
+ value_template: <<node_control_ip>>
+ kubernetes_control_node01_deploy_address:
+ value_template: <<node_deploy_ip>>
+ kubernetes_control02:
+ expression: <<node_hostname>>__equals__ctl02
+ cluster_param:
+ kubernetes_control_node02_address:
+ value_template: <<node_control_ip>>
+ kubernetes_control_node02_deploy_address:
+ value_template: <<node_deploy_ip>>
+ kubernetes_control03:
+ expression: <<node_hostname>>__equals__ctl03
+ cluster_param:
+ kubernetes_control_node03_address:
+ value_template: <<node_control_ip>>
+ kubernetes_control_node03_deploy_address:
+ value_template: <<node_deploy_ip>>
+ kubernetes_compute:
+ expression: <<node_hostname>>__startswith__cmp
+ node_class:
+ value_template:
+ - cluster.<<node_cluster>>.kubernetes.compute
+ node_param:
+ deploy_address:
+ value_template: <<node_deploy_ip>>
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/init.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/init.yml
new file mode 100644
index 0000000..e7a02fa
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/infra/init.yml
@@ -0,0 +1,28 @@
+classes:
+- system.linux.system.single
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.salt
+- system.linux.system.repo.ubuntu
+- system.openssh.server.team.all
+parameters:
+ _param:
+ # infra service addresses
+ infra_config_hostname: cfg01
+ infra_config_address: 172.16.10.100
+ infra_config_deploy_address: 192.168.10.90
+
+ cluster_domain: k8s-ha-calico-flannel-virtlet.local
+ cluster_name: k8s-ha-calico-flannel-virtlet
+ apt_mk_version: nightly
+ primary_interface: ens3
+ linux:
+ network:
+ host:
+ cfg01:
+ address: ${_param:infra_config_address}
+ names:
+ - ${_param:infra_config_hostname}
+ - ${_param:infra_config_hostname}.${_param:cluster_domain}
+ system:
+ name: ${_param:infra_config_hostname}
+ domain: ${_param:cluster_domain}
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/init.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/init.yml
new file mode 100644
index 0000000..bbe3cbe
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/init.yml
@@ -0,0 +1,5 @@
+classes:
+- system.linux.network.dynamic_hosts
+- cluster.k8s-ha-calico-flannel-virtlet.kubernetes
+- cluster.k8s-ha-calico-flannel-virtlet.infra
+- cluster.overrides
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/compute.yml
new file mode 100644
index 0000000..29a179b
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/compute.yml
@@ -0,0 +1,74 @@
+classes:
+- system.linux.system.repo.docker_legacy
+- system.kubernetes.pool.cluster
+- system.linux.network.hosts
+- system.salt.minion.cert.k8s_client
+- system.salt.minion.cert.etcd_client
+- cluster.k8s-ha-calico-flannel-virtlet
+parameters:
+ docker:
+ host:
+ pkgs:
+ - ${_param:kubernetes_docker_package}
+ - python-docker
+ options:
+ bip: 172.31.255.1/24
+ storage-driver: overlay2
+ kubernetes:
+ pool:
+ kubelet:
+ address: ${_param:single_address}
+ fail_on_swap: ${_param:kubelet_fail_on_swap}
+ network:
+ genie:
+ enabled: true
+ default_plugin: calico
+ image: ${_param:kubernetes_genie_image}
+ flannel:
+ enabled: true
+ calico:
+ enabled: true
+ image: ${_param:kubernetes_calico_image}
+ calicoctl_image: ${_param:kubernetes_calico_calicoctl_image}
+ cni_image: ${_param:kubernetes_calico_cni_image}
+ etcd:
+ ssl:
+ enabled: true
+ common:
+ addons:
+ virtlet:
+ enabled: ${_param:kubernetes_virtlet_enabled}
+ namespace: ${_param:kubernetes_addon_namespace}
+ image: ${_param:kubernetes_virtlet_image}
+ criproxy_version: ${_param:kubernetes_criproxy_version}
+ criproxy_source: ${_param:kubernetes_criproxy_checksum}
+ hosts:
+ - ${_param:kubernetes_compute01_hostname}
+ hyperkube:
+ image: ${_param:kubernetes_hyperkube_image}
+ linux:
+ network:
+ resolv:
+ dns:
+ - 172.18.208.44
+ - 172.18.176.4
+ - 10.254.0.10
+ interface:
+ ens3:
+ enabled: true
+ type: eth
+ proto: static
+ name: ${_param:primary_interface}
+ address: ${_param:deploy_address}
+ netmask: 255.255.255.0
+ gateway: 192.168.10.1
+ post_up_cmds:
+ - ip r rep 10.254.0.0/16 via ${_param:deploy_address}
+ ens4:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: '255.255.255.0'
+ ipflush_onchange: true
+ restart_on_ipflush: true
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/control.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/control.yml
new file mode 100644
index 0000000..6f6229c
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/control.yml
@@ -0,0 +1,80 @@
+classes:
+- service.etcd.server.cluster
+- service.kubernetes.control.cluster
+- service.kubernetes.control.cluster-admin
+- system.haproxy.proxy.listen.kubernetes.apiserver
+- system.linux.system.repo.docker_legacy
+- system.salt.minion.cert.etcd_server
+- system.kubernetes.master.cluster
+- cluster.k8s-ha-calico-flannel-virtlet.kubernetes.compute
+- cluster.k8s-ha-calico-flannel-virtlet
+parameters:
+ _param:
+ keepalived_vip_interface: ${_param:primary_interface}
+ keepalived_vip_virtual_router_id: 60
+ etcd:
+ server:
+ bind:
+ host: ${_param:deploy_address}
+ source:
+ engine: docker_hybrid
+ ssl:
+ enabled: true
+ setup:
+ calico:
+ key: /calico/v1/ipam/v4/pool/${_param:calico_private_network}-${_param:calico_private_netmask}
+ value: '{"masquerade":true,"cidr":"${_param:calico_private_network}/${_param:calico_private_netmask}"}'
+ kubernetes:
+ common:
+ addons:
+ dashboard:
+ enabled: ${_param:kubernetes_dashboard}
+ image: ${_param:kubernetes_dashboard_image}
+ helm:
+ enabled: ${_param:kubernetes_helm_enabled}
+ calico_policy:
+ enabled: ${_param:kubernetes_calico_policy_enabled}
+ image: ${_param:kubernetes_calico_policy_image}
+ netchecker:
+ enabled: ${_param:kubernetes_netchecker_enabled}
+ agent_image: ${_param:kubernetes_netchecker_agent_image}
+ server_image: ${_param:kubernetes_netchecker_server_image}
+ agent_probeurls: ${_param:kubernetes_netchecker_agent_probeurls}
+ dns:
+ enabled: ${_param:kubernetes_dns}
+ kubedns_image: ${_param:kubernetes_kubedns_image}
+ dnsmasq_image: ${_param:kubernetes_dnsmasq_image}
+ sidecar_image: ${_param:kubernetes_sidecar_image}
+ autoscaler:
+ image: ${_param:kubernetes_dns_autoscaler_image}
+ coredns:
+ enabled: ${_param:kubernetes_coredns_enabled}
+ externaldns:
+ enabled: ${_param:kubernetes_externaldns_enabled}
+ image: ${_param:kubernetes_externaldns_image}
+ provider: ${_param:kubernetes_externaldns_provider}
+ master:
+ kubelet:
+ address: ${_param:single_address}
+ fail_on_swap: ${_param:kubelet_fail_on_swap}
+ etcd:
+ ssl:
+ enabled: true
+ network:
+ genie:
+ enabled: true
+ default_plugin: calico
+ image: ${_param:kubernetes_genie_image}
+ flannel:
+ enabled: true
+ private_ip_range: 10.20.0.0/16
+ calico:
+ enabled: true
+ etcd:
+ ssl:
+ enabled: true
+ namespace:
+ netchecker:
+ enabled: true
+ auth:
+ mode: Node,RBAC
diff --git a/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/init.yml b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/init.yml
new file mode 100644
index 0000000..cd92306
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-flannel-virtlet/kubernetes/init.yml
@@ -0,0 +1,115 @@
+parameters:
+ _param:
+ salt_minion_ca_host: ${_param:infra_config_hostname}.${_param:cluster_domain}
+ salt_minion_ca_authority: salt_master_ca
+
+ # kubelet
+ kubelet_fail_on_swap: True
+
+ # kubernetes settings
+ kubernetes_admin_user: admin
+ kubernetes_admin_password: sbPfel23ZigJF3Bm
+ kubernetes_admin_token: PpP6Mm3pAoPVqcKOKUu0x1dh7b1959Fi
+ kubernetes_kubelet_token: JJ2PKHxjiU6EYvIt18BqwdSK1HvWh8pt
+ kubernetes_kube-proxy_token: jT0hJk9L6cIw5UpYDNhsRwcj3Z2n62B6
+ kubernetes_scheduler_token: VgkUHfrW07zNxrb0ucFyX7NBnSJN9Xp6
+ kubernetes_controller-manager_token: uXrdZ1YKF6qlYm3sHje2iEXMGAGDWOIU
+ kubernetes_dns_token: 0S1I4iJeFjq5fopPwwCwTp3xFpEZfeUl
+ etcd_initial_token: IN7KaRMSo3xkGxkjAAPtkRkAgqN4ZNRq
+
+ # docker package version
+ kubernetes_docker_package: docker-engine=1.12.6-0~ubuntu-xenial
+
+ # component docker images
+ kubernetes_calico_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
+ kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
+ kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
+ kubernetes_calico_policy_image: calico/kube-policy-controller:v0.5.4
+
+ kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.8.11-9
+ kubernetes_virtlet_image: mirantis/virtlet:v1.0.0
+ kubernetes_criproxy_version: v0.10.0
+ kubernetes_criproxy_checksum: md5=52717b1f70f15558ef4bdb0e4d4948da
+ kubernetes_dashboard_image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1
+ kubernetes_kubedns_image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
+ kubernetes_dnsmasq_image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.14.5
+ kubernetes_sidecar_image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5
+ kubernetes_dns_autoscaler_image: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.0.0
+ kubernetes_netchecker_agent_image: mirantis/k8s-netchecker-agent:stable
+ kubernetes_netchecker_server_image: mirantis/k8s-netchecker-server:stable
+ kubernetes_netchecker_agent_probeurls: "http://ipinfo.io"
+ kubernetes_genie_image: mirantis/cnigenie:latest
+
+ # switches of addons
+ kubernetes_addon_namespace: kube-system
+ kubernetes_dns: true
+ kubernetes_dashboard: true
+ kubernetes_helm_enabled: false
+ kubernetes_netchecker_enabled: true
+ kubernetes_calico_policy_enabled: false
+ kubernetes_virtlet_enabled: true
+
+ # addresses and hostnames
+ kubernetes_internal_api_address: 10.254.0.1
+ kubernetes_control_hostname: ctl
+ kubernetes_control_address: 192.168.10.253
+ kubernetes_control_node01_hostname: ctl01
+ kubernetes_control_node02_hostname: ctl02
+ kubernetes_control_node03_hostname: ctl03
+ kubernetes_compute01_hostname: cmp0
+ kubernetes_control_node01_address: 172.16.10.101
+ kubernetes_control_node02_address: 172.16.10.102
+ kubernetes_control_node03_address: 172.16.10.103
+ kubernetes_control_node01_deploy_address: 192.168.10.101
+ kubernetes_control_node02_deploy_address: 192.168.10.102
+ kubernetes_control_node03_deploy_address: 192.168.10.103
+
+ cluster_vip_address: ${_param:kubernetes_control_address}
+ cluster_local_address: ${_param:deploy_address}
+
+ # etcd stuff
+ cluster_node01_hostname: ${_param:kubernetes_control_node01_hostname}
+ cluster_node01_address: ${_param:kubernetes_control_node01_deploy_address}
+ cluster_node01_port: 4001
+ cluster_node02_hostname: ${_param:kubernetes_control_node02_hostname}
+ cluster_node02_address: ${_param:kubernetes_control_node02_deploy_address}
+ cluster_node02_port: 4001
+ cluster_node03_hostname: ${_param:kubernetes_control_node03_hostname}
+ cluster_node03_address: ${_param:kubernetes_control_node03_deploy_address}
+ cluster_node03_port: 4001
+
+ # calico
+ calico_private_network: 192.168.0.0
+ calico_private_netmask: 16
+
+ # component docker images
+ kubernetes_externaldns_image: mirantis/external-dns:latest
+ kubernetes_externaldns_provider: coredns
+
+ # switches of addons
+ kubernetes_coredns_enabled: false
+ kubernetes_externaldns_enabled: false
+
+ linux:
+ network:
+ host:
+ ctl:
+ address: ${_param:kubernetes_control_address}
+ names:
+ - ${_param:kubernetes_control_hostname}
+ - ${_param:kubernetes_control_hostname}.${_param:cluster_domain}
+ ctl01:
+ address: ${_param:kubernetes_control_node01_address}
+ names:
+ - ${_param:kubernetes_control_node01_hostname}
+ - ${_param:kubernetes_control_node01_hostname}.${_param:cluster_domain}
+ ctl02:
+ address: ${_param:kubernetes_control_node02_address}
+ names:
+ - ${_param:kubernetes_control_node02_hostname}
+ - ${_param:kubernetes_control_node02_hostname}.${_param:cluster_domain}
+ ctl03:
+ address: ${_param:kubernetes_control_node03_address}
+ names:
+ - ${_param:kubernetes_control_node03_hostname}
+ - ${_param:kubernetes_control_node03_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
index 9871b70..7afc253 100644
--- a/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/kubernetes/compute.yml
@@ -34,9 +34,9 @@
network:
resolv:
dns:
- - 10.254.0.10
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - 10.254.0.10
interface:
primary_interface:
route:
diff --git a/classes/cluster/k8s-ha-calico/kubernetes/compute.yml b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
index 476f176..646db96 100644
--- a/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/compute.yml
@@ -44,9 +44,9 @@
network:
resolv:
dns:
- - 10.254.0.10
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - 10.254.0.10
interface:
ens3:
enabled: true
@@ -56,14 +56,13 @@
address: ${_param:deploy_address}
netmask: 255.255.255.0
gateway: 192.168.10.1
- route:
- kubernetes_services:
- address: 10.254.0.0
- netmask: 255.255.0.0
- gateway: ${_param:deploy_address}
+ post_up_cmds:
+ - ip r rep 10.254.0.0/16 via ${_param:deploy_address}
ens4:
enabled: true
type: eth
proto: static
address: ${_param:single_address}
netmask: '255.255.255.0'
+ ipflush_onchange: true
+ restart_on_ipflush: true
diff --git a/classes/cluster/sl-k8s-calico/kubernetes/compute.yml b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
index 3522796..c041583 100644
--- a/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
+++ b/classes/cluster/sl-k8s-calico/kubernetes/compute.yml
@@ -44,9 +44,9 @@
network:
resolv:
dns:
- - 10.254.0.10
+ - 172.18.208.44
- 172.18.176.4
- - 172.18.176.7
+ - 10.254.0.10
interface:
ens3:
enabled: true
diff --git a/classes/cluster/sl-os-contrail/openstack/control.yml b/classes/cluster/sl-os-contrail/openstack/control.yml
index dee70ed..8404be4 100755
--- a/classes/cluster/sl-os-contrail/openstack/control.yml
+++ b/classes/cluster/sl-os-contrail/openstack/control.yml
@@ -40,6 +40,7 @@
- system.galera.server.database.keystone
- system.galera.server.database.nova
- system.galera.server.database.designate
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.sl-os-contrail
parameters:
_param:
diff --git a/classes/cluster/sl-os-ovs/openstack/control.yml b/classes/cluster/sl-os-ovs/openstack/control.yml
index ea1cdd6..d6a9752 100644
--- a/classes/cluster/sl-os-ovs/openstack/control.yml
+++ b/classes/cluster/sl-os-ovs/openstack/control.yml
@@ -28,6 +28,7 @@
- system.galera.server.database.keystone
- system.galera.server.database.nova
- system.haproxy.proxy.listen.openstack.nova-placement
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.sl-os-ovs
parameters:
_param:
diff --git a/classes/cluster/sl-pike-dvr/openstack/control.yml b/classes/cluster/sl-pike-dvr/openstack/control.yml
index 643c144..e7f531e 100644
--- a/classes/cluster/sl-pike-dvr/openstack/control.yml
+++ b/classes/cluster/sl-pike-dvr/openstack/control.yml
@@ -37,6 +37,7 @@
- system.galera.server.database.nova
- system.galera.server.database.designate
- system.haproxy.proxy.listen.openstack.nova-placement
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.sl-pike-dvr
parameters:
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/compute.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/compute.yml
index 16731e3..52c6ade 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/compute.yml
@@ -4,14 +4,14 @@
- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
- system.linux.network.hosts
- system.linux.storage.loopback
+- system.cinder.volume.single
+- system.cinder.volume.backend.lvm
- system.nova.compute.cluster
- system.neutron.compute.cluster
- system.ceilometer.client.nova_compute
- system.ceilometer.agent.cluster
- system.ceilometer.agent.polling.default
- system.linux.network.interface.single_ovs_dvr
-- service.cinder.volume.single
-- system.cinder.volume.backend.lvm
- cluster.virtual-mcp-pike-dvr-ssl-barbican
parameters:
_param:
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/control.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/control.yml
index 88f6f53..98bdc23 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/control.yml
@@ -30,6 +30,7 @@
- system.nova.control.cluster
- system.neutron.control.openvswitch.cluster
- system.cinder.control.cluster
+- system.cinder.control.backend.lvm
- system.heat.server.cluster
- system.designate.server.cluster
- system.galera.server.cluster
@@ -306,6 +307,9 @@
port: ${_param:rabbitmq_port}
ssl:
enabled: ${_param:rabbitmq_ssl_enabled}
+ notification:
+ notify_on:
+ state_change: vm_and_task_state
cinder:
controller:
controller:
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/proxy.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/proxy.yml
index 074dd4f..69159d4 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/proxy.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl-barbican/openstack/proxy.yml
@@ -7,6 +7,7 @@
- cluster.virtual-mcp-pike-dvr-ssl-barbican
parameters:
_param:
+ cluster_public_host: ${_param:openstack_proxy_address}
nginx_proxy_ssl:
enabled: true
authority: ${_param:salt_minion_ca_authority}
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/compute.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/compute.yml
index 72c1133..bb4d099 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/compute.yml
@@ -3,6 +3,9 @@
- system.linux.system.repo.mcp.extra
- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
- system.linux.network.hosts
+- system.linux.storage.loopback
+- system.cinder.volume.single
+- system.cinder.volume.backend.lvm
- system.nova.compute.cluster
- system.neutron.compute.cluster
- system.ceilometer.client.nova_compute
@@ -17,6 +20,7 @@
external_interface: ens6
interface_mtu: 1500
linux_system_codename: xenial
+ loopback_device_size: 20
linux:
network:
interface:
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/control.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/control.yml
index 320923c..0e92dbc 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/control.yml
@@ -29,6 +29,7 @@
- system.nova.control.cluster
- system.neutron.control.openvswitch.cluster
- system.cinder.control.cluster
+- system.cinder.control.backend.lvm
- system.heat.server.cluster
- system.designate.server.cluster
- system.galera.server.cluster
@@ -239,6 +240,9 @@
port: ${_param:rabbitmq_port}
ssl:
enabled: ${_param:rabbitmq_ssl_enabled}
+ notification:
+ notify_on:
+ state_change: vm_and_task_state
cinder:
controller:
identity:
diff --git a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/proxy.yml b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/proxy.yml
index fd43ed6..0abc6b8 100644
--- a/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/proxy.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr-ssl/openstack/proxy.yml
@@ -7,6 +7,7 @@
- cluster.virtual-mcp-pike-dvr-ssl
parameters:
_param:
+ cluster_public_host: ${_param:openstack_proxy_address}
nginx_proxy_ssl:
enabled: true
authority: ${_param:salt_minion_ca_authority}
diff --git a/classes/cluster/virtual-mcp-pike-dvr/openstack/compute.yml b/classes/cluster/virtual-mcp-pike-dvr/openstack/compute.yml
index 9a227d1..3de11a6 100644
--- a/classes/cluster/virtual-mcp-pike-dvr/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr/openstack/compute.yml
@@ -5,6 +5,9 @@
- system.linux.network.hosts
- system.nova.compute.cluster
- system.neutron.compute.cluster
+- system.cinder.volume.single
+- system.cinder.volume.backend.lvm
+- system.linux.storage.loopback
- system.ceilometer.client.nova_compute
- system.ceilometer.agent.cluster
- system.ceilometer.agent.polling.default
@@ -17,6 +20,7 @@
external_interface: ens6
interface_mtu: 1500
linux_system_codename: xenial
+ loopback_device_size: 20
nova:
compute:
vncproxy_url: http://${_param:cluster_vip_address}:6080
diff --git a/classes/cluster/virtual-mcp-pike-dvr/openstack/control.yml b/classes/cluster/virtual-mcp-pike-dvr/openstack/control.yml
index b9eff71..3211628 100644
--- a/classes/cluster/virtual-mcp-pike-dvr/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr/openstack/control.yml
@@ -21,6 +21,7 @@
- system.nova.control.cluster
- system.neutron.control.openvswitch.cluster
- system.cinder.control.cluster
+- system.cinder.control.backend.lvm
- system.heat.server.cluster
- system.designate.server.cluster
- system.galera.server.cluster
@@ -116,6 +117,9 @@
novncproxy_port: 6080
vncproxy_url: http://${_param:cluster_vip_address}:6080
workers: 1
+ notification:
+ notify_on:
+ state_change: vm_and_task_state
manila:
common:
default_share_type: default
diff --git a/classes/cluster/virtual-mcp-pike-dvr/openstack/proxy.yml b/classes/cluster/virtual-mcp-pike-dvr/openstack/proxy.yml
index 3420f43..d6ea854 100644
--- a/classes/cluster/virtual-mcp-pike-dvr/openstack/proxy.yml
+++ b/classes/cluster/virtual-mcp-pike-dvr/openstack/proxy.yml
@@ -7,9 +7,10 @@
- cluster.virtual-mcp-pike-dvr
parameters:
_param:
+ cluster_public_host: ${_param:openstack_proxy_address}
nginx_proxy_ssl:
enabled: true
authority: ${_param:salt_minion_ca_authority}
engine: salt
mode: secure
- salt_minion_ca_host: cfg01.${_param:cluster_domain}
\ No newline at end of file
+ salt_minion_ca_host: cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/virtual-mcp-pike-ovs/openstack/compute.yml b/classes/cluster/virtual-mcp-pike-ovs/openstack/compute.yml
index 3fd3bce..650743c 100644
--- a/classes/cluster/virtual-mcp-pike-ovs/openstack/compute.yml
+++ b/classes/cluster/virtual-mcp-pike-ovs/openstack/compute.yml
@@ -5,6 +5,9 @@
- system.linux.network.hosts
- system.nova.compute.cluster
- system.neutron.compute.cluster
+- system.cinder.volume.single
+- system.cinder.volume.backend.lvm
+- system.linux.storage.loopback
- system.ceilometer.agent.cluster
- system.ceilometer.agent.polling.default
- cluster.virtual-mcp-pike-ovs
@@ -15,6 +18,7 @@
external_interface: ens6
interface_mtu: 1500
linux_system_codename: xenial
+ loopback_device_size: 20
neutron:
compute:
bgp_vpn:
diff --git a/classes/cluster/virtual-mcp-pike-ovs/openstack/control.yml b/classes/cluster/virtual-mcp-pike-ovs/openstack/control.yml
index 4ab6709..1d044c0 100644
--- a/classes/cluster/virtual-mcp-pike-ovs/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-pike-ovs/openstack/control.yml
@@ -21,6 +21,7 @@
- system.nova.control.cluster
- system.neutron.control.openvswitch.cluster
- system.cinder.control.cluster
+- system.cinder.control.backend.lvm
- system.heat.server.cluster
- system.designate.server.cluster
- system.designate.server.backend.bind
@@ -136,6 +137,9 @@
novncproxy_port: 6080
vncproxy_url: http://${_param:cluster_vip_address}:6080
workers: 1
+ notification:
+ notify_on:
+ state_change: vm_and_task_state
manila:
common:
default_share_type: default
diff --git a/classes/cluster/virtual-mcp-pike-ovs/openstack/proxy.yml b/classes/cluster/virtual-mcp-pike-ovs/openstack/proxy.yml
index 2819d1e..83edc51 100644
--- a/classes/cluster/virtual-mcp-pike-ovs/openstack/proxy.yml
+++ b/classes/cluster/virtual-mcp-pike-ovs/openstack/proxy.yml
@@ -7,6 +7,7 @@
- cluster.virtual-mcp-pike-ovs
parameters:
_param:
+ cluster_public_host: ${_param:openstack_proxy_address}
nginx_proxy_ssl:
enabled: true
authority: ${_param:salt_minion_ca_authority}
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
index 7fcf421..0726fd1 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/openstack/control.yml
@@ -42,6 +42,7 @@
- system.galera.server.database.nova
- system.galera.server.database.designate
- system.heka.alarm.openstack_control
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.virtual-mcp11-contrail-nfv
parameters:
_param:
diff --git a/classes/cluster/virtual-mcp11-contrail/openstack/control.yml b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
index 485c5ab..15b8093 100755
--- a/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-contrail/openstack/control.yml
@@ -40,6 +40,7 @@
- system.galera.server.database.keystone
- system.galera.server.database.nova
- system.galera.server.database.designate
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.virtual-mcp11-contrail
parameters:
_param:
diff --git a/classes/cluster/virtual-mcp11-dvr/openstack/control.yml b/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
index ee9785b..efd9d9f 100644
--- a/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
+++ b/classes/cluster/virtual-mcp11-dvr/openstack/control.yml
@@ -33,6 +33,7 @@
- system.galera.server.database.heat
- system.galera.server.database.keystone
- system.galera.server.database.nova
+- system.keepalived.cluster.instance.stacklight_control_vip
- cluster.virtual-mcp11-dvr
parameters:
diff --git a/classes/cluster/virtual-offline-ssl/openstack/proxy.yml b/classes/cluster/virtual-offline-ssl/openstack/proxy.yml
index b1c9686..bea4384 100644
--- a/classes/cluster/virtual-offline-ssl/openstack/proxy.yml
+++ b/classes/cluster/virtual-offline-ssl/openstack/proxy.yml
@@ -7,6 +7,7 @@
- cluster.virtual-offline-ssl
parameters:
_param:
+ cluster_public_host: ${_param:openstack_proxy_address}
nginx_proxy_ssl:
enabled: true
authority: ${_param:salt_minion_ca_authority}
diff --git a/classes/system b/classes/system
index 00b52f8..8b772e1 160000
--- a/classes/system
+++ b/classes/system
@@ -1 +1 @@
-Subproject commit 00b52f8b45f69f9d76c08c550319251b10c08284
+Subproject commit 8b772e123bb9cddf93e8290ca2601bda2fcd6ed9
diff --git a/test/integration/cluster/01_salt_highstate_spec.rb b/test/integration/cluster/01_salt_highstate_spec.rb
new file mode 100644
index 0000000..7666571
--- /dev/null
+++ b/test/integration/cluster/01_salt_highstate_spec.rb
@@ -0,0 +1,11 @@
+
+describe command('salt-call pillar.items') do
+ its('exit_status') { should eq 0 }
+end
+
+# to enforce full highstate
+# once switched fully to new reclass
+#describe command('salt-call state.apply') do
+ #its('exit_status') { should eq 0 }
+ ##its('stdout') { should match (/Failed: 0/) }
+#end
diff --git a/test/integration/cluster/02_verify_minions_spec.rb b/test/integration/cluster/02_verify_minions_spec.rb
new file mode 100644
index 0000000..63becc0
--- /dev/null
+++ b/test/integration/cluster/02_verify_minions_spec.rb
@@ -0,0 +1,6 @@
+
+describe command('bash /srv/salt/bootstrap.sh') do
+ its('exit_status') { should eq 0 }
+ #its('stdout') { should match (/XCVDSGSG/) }
+end
+
diff --git a/verify.sh b/verify.sh
deleted file mode 100755
index 3b94176..0000000
--- a/verify.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/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 '/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