#!/bin/bash # SPDX-license-identifier: Apache-2.0 ############################################################################## # Copyright (c) 2018 # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -o errexit set -o nounset set -o pipefail apache_pod_name=apachetwin nginx_pod_name=nginxtwin cat << APACHEPOD > $HOME/apache-pod.yaml apiVersion: v1 kind: Pod metadata: name: $apache_pod_name labels: name: webserver spec: containers: - name: apachetwin image: "busybox" command: ["top"] stdin: true tty: true APACHEPOD cat << NGINXPOD > $HOME/nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: $nginx_pod_name labels: name: webserver spec: containers: - name: nginxtwin image: "busybox" command: ["top"] stdin: true tty: true NGINXPOD cat << APACHEEW > $HOME/apache-e-w.yaml apiVersion: v1 kind: Service metadata: labels: name: apacheservice role: service name: apacheservice spec: ports: - port: 8800 targetPort: 80 protocol: TCP name: tcp selector: name: webserver APACHEEW cat << APACHENS > $HOME/apache-n-s.yaml apiVersion: v1 kind: Service metadata: labels: name: apacheexternal role: service name: apacheexternal spec: ports: - port: 8800 targetPort: 80 protocol: TCP name: tcp selector: name: webserver type: NodePort APACHENS if $(kubectl version &>/dev/null); then kubectl apply -f $HOME/apache-e-w.yaml kubectl apply -f $HOME/apache-n-s.yaml kubectl delete pod $apache_pod_name --ignore-not-found=true --now kubectl delete pod $nginx_pod_name --ignore-not-found=true --now while kubectl get pod $apache_pod_name &>/dev/null; do sleep 5 done while kubectl get pod $nginx_pod_name &>/dev/null; do sleep 5 done kubectl create -f $HOME/apache-pod.yaml kubectl create -f $HOME/nginx-pod.yaml status_phase="" while [[ $status_phase != "Running" ]]; do new_phase=$(kubectl get pods $apache_pod_name | awk 'NR==2{print $3}') if [[ $new_phase != $status_phase ]]; then echo "$(date +%H:%M:%S) - $new_phase" status_phase=$new_phase fi if [[ $new_phase == "Err"* ]]; then exit 1 fi done status_phase="" while [[ $status_phase != "Running" ]]; do new_phase=$(kubectl get pods $nginx_pod_name | awk 'NR==2{print $3}') if [[ $new_phase != $status_phase ]]; then echo "$(date +%H:%M:%S) - $new_phase" status_phase=$new_phase fi if [[ $new_phase == "Err"* ]]; then exit 1 fi done apache_ovn=$(kubectl get pod $apache_pod_name -o jsonpath="{.metadata.annotations.ovn}") nginx_ovn=$(kubectl get pod $nginx_pod_name -o jsonpath="{.metadata.annotations.ovn}") echo $apache_ovn if [[ $apache_ovn != *"\"ip_address\":\"11.11."* ]]; then exit 1 fi echo $nginx_ovn if [[ $nginx_ovn != *"\"ip_address\":\"11.11."* ]]; then exit 1 fi fi