blob: 740eb0a9edb420bdb480df0b68877d6e3e7e633f [file] [log] [blame]
#! /bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
help() {
echo "$0: Get Started"
echo "Usage: $0 -o option"
echo "Liminal available options:"
echo "install"
echo "build"
echo "deploy"
}
if [[ "$#" -lt 2 ]]; then
help
exit
fi
# Arguments processing
while getopts ":o:" opt; do #install, build, deploy
case $opt in
o)
option=$OPTARG
case $option in
install)
ACTION="install"
;;
build)
ACTION="build"
;;
deploy)
ACTION="deploy"
;;
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() {
DEPLOY_PATH=$1
echo "The DEPLOY_PATH is: ${DEPLOY_PATH}"
echo 'Export the liminal home'
export LIMINAL_HOME=$(find /mnt/efs/ -name "liminal_home")
liminal deploy --path "${DEPLOY_PATH}"
}
build() {
BUILD_PATH=$1
echo "The BUILD_PATH is: ${BUILD_PATH}"
liminal build --path "${BUILD_PATH}"
}
case $ACTION in
install)
read -r -p "Please enter the EFS ID: " EFS_ID
mount_efs $EFS_ID
install_liminal
exit 0
;;
build)
read -r -p "Please enter the path to the liminal project: " BUILD_PATH
build $BUILD_PATH
exit 0
;;
deploy)
read -r -p "Please enter the liminal yaml path: " DEPLOY_PATH
deploy_yaml $DEPLOY_PATH
exit 0
;;
*)
help
exit
;;
esac