4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / deploy_test.sh SH
#!/bin/bash

source istio_versions.sh

echo "creating namespaces ns-a and ns-b..."
kubectl apply -f manifests/ns.yaml

echo "deploying istio ${ISTIO_VERSION}"
./istioctl-${ISTIO_VERSION} install -yf manifests/istio-profile.yaml

echo "generating a self signed cert"
./mkcert -cert-file foo.com.crt -key-file foo.com.key foo.com

echo "installing the self signed cert into ns-a ONLY!"
kubectl create secret tls foo-dot-com --key=foo.com.key --cert=foo.com.crt --dry-run=client -oyaml -n ns-a > manifests/a/cert.yaml

echo "deploy test apps into ns-a"
kubectl apply -f manifests/a/

echo "deploy test apps into ns-b"
kubectl apply -f manifests/b/

namespaces="a b"
for ns in ${namespaces}; do
  echo "waiting for gateway-${ns} loadbalancer to become ready"
  max_retries=10
  current_try=0
  while true; do
    if [[ "${current_try}" -gt "${max_retries}" ]]; then
      echo "max retries exceeded while waiting for gateway-${ns} load balancer to obtain an IP, bailing."
      exit 1
    fi
    ip=$(kubectl get svc gateway-${ns} -n ns-${ns} -ojsonpath='{..ip}')
    if [[ ${ip} != "" ]]; then
      echo "load balancer for gateway-${ns} is ready"
      break
    else
      current_try=$((current_try+1))
      sleep 3
    fi
  done
done