#!/bin/bash
# Copyright 2019 AT&T Intellectual Property. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

PRIVATE_KEY=$1
KUBECONFIG=$2
NFS_IP=$3
ADMIN_USER=$4

export KUBECONFIG=$KUBECONFIG

echo "setting up nfs on AKS nodes"
kubectl create configmap aks-key --from-file=$PRIVATE_KEY

for IPADDRESS in `kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'`; do 

cat  <<EOF | kubectl create -f -
apiVersion: v1
kind: Pod
metadata:
  generateName: configure-nfs-
spec:
  containers:
  - name: configure-nfs
    image: alpine
    env:
    - name: IP_ADDRESS
      value: "$IPADDRESS"
    - name: NFS_IP
      value: "$NFS_IP"
    volumeMounts:
    - name: aks-key
      mountPath: /aks-key
    command: ["/bin/sh"]
    args:
      - -c
      - apk update && \
        apk add openssh-client && \
        sh -c "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /aks-key/id_rsa $ADMIN_USER@\$IP_ADDRESS \"sudo apt-get update; sudo apt-get install nfs-common; sudo rm -rf /dockerdata-nfs; sudo mkdir /dockerdata-nfs; sudo mount -t nfs \$NFS_IP:/dockerdata-nfs /dockerdata-nfs/\""
  restartPolicy: Never
  volumes:
    - name: aks-key
      configMap:
        name: aks-key
        defaultMode: 0600
EOF

done

# TODO
# Add actual pod status check here
echo "sleeping 30 seconds"
sleep 30

kubectl delete configmap aks-key
kubectl get pods | grep configure-nfs | while read line; do
  pod=`echo $line | awk '{print $1}'`
  kubectl delete pod $pod
done
