| #! /bin/bash |
| |
| help() { |
| echo "$0: Get Started" |
| echo "Usage: $0 -o option" |
| echo "Liminal available options: " |
| echo "clone" |
| echo "installation " |
| echo "deployment" |
| } |
| |
| if [[ "$#" -lt 2 ]]; then |
| help |
| exit |
| fi |
| |
| # Arguments processing |
| while getopts ":o:" opt; do #installation, deployment |
| case $opt in |
| o) |
| option=$OPTARG |
| case $option in |
| clone) |
| ACTION="clone" |
| ;; |
| installation) |
| ACTION="installation" |
| ;; |
| deployment) |
| ACTION="deployment" |
| ;; |
| esac |
| esac |
| done |
| |
| mount_efs() { |
| EFS_ID=$1 |
| echo "The EFS_ID is: ${EFS_ID}" |
| |
| echo "Create /mnt/efs" |
| mkdir /mnt/efs |
| |
| echo "Mount the /mnt/efs" |
| sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport ${EFS_ID}:/ /mnt/efs |
| } |
| |
| install_liminal() { |
| echo "Installing liminal on Airflow components" |
| docker ps | grep k8s_airflow | awk '{print $1}' | xargs -I {} docker exec {} bash -c 'pip install apache-liminal' |
| |
| echo "Installing liminal locally" |
| pip install apache-liminal |
| } |
| |
| deploy_yaml() { |
| echo 'Find the the mounted path of the Airflow' |
| airflow_path=$(find /mnt/efs/ -name "liminal_home") |
| echo "The mounted Airflow path is: $airflow_path" |
| |
| echo 'Export the liminal home' |
| export LIMINAL_HOME=${airflow_path} |
| |
| liminal deploy --path "incubator-liminal/examples/liminal-getting-started" |
| } |
| |
| clone() { |
| echo 'Cloning incubator-liminal' |
| git clone https://github.com/apache/incubator-liminal.git |
| } |
| |
| case $ACTION in |
| clone) |
| clone |
| exit 0 |
| ;; |
| installation) |
| read -r -p "Please enter EFS ID: " EFS_ID |
| mount_efs $EFS_ID |
| install_liminal |
| exit 0 |
| ;; |
| deployment) |
| deploy_yaml |
| exit 0 |
| ;; |
| *) |
| help |
| exit |
| ;; |
| esac |