Merge "Refactor parameters for k8s-aio-calico model."
diff --git a/.kitchen.yml b/.kitchen.yml
index 7df4724..f66b6bf 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -21,6 +21,7 @@
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:
@@ -28,8 +29,9 @@
export BOOTSTRAP=1;\n
export CLUSTER_NAME=<%= cluster %>;\n
export FORMULAS_SOURCE=pkg;\n
- export RECLASS_VERSION=dev;\n
+ export RECLASS_VERSION=develop;\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
diff --git a/classes/cluster/k8s-aio-calico/.env b/classes/cluster/k8s-aio-calico/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-aio-calico/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-aio-contrail/.env b/classes/cluster/k8s-aio-contrail/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-aio-contrail/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-calico-cloudprovider/.env b/classes/cluster/k8s-ha-calico-cloudprovider/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-cloudprovider/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-calico-syndic/.env b/classes/cluster/k8s-ha-calico-syndic/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico-syndic/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-calico/.env b/classes/cluster/k8s-ha-calico/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-ha-calico/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-calico/kubernetes/control.yml b/classes/cluster/k8s-ha-calico/kubernetes/control.yml
index 082d7ab..1b88da8 100644
--- a/classes/cluster/k8s-ha-calico/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/control.yml
@@ -41,6 +41,7 @@
addons:
dashboard:
enabled: ${_param:kubernetes_dashboard}
+ image: ${_param:kubernetes_dashboard_image}
helm:
enabled: ${_param:kubernetes_helm_enabled}
calico_policy:
@@ -51,6 +52,13 @@
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:
diff --git a/classes/cluster/k8s-ha-calico/kubernetes/init.yml b/classes/cluster/k8s-ha-calico/kubernetes/init.yml
index 25a2b52..c669373 100644
--- a/classes/cluster/k8s-ha-calico/kubernetes/init.yml
+++ b/classes/cluster/k8s-ha-calico/kubernetes/init.yml
@@ -25,17 +25,23 @@
kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.8-3
kubernetes_virtlet_image: mirantis/virtlet:latest
+ 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"
# 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
+ kubernetes_virtlet_enabled: false
# addresses and hostnames
kubernetes_internal_api_address: 10.254.0.1
diff --git a/classes/cluster/k8s-ha-contrail/.env b/classes/cluster/k8s-ha-contrail/.env
new file mode 100644
index 0000000..407e2d1
--- /dev/null
+++ b/classes/cluster/k8s-ha-contrail/.env
@@ -0,0 +1 @@
+EXTRA_FORMULAS="ntp"
diff --git a/classes/cluster/k8s-ha-contrail/kubernetes/control.yml b/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
index 250ae20..08760e2 100644
--- a/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/control.yml
@@ -27,6 +27,7 @@
addons:
dashboard:
enabled: ${_param:kubernetes_dashboard}
+ image: ${_param:kubernetes_dashboard_image}
helm:
enabled: ${_param:kubernetes_helm_enabled}
netchecker:
@@ -37,6 +38,13 @@
namespace: ${_param:kubernetes_addon_namespace}
enabled: ${_param:kubernetes_contrail_network_controller}
image: ${_param:kubernetes_contrail_network_controller_image}
+ 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:
diff --git a/classes/cluster/k8s-ha-contrail/kubernetes/init.yml b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
index 7a46cc0..822401b 100644
--- a/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
+++ b/classes/cluster/k8s-ha-contrail/kubernetes/init.yml
@@ -26,6 +26,11 @@
kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.7.8-3
kubernetes_virtlet_image: mirantis/virtlet:latest
+ 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"
@@ -35,6 +40,7 @@
# switches of addons
kubernetes_addon_namespace: kube-system
+ kubernetes_dns: true
kubernetes_dashboard: false
kubernetes_helm_enabled: true
kubernetes_netchecker_enabled: true
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
index 521071a..5430906 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/openstack/control.yml
@@ -108,10 +108,10 @@
rndc_host: ${_param:openstack_control_node03_address}
rndc_port: 953
rndc_key_file: /etc/designate/rndc.key
+ quota:
+ zones: ${_param:designate_quota_zones}
worker:
enabled: ${_param:designate_worker_enabled}
- quota:
- zones: ${_param:designate_quota_zones}
glance:
server:
storage:
diff --git a/classes/cluster/virtual-mcp11-aio/openstack/init.yml b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
index f1b70a8..03d7636 100755
--- a/classes/cluster/virtual-mcp11-aio/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
@@ -121,7 +121,7 @@
openstack_public_neutron_subnet_allocation_start: 192.168.130.10
openstack_public_neutron_subnet_allocation_end: 192.168.130.254
barbican_simple_crypto_kek: YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=
- barbican_integration_enabled: True
+ barbican_integration_enabled: False
galera:
master:
members: ~
@@ -147,7 +147,7 @@
nova:
compute:
barbican:
- enable: ${_param:barbican_integration_enabled}
+ enabled: ${_param:barbican_integration_enabled}
vncproxy_url: http://${_param:single_address}:6080
network:
user: neutron
diff --git a/scripts/bootstrap_all.sh b/scripts/bootstrap_all.sh
index 445464e..2219d00 100755
--- a/scripts/bootstrap_all.sh
+++ b/scripts/bootstrap_all.sh
@@ -5,12 +5,16 @@
K8S_BOOTSTRAP=$(salt -C 'I@kubernetes:master' test.ping 1>/dev/null 2>&1 && echo true)
OPENSTACK_BOOTSTRAP=$(salt -C 'I@nova:controller' test.ping 1>/dev/null 2>&1 && echo true)
OPENCONTRAIL_BOOTSTRAP=$(salt -C 'I@opencontrail:control' test.ping 1>/dev/null 2>&1 && echo true)
+OSS_BOOTSTRAP=$(salt -C 'I@devops_portal:config' test.ping 1>/dev/null 2>&1 && echo true)
STACKLIGHTV2_BOOTSTRAP=$(salt -C 'I@prometheus:server' test.ping 1>/dev/null 2>&1 && echo true)
"$CWD"/config_verify.sh
"$CWD"/infra_install.sh
"$CWD"/core_services_install.sh
-if [[ "$STACKLIGHTV2_BOOTSTRAP" == "true" ]]; then
+if [[ "$OSS_BOOTSTRAP" == "true" ]]; then
+ "$CWD"/oss_install.sh infra
+fi
+if [[ "$STACKLIGHTV2_BOOTSTRAP" == "true" ]] || [[ "$OSS_BOOTSTRAP" == "true" ]]; then
"$CWD"/docker_swarm_install.sh
fi
if [[ "$K8S_BOOTSTRAP" == "true" ]]; then
@@ -30,3 +34,6 @@
if [[ "$STACKLIGHTV2_BOOTSTRAP" == "true" ]]; then
"$CWD"/stacklightv2_infra_install.sh
fi
+if [[ "$OSS_BOOTSTRAP" == "true" ]]; then
+ "$CWD"/oss_install.sh services
+fi
diff --git a/scripts/oss_install.sh b/scripts/oss_install.sh
new file mode 100755
index 0000000..2c3211f
--- /dev/null
+++ b/scripts/oss_install.sh
@@ -0,0 +1,40 @@
+#!/bin/bash -x
+exec > >(tee -i /tmp/"$(basename "$0" .sh)"_"$(date '+%Y-%m-%d_%H-%M-%S')".log) 2>&1
+
+install_infra () {
+ # DOP config and rundeck files should be created before container start
+ salt -C 'I@devops_portal:config' state.sls devops_portal.config
+ salt -C 'I@rundeck:server' state.sls rundeck.server
+}
+
+install_services () {
+ # Up containers
+ salt -C 'I@docker:swarm:role:master' state.sls docker.client
+
+ # XXX: first run may fails
+ salt -C 'I@postgresql:client' cmd.run 'while true; do if docker service logs postgresql_db | grep "ready to accept"; then break; else sleep 5; fi; done'
+ for i in $(seq 2); do
+ salt -C 'I@postgresql:client' state.sls postgresql.client
+ sleep 10
+ done
+
+ # Rundeck client, jobs, and etc
+ salt -C 'I@rundeck:client' cmd.run 'while true; do curl -sf 172.16.10.254:4440 >/dev/null && break; done'
+ salt -C 'I@rundeck:client' state.sls rundeck.client
+
+ # ElasticSearch indicies
+ salt -C 'I@elasticsearch:client' cmd.run 'while true; do curl -sf 172.16.10.254:9200 >/dev/null && break; done'
+ for i in $(seq 3); do
+ salt -C 'I@elasticsearch:client' state.sls elasticsearch.client
+ sleep 10
+ done
+}
+
+case "$1" in
+ "infra")
+ install_infra
+ ;;
+ "services")
+ install_services
+ ;;
+esac