VOL-570 : Install Kubernetes in production and test modes
- Supports offline installation for k8s
- Configs and deploys voltha components
Change-Id: I29eb87c035cea1e86176bb2e30d36278760ece82
diff --git a/install/ansible/roles/voltha-k8s/tasks/deploy.yml b/install/ansible/roles/voltha-k8s/tasks/deploy.yml
new file mode 100644
index 0000000..91cc1ea
--- /dev/null
+++ b/install/ansible/roles/voltha-k8s/tasks/deploy.yml
@@ -0,0 +1,135 @@
+- name: "VOLT-HA Deploy | Add Namespace"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/namespace.yml
+ run_once: true
+
+# Ingress
+- name: "VOLT-HA Deploy | Start Ingress Controller"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/ingress
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for Default HTTP backend to be ready"
+ command: kubectl rollout status deployment/default-http-backend -w -n {{ voltha_namespace }}
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for Ingress Controller to be ready"
+ command: kubectl rollout status deployment/nginx-ingress-controller -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Zookeeper
+
+- name: "VOLT-HA Deploy | Start zookeeper"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/zookeeper.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for zookeeper to be ready"
+ command: kubectl rollout status statefulset/{{ item }} -w -n {{ voltha_namespace }}
+ with_items:
+ - zookeeper1
+ - zookeeper2
+ - zookeeper3
+ run_once: true
+
+# Kafka
+- name: "VOLT-HA Deploy | Start kafka"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/kafka.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for kafka to be ready"
+ command: kubectl rollout status statefulset/kafka -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Fluentd Config
+- name: "VOLT-HA Deploy | Add Fluentd Configuration"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/fluentd-config.yml
+ run_once: true
+
+# Fluentd
+- name: "VOLT-HA Deploy | Start fluentd"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/fluentd.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for fluentd to be ready"
+ command: kubectl rollout status deployment/{{ item }} -w -n {{ voltha_namespace }}
+ with_items:
+ - fluentdactv
+ - fluentdstby
+ run_once: true
+
+# Consul
+- name: "VOLT-HA Deploy | Start consul"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/consul.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for consul to be ready"
+ command: kubectl rollout status statefulset/consul -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Voltha Core (for consul)
+- name: "VOLT-HA Deploy | Start VOLT-HA core (for consul)"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/vcore_for_consul.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for VOLT-HA core (for consul) to be ready"
+ command: kubectl rollout status deployment/vcore -w -n {{ voltha_namespace }}
+ run_once: true
+
+# OFagent
+- name: "VOLT-HA Deploy | Start OpenFlow Agent"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/ofagent.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for OpenFlow Agent to be ready"
+ command: kubectl rollout status deployment/ofagent -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Envoy (for consul)
+- name: "VOLT-HA Deploy | Start Envoy (for consul)"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/envoy_for_consul.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for Envoy (for consul) to be ready"
+ command: kubectl rollout status deployment/voltha -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Voltha CLI
+- name: "VOLT-HA Deploy | Start VOLT-HA CLI"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/vcli.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for VOLT-HA CLI to be ready"
+ command: kubectl rollout status deployment/vcli -w -n {{ voltha_namespace }}
+ run_once: true
+
+# NETCONF
+- name: "VOLT-HA Deploy | Start NETCONF"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/netconf.yml
+ run_once: true
+
+- name: "VOLT-HA Deploy | Wait for NETCONF to be ready"
+ command: kubectl rollout status deployment/netconf -w -n {{ voltha_namespace }}
+ run_once: true
+
+# Grafana
+- name: "VOLT-HA Deploy | Start Grafana"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/grafana.yml
+ run_once: true
+ when: monitor_voltha_stats
+
+- name: "VOLT-HA Deploy | Wait for Grafana to be ready"
+ command: kubectl rollout status deployment/grafana -w -n {{ voltha_namespace }}
+ run_once: true
+ when: monitor_voltha_stats
+
+# Dashd and Shovel
+- name: "VOLT-HA Deploy | Start DASHD and SHOVEL"
+ command: kubectl apply -f {{ target_voltha_home }}/k8s/stats.yml
+ run_once: true
+ when: monitor_voltha_stats
+
+- name: "VOLT-HA Deploy | Wait for DASHD and SHOVEL to be ready"
+ command: kubectl rollout status deployment/{{ item }} -w -n {{ voltha_namespace }}
+ with_items:
+ - dashd
+ - shovel
+ run_once: true
+ when: monitor_voltha_stats