142 lines
3.9 KiB
Bash
Executable File
142 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
############################################################
|
|
# Decription: Preinst linux GMo cloned server from VMWare WS
|
|
# Author: Gilles Mouchet (gilles.mouchet@gmail.com)
|
|
# Creation Date: 07-Apr-2024
|
|
# Version: 1.0
|
|
#
|
|
# V1.0 - 07-Apr-2024 - GMo
|
|
# Added
|
|
# - Creation of script from scratch
|
|
#
|
|
############################################################
|
|
|
|
version="1.0"
|
|
|
|
usage() {
|
|
cat << EOF
|
|
Usage: ./deploy.sh options
|
|
Deploy application on kubernetes
|
|
Options:
|
|
-n namespace
|
|
-k kubernetes system (k3s or k8s)
|
|
-h display this help text
|
|
-v version
|
|
EOF
|
|
}
|
|
|
|
options=$(getopt n:k:hv "$*")
|
|
[ $? -eq 0 ] || {
|
|
echo "Incorrect options provided"
|
|
usage
|
|
exit 1
|
|
}
|
|
|
|
eval set -- "$options"
|
|
no_args="true"
|
|
while true; do
|
|
case "$1" in
|
|
-k)
|
|
shift
|
|
case "$1" in
|
|
k3s)
|
|
kube_sys=$1
|
|
;;
|
|
k8s)
|
|
kube_sys=$1
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
;;
|
|
-n)
|
|
shift
|
|
ns=$1
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
-h)
|
|
usage
|
|
exit
|
|
;;
|
|
-v)
|
|
cat << EOF
|
|
deploy.sh $version
|
|
Copyright (C) 2021-`date +"%Y"` - GMo Free Software.
|
|
Written by Gilles Mouchet (gilles.mouchet@gmail.com)
|
|
EOF
|
|
exit
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
no_args="false"
|
|
done
|
|
|
|
if [ -z "${kube_sys}" ] || [ -z "${ns}" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
# increment minor version at each deploy
|
|
# get Chart verion
|
|
#chart_version=$(grep appVersion helm/Chart.yaml | cut -d '"' -f2)
|
|
# get Chart major version
|
|
#chart_major_version=$(echo $chart_version | cut -d'.' -f1)
|
|
# get Chart minor verison
|
|
#chart_minor_version=$(echo $chart_version | cut -d'.' -f2)
|
|
# increment minor version
|
|
#let "chart_minor_version++"
|
|
# set new version
|
|
#chart_new_version=$chart_major_version.$chart_minor_version
|
|
|
|
# replace in .env, .env.dist and Chart the version
|
|
#env_file=(.env .env.dist ./docker/php-fpm/.env ./docker/php-fpm/.env.dist ./helm/Chart.yaml)
|
|
#for f in ${env_file[@]}; do
|
|
# case $f in
|
|
# .env|.env.dist)
|
|
# #sed -e "s|DOCKER_IMAGE_VERSION=\"$chart_version\"|DOCKER_IMAGE_VERSION=\"$chart_new_version\"|" < $f
|
|
# sed -i "s|DOCKER_IMAGE_VERSION=\"$chart_version\"|DOCKER_IMAGE_VERSION=\"$chart_new_version\"|" $f
|
|
# ;;
|
|
# ./docker/php-fpm/.env|./docker/php-fpm/.env.dist)
|
|
# #sed -e "s|SITE_VERSION=\"$chart_version\"|SITE_VERSION=\"$chart_new_version\"|" < $f
|
|
# sed -i "s|SITE_VERSION=\"$chart_version\"|SITE_VERSION=\"$chart_new_version\"|" $f
|
|
# ;;
|
|
# ./helm/Chart.yaml)
|
|
# #sed -e "s|appVersion: \"$chart_version\"|appVersion: \"$chart_new_version\"|" < $f
|
|
# sed -i "s|appVersion: \"$chart_version\"|appVersion: \"$chart_new_version\"|" $f
|
|
# ;;
|
|
# esac
|
|
#done
|
|
|
|
echo $chart_version
|
|
echo $chart_new_version
|
|
echo $ns
|
|
echo $kube_sys
|
|
|
|
# git commit
|
|
#git add .env.dist docker/php-fpm/.env.dist helm/Chart.yaml
|
|
#git commit -m "deploy version $chart_new_version"
|
|
|
|
# build image and push in repo
|
|
./docker.sh install
|
|
./docker.sh build
|
|
./docker.sh push
|
|
|
|
# set config to connect kubernetes
|
|
rm -f $HOME/.kube/config
|
|
ln -s $HOME/.kube/$kube_sys $HOME/.kube/config
|
|
|
|
#helm template --set kube=$kube_sys ./helm --values=./helm/values-configs.yaml --values=./helm/values-secrets.yaml --namespace $ns --create-namespace
|
|
# deploy Chart
|
|
helm upgrade $ns --set kube=$kube_sys ./helm --install --atomic --cleanup-on-fail --values=./helm/values-configs.yaml --values=./helm/values-secrets.yaml --namespace $ns --create-namespace
|
|
# create cron job to backup mariadb
|
|
kubectl create job -n $ns --from=cronjob/cronjob-mariadb-backupdb dbbackup-$(date +%Y-%m-%d-%H-%M-%S)
|