added todo
This commit is contained in:
parent
bae55a54f4
commit
addd3ea953
2 changed files with 45 additions and 36 deletions
|
|
@ -30,3 +30,9 @@ kubectl delete -f pod.yaml
|
||||||
kubectl delete -f rbac.yaml
|
kubectl delete -f rbac.yaml
|
||||||
kubectl delete -f crd.yaml
|
kubectl delete -f crd.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
+ check all namespaces for `gw` and `vs`
|
||||||
|
* kucectl no stdout
|
||||||
|
* explore https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ spec:
|
||||||
action: "$6"
|
action: "$6"
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
getmap() { kubectl get refmap $1 -ojson; }
|
getmap() { kubectl get refmap "$1" -ojson; }
|
||||||
delmap() { kubectl delete refmap $1; }
|
delmap() { kubectl delete refmap "$1"; }
|
||||||
|
|
||||||
mkgw() {
|
mkgw() {
|
||||||
kubectl apply -f - <<EOF
|
kubectl apply -f - <<EOF
|
||||||
|
|
@ -53,7 +53,7 @@ spec:
|
||||||
hosts: ["$3"]
|
hosts: ["$3"]
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
delgw() { kubectl -n $2 delete gateway $1; }
|
delgw() { kubectl -n "$2" delete gateway "$1"; }
|
||||||
|
|
||||||
mkvs() {
|
mkvs() {
|
||||||
kubectl apply -f - <<EOF
|
kubectl apply -f - <<EOF
|
||||||
|
|
@ -101,10 +101,10 @@ addvs() {
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
kubectl -n $2 get virtualservice $1 -ojson | jq ".spec.http |= [${insert}] + ." | kubectl -n $2 apply -f -
|
kubectl -n "$2" get virtualservice "$1" -ojson | jq ".spec.http |= [${insert}] + ." | kubectl -n "$2" apply -f -
|
||||||
}
|
}
|
||||||
clearvs() { kubectl -n $2 get virtualservice $1 -ojson | jq -r '.spec.http |= .[1:]' | kubectl -n $2 apply -f -; }
|
clearvs() { kubectl -n "$2" get virtualservice "$1" -ojson | jq -r '.spec.http |= .[1:]' | kubectl -n "$2" apply -f -; }
|
||||||
delvs() { kubectl -n $2 delete virtualservice $1; }
|
delvs() { kubectl -n "$2" delete virtualservice "$1"; }
|
||||||
|
|
||||||
mkdr() {
|
mkdr() {
|
||||||
kubectl apply -f - <<EOF
|
kubectl apply -f - <<EOF
|
||||||
|
|
@ -120,7 +120,50 @@ spec:
|
||||||
mode: DISABLE
|
mode: DISABLE
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
deldr() { kubectl -n $2 delete destinationrule $1; }
|
deldr() { kubectl -n "$2" delete destinationrule "$1"; }
|
||||||
|
|
||||||
|
add() {
|
||||||
|
res=$1
|
||||||
|
ns=$2
|
||||||
|
tmp=$(mktemp)
|
||||||
|
kubectl -n ${ns} get ingress ${res} -ojson >${tmp} || return 0
|
||||||
|
host=$(jq -r '.spec.rules[0].host' ${tmp})
|
||||||
|
svcName=$(jq -r '.spec.rules[0].http.paths[0].backend.serviceName' ${tmp})
|
||||||
|
svcPort=$(jq -r '.spec.rules[0].http.paths[0].backend.servicePort' ${tmp})
|
||||||
|
path=$(jq -r '.spec.rules[0].http.paths[0].path' ${tmp})
|
||||||
|
rm -f ${tmp}
|
||||||
|
|
||||||
|
gwName=
|
||||||
|
for gw in $(kubectl -n ${ns} get gateway -ojson | jq -r '.items[] | .metadata.name'); do
|
||||||
|
contains=$(kubectl -n ${ns} get gateway ${gw} -ojson | jq -r ".spec.servers[0].hosts | contains([\"${host}\"])")
|
||||||
|
[[ "${contains}" == "true" ]] && { gwName=${gw}; break; }
|
||||||
|
done
|
||||||
|
if [[ "${gwName}" == "" ]]; then
|
||||||
|
gwName=${res}
|
||||||
|
gwAction=delete
|
||||||
|
else
|
||||||
|
gwAction=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
vsName=
|
||||||
|
vsAction=
|
||||||
|
for vs in $(kubectl -n ${ns} get virtualservice -ojson | jq -r '.items[] | .metadata.name'); do
|
||||||
|
contains=$(kubectl -n ${ns} get virtualservice ${vs} -ojson | jq -r ".spec.hosts | contains([\"${host}\"])")
|
||||||
|
[[ "${contains}" == "true" ]] && { vsName=${vs}; break; }
|
||||||
|
done
|
||||||
|
if [[ "${vsName}" == "" ]]; then
|
||||||
|
vsName=${res}
|
||||||
|
vsAction=delete
|
||||||
|
else
|
||||||
|
vsAction=clear
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkmap "${res}" "${ns}" "${gwName}" "${gwAction}" "${vsName}" "${vsAction}"
|
||||||
|
[[ "${gwAction}" == "delete" ]] && mkgw "${gwName}" "${ns}" "${host}"
|
||||||
|
[[ "${vsAction}" == "delete" ]] && mkvs "${vsName}" "${ns}" "${host}" "${path}" "${svcName}" "${svcPort}" \
|
||||||
|
|| addvs "${vsName}" "${ns}" "${path}" "${svcName}" "${svcPort}"
|
||||||
|
mkdr "${res}" "${ns}" "${svcName}"
|
||||||
|
}
|
||||||
|
|
||||||
delete() {
|
delete() {
|
||||||
tmp=$(mktemp)
|
tmp=$(mktemp)
|
||||||
|
|
@ -133,7 +176,7 @@ delete() {
|
||||||
rm -f ${tmp}
|
rm -f ${tmp}
|
||||||
if [[ "${gwName}" != "" ]]; then
|
if [[ "${gwName}" != "" ]]; then
|
||||||
case ${gwAction} in
|
case ${gwAction} in
|
||||||
delete) delgw "${gwName}" "${ns}" ;;
|
delete) delgw "${gwName}" "${ns}" ;;
|
||||||
none|*) ;;
|
none|*) ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
@ -146,43 +189,3 @@ delete() {
|
||||||
deldr "$1" "${ns}"
|
deldr "$1" "${ns}"
|
||||||
delmap "$1"
|
delmap "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
add() {
|
|
||||||
res=$1
|
|
||||||
ns=$2
|
|
||||||
tmp=$(mktemp)
|
|
||||||
kubectl -n ${ns} get ingress ${res} -ojson >${tmp} || return 0
|
|
||||||
host=$(jq -r '.spec.rules[0].host' ${tmp})
|
|
||||||
svcName=$(jq -r '.spec.rules[0].http.paths[0].backend.serviceName' ${tmp})
|
|
||||||
svcPort=$(jq -r '.spec.rules[0].http.paths[0].backend.servicePort' ${tmp})
|
|
||||||
path=$(jq -r '.spec.rules[0].http.paths[0].path' ${tmp})
|
|
||||||
rm -f ${tmp}
|
|
||||||
gwName=
|
|
||||||
for gw in $(kubectl -n ${ns} get gateway -ojson | jq -r '.items[] | .metadata.name'); do
|
|
||||||
contains=$(kubectl -n ${ns} get gateway ${gw} -ojson | jq -r ".spec.servers[0].hosts | contains([\"${host}\"])")
|
|
||||||
[[ "${contains}" == "true" ]] && { gwName=${gw}; break; }
|
|
||||||
done
|
|
||||||
if [[ "${gwName}" == "" ]]; then
|
|
||||||
gwName=${res}
|
|
||||||
mkgw "${gwName}" "${ns}" "${host}"
|
|
||||||
gwAction=delete
|
|
||||||
else
|
|
||||||
gwAction=none
|
|
||||||
fi
|
|
||||||
vsName=
|
|
||||||
vsAction=
|
|
||||||
for vs in $(kubectl -n ${ns} get virtualservice -ojson | jq -r '.items[] | .metadata.name'); do
|
|
||||||
contains=$(kubectl -n ${ns} get virtualservice ${vs} -ojson | jq -r ".spec.hosts | contains([\"${host}\"])")
|
|
||||||
[[ "${contains}" == "true" ]] && { vsName=${vs}; break; }
|
|
||||||
done
|
|
||||||
if [[ "${vsName}" == "" ]]; then
|
|
||||||
vsName=${res}
|
|
||||||
mkvs "${vsName}" "${ns}" "${host}" "${path}" "${svcName}" "${svcPort}"
|
|
||||||
vsAction=delete
|
|
||||||
else
|
|
||||||
addvs "${vsName}" "${ns}" "${path}" "${svcName}" "${svcPort}"
|
|
||||||
vsAction=clear
|
|
||||||
fi
|
|
||||||
mkdr "${res}" "${ns}" "${svcName}"
|
|
||||||
mkmap "${res}" "${ns}" "${gwName}" "${gwAction}" "${vsName}" "${vsAction}"
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue