blob: 95d216bf0f568ee8091121084fb3454dbc05c859 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/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
|