From addd3ea953b91fbd90608937b524de79e3348e68 Mon Sep 17 00:00:00 2001 From: ston1th Date: Mon, 12 Aug 2019 23:22:44 +0200 Subject: [PATCH] added todo --- testapp/certman-istio-operator/README.md | 6 ++ .../app/hooks/common/functions.sh | 99 ++++++++++--------- 2 files changed, 57 insertions(+), 48 deletions(-) diff --git a/testapp/certman-istio-operator/README.md b/testapp/certman-istio-operator/README.md index 1def82b..49fb7d6 100644 --- a/testapp/certman-istio-operator/README.md +++ b/testapp/certman-istio-operator/README.md @@ -30,3 +30,9 @@ kubectl delete -f pod.yaml kubectl delete -f rbac.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/ diff --git a/testapp/certman-istio-operator/app/hooks/common/functions.sh b/testapp/certman-istio-operator/app/hooks/common/functions.sh index 812ab1d..1f7eb37 100644 --- a/testapp/certman-istio-operator/app/hooks/common/functions.sh +++ b/testapp/certman-istio-operator/app/hooks/common/functions.sh @@ -32,8 +32,8 @@ spec: action: "$6" EOF } -getmap() { kubectl get refmap $1 -ojson; } -delmap() { kubectl delete refmap $1; } +getmap() { kubectl get refmap "$1" -ojson; } +delmap() { kubectl delete refmap "$1"; } mkgw() { kubectl apply -f - <${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() { tmp=$(mktemp) @@ -133,7 +176,7 @@ delete() { rm -f ${tmp} if [[ "${gwName}" != "" ]]; then case ${gwAction} in - delete) delgw "${gwName}" "${ns}" ;; + delete) delgw "${gwName}" "${ns}" ;; none|*) ;; esac fi @@ -146,43 +189,3 @@ delete() { deldr "$1" "${ns}" 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}" -}