Merge "[COMMON] Add custom certs into AAF truststore"
[oom.git] / kubernetes / contrib / dns-server-for-vhost-ingress-testing / deploy_dns.sh
index a78bc07..1a75bd7 100755 (executable)
@@ -23,9 +23,12 @@ SPATH="$( dirname "$( which "$0" )" )"
 
 usage() {
 cat << ==usage
-$0 [cluster_domain] [helm_chart_args ...]
+$0 [cluster_domain] [lb_ip] [helm_chart_args] ...
        [cluster_domain] Default value simpledemo.onap.org
-       [helm_chart_args...] Optional arguments passed to helm install command
+       [lb_ip] Default value LoadBalancer IP
+       [helm_chart_args] ... Optional arguments passed to helm install command
+$0 --help This message
+$0 --info Display howto configure target machine
 ==usage
 }
 
@@ -42,7 +45,31 @@ Extra DNS server already deployed:
 ==infodeploy
 }
 
+
+list_node_with_external_addrs()
+{
+       local WORKER_NODES=$(kubectl get no -l node-role.kubernetes.io/worker=true -o jsonpath='{.items..metadata.name}')
+       for worker in $WORKER_NODES; do
+               local external_ip=$(kubectl get no $worker  -o jsonpath='{.metadata.annotations.rke\.cattle\.io/external-ip }')
+               local internal_ip=$(kubectl get no $worker  -o jsonpath='{.metadata.annotations.rke\.cattle\.io/internal-ip }')
+               if [ $internal_ip != $external_ip ]; then
+                       echo $external_ip
+                       break
+               fi
+       done
+}
+
+ingress_controller_ip() {
+       local metal_ns=$(kubectl get ns --no-headers --output=custom-columns=NAME:metadata.name |grep metallb-system)
+       if [ -z $metal_ns ]; then
+               echo $CLUSTER_IP
+       else
+               list_node_with_external_addrs
+       fi
+}
+
 deploy() {
+       local ingress_ip=$(ingress_controller_ip)
        pushd "$SPATH/bind9dns" > /dev/null
        if [ $# -eq 0 ]; then
                local cl_domain="simpledemo.onap.org"
@@ -50,13 +77,19 @@ deploy() {
                local cl_domain=$1
                shift
        fi
-       helm install . --set dnsconf.wildcard="$cl_domain=$CLUSTER_IP" $@
+       if [ $# -ne 0 ]; then
+               ingress_ip=$1
+               shift
+       fi
+       helm install . --set dnsconf.wildcard="$cl_domain=$ingress_ip" $@
        popd > /dev/null
        target_machine_notice_info
 }
 
-if [[ $# -eq 1 ]] && [[ $1 == "-h" || $1 == "--help" ]]; then
+if [[ $# -eq 1 ]] && [[ $1 = "-h" || $1 = "--help" ]]; then
        usage
+elif [[ $# -eq 1 ]] && [[ $1 = "--info" ]]; then
+       target_machine_notice_info
 else
        deploy $@
 fi