Enable Istio on IEC type2
[iec.git] / src / foundation / service_mesh / install_Istio.sh
1 #!/bin/bash
2 set -x
3
4 function wait_for {
5   # Execute in a subshell to prevent local variable override during recursion
6   (
7     local total_attempts=$1; shift
8     local cmdstr=$*
9     local sleep_time=2
10     echo -e "\n[wait_for] Waiting for cmd to return success: ${cmdstr}"
11     # shellcheck disable=SC2034
12     for attempt in $(seq "${total_attempts}"); do
13       echo "[wait_for] Attempt ${attempt}/${total_attempts%.*} for: ${cmdstr}"
14       # shellcheck disable=SC2015
15       eval "${cmdstr}" && echo "[wait_for] OK: ${cmdstr}" && return 0 || true
16       sleep "${sleep_time}"
17     done
18     echo "[wait_for] ERROR: Failed after max attempts: ${cmdstr}"
19     return 1
20   )
21 }
22
23
24 for i in Istio/init/crd*yaml; do kubectl apply -f $i; done
25
26 kubectl apply -f Istio/istio-demo-arm64.yaml
27
28 # Waiting for Istio ready
29 wait_for 100 'test $(kubectl get pods -n istio-system | grep -ce "Running") -eq 12'
30
31 #Apply the following ConfigMap to enable injection of Dikastes alongside Envoy.(injection ConfigMap)
32 kubectl apply -f Istio/istio-inject-configmap-1.1.7.yaml
33
34 #Enable the default namespace auto inject
35 kubectl label namespace default istio-injection=enabled --overwrite
36 kubectl get namespace -L istio-injection