#!/usr/bin/env bash

# Generate kube-config file based on service account
mkdir -p /opt/cms/data/.kube
CLI_KUBECONFIG=/opt/cms/data/.kube/config

SERVICE_ACCOUNT_PATH=/var/run/secrets/kubernetes.io/serviceaccount
KUBE_CA_FILE=${KUBE_CA_FILE:-$SERVICE_ACCOUNT_PATH/ca.crt}

if [[ -f $KUBE_CA_FILE ]];then
  SERVICEACCOUNT_TOKEN=$(cat $SERVICE_ACCOUNT_PATH/token)
  TLS_CFG="certificate-authority-data: $(cat $KUBE_CA_FILE | base64 | tr -d '\n')"

  #KUBERNETES_SERVICE_HOST="kubernetes.default.svc.cluster.local"
  KUBERNETES_SERVICE_HOST="kubernetes.default.svc.${K8S_CLUSTER_DOMAIN:-cluster.local}"
  KUBERNETES_SERVICE_PORT="443"

  touch $CLI_KUBECONFIG
  chmod 600 $CLI_KUBECONFIG
  
  cat > $CLI_KUBECONFIG <<EOF
apiVersion: v1
kind: Config
clusters:
- name: local
  cluster:
    server: ${KUBERNETES_SERVICE_PROTOCOL:-https}://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}
    $TLS_CFG
users:
- name: cms-installer
  user:
    token: "${SERVICEACCOUNT_TOKEN}"
contexts:
- name: cms-installer-context
  context:
    cluster: local
    user: cms-installer
current-context: cms-installer-context
EOF

fi

# Initilize the cms-installer scripts
#\cp -r /home/source/* /opt/cms
mkdir -p /opt/cms/data/license
mkdir -p /opt/cms/data/ssl/peer
mkdir -p /opt/cms/data/charts
mkdir -p /opt/cms/data/logs
mkdir -p /opt/cms/data/ConfigBundle
mkdir -p /opt/cms/data/packages
mkdir -p /opt/cms/data/packages-prepack
\cp -a /home/source/packages/* /opt/cms/data/packages
\cp -a /home/source/prepack/packages/* /opt/cms/data/packages-prepack
\cp -r /home/source/prepack/ConfigBundle/* /opt/cms/data/ConfigBundle

# For Terraform scripts
# Remove all old tf files and copy all new files from image to the PV folder
if [[ -d "/home/source/tf-aks" ]];then
  mkdir -p /opt/cms/data/tf-aks
  rm -f /opt/cms/data/tf-aks/*.tf
  \cp -a /home/source/tf-aks/* /opt/cms/data/tf-aks
fi
