Add virtlet deploy step
Added fixture, manager and step for deploy virtlet.
Added test for deploy virtlet.
Change-Id: I63a2c4dcd95ba78af60b610a9ae621a784d87fd8
Reviewed-on: https://review.gerrithub.io/362146
Reviewed-by: Sergii Golovatiuk <holser@gmail.com>
Reviewed-by: Tatyanka Leontovich <tleontovich@mirantis.com>
Reviewed-by: Dennis Dmitriev <dis.xcom@gmail.com>
Tested-by: Dennis Dmitriev <dis.xcom@gmail.com>
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-calico/virtlet.yaml b/tcp_tests/templates/virtual-mcp11-k8s-calico/virtlet.yaml
new file mode 100644
index 0000000..4f2abb3
--- /dev/null
+++ b/tcp_tests/templates/virtual-mcp11-k8s-calico/virtlet.yaml
@@ -0,0 +1,72 @@
+{% from 'virtual-mcp11-k8s-calico/underlay.yaml' import HOSTNAME_CTL02 with context %}
+
+# Clone virtlet project from git to the ctl01 node for start virtlet pod from yaml
+- description: Cloning virtlet project on ctl02
+ cmd: git clone -b master https://github.com/Mirantis/virtlet.git
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Add 'virtlet' label for ctl02
+- description: Adding virtlet label for ctl02
+ cmd: kubectl label node ctl02 extraRuntime=virtlet
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Add extra parameter for kubelet service on virtlet node
+- description: Adding extra parameter for kubelet service on virtlet node
+ cmd: sed -i.bak "s|^\"|--feature-gates=DynamicKubeletConfig=true \\\\\\n\"|" /etc/default/kubelet
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Restart kubelet and kube-api services on virtlet node
+- description: Restart kubelet and kube-api services on ctl02
+ cmd: systemctl restart kube-apiserver kubelet
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Create virtlet pod
+- description: Creating virtlet pod
+ cmd: kubectl create -f virtlet/deploy/virtlet-ds.yaml
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Virtlet pod will likely stay in Init:0/1 state because there's a problem
+# with automatic kubelet restart after applying the configmap.
+# As of now, you'll need to restart kubelet after ~30-60 seconds.
+- description: Restarting kubelet service on virtlet node
+ cmd: |
+ COUNTER=0
+ while [[ $(kubectl get pods -n kube-system | awk '/virtlet/{print $3}') != 'Init:0/1' ]]; do
+ COUNTER=$((COUNTER+1))
+ sleep 5
+ if [[ $COUNTER -eq 36 ]]; then
+ echo "We havenot Init:0/1 state for virtlet pod. Aborting.";
+ exit 1
+ fi
+ done
+ sleep 60
+ systemctl restart kubelet
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false
+
+# Wait Active state for virtlet pod
+- description: Waiting 'Active' state for virtlet pod
+ cmd: |
+ COUNTER=0
+ while [[ $(kubectl get pods -n kube-system | awk '/virtlet/{print $3}') != 'Running' ]]; do
+ COUNTER=$((COUNTER+1))
+ sleep 5
+ if [[ $COUNTER -eq 36 ]]; then
+ echo "We havenot Active state for virtlet pod. Aborting.";
+ exit 1
+ fi
+ done
+ node_name: {{ HOSTNAME_CTL02 }}
+ retry: {count: 1, delay: 1}
+ skip_fail: false