Local kubernetes ortamı kurulumu developerlar için biraz zahmetli olabiliyor. Bu sebeple developerlar için oluşturduğum ve kullanımı oldukça kolay olan kind kubernetes cluster kurulumu yapan shell scripti sizler ile paylaşmak istiyorum.
#!/bin/bash
function check_system() {
if ! command -v docker > /dev/null; then
echo "docker not installed, please install:"
echo "https://docs.docker.com/get-docker/"
exit 1
fi
if ! command -v kind > /dev/null; then
echo "kind not installed, please install"
echo "https://kind.sigs.k8s.io/docs/user/quick-start/#installation"
exit 1
fi
}
function create_kind_cluster() {
kind create cluster \
--name "ldev" \
--config "${SCRIPT_DIR}/../cluster.yaml" \
--image kindest/node:v1.26.6 || exit 1
kubectl config use-context kind-ldev
}
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
check_system
create_kind_cluster
Scripti çalıştırmanızın ardından tüm requirementlar ile birlikte kind kurulumu gerçekleşecek ve local ortamınızda uygulamanızı çalıştıracağınız bir cluster’a sahip olacaksınız.
Aynı şekilde işinizi tamamlamanızın ardından bu cluster’ı ortadan kaldırmak için aşağıdaki scripti kullanabilirsiniz 😉
#!/bin/bash
function printUsage() {
echo "You can use script by following structure:"
echo "./kind-delete.sh [-argument VALUE]"
echo "e.g."
echo "./kind-delete.sh -n ldev"
echo ""
echo "Following arguments could be used:"
echo " -n [value] | OPTIONAL | default=ldev | cluster name to use"
exit 1
}
function check_system() {
if ! command -v docker > /dev/null; then
echo "docker not installed, please install:"
echo "https://docs.docker.com/get-docker/"
exit 1
fi
if [[ $(kind --version | grep -c 'kind version') -ne 1 ]]; then
echo "kind not installed, please install"
echo "https://kind.sigs.k8s.io/docs/user/quick-start/#installation"
exit 1
fi
}
function prepare_environment() {
if [[ -z ${KIND_CLUSTER_NAME} ]]; then
KIND_CLUSTER_NAME=ldev
fi
}
function kind_delete() {
kind delete cluster \
--name "${KIND_CLUSTER_NAME}"
}
while getopts "n:" arg; do
case "${arg}" in
n)
KIND_CLUSTER_NAME=${OPTARG} ;;
*)
printUsage
;;
esac
done
shift $((OPTIND - 1))
check_system
prepare_environment
kind_delete
Developer’ların ve belirli testleri geçrkleştirmek isteyen DevOps engineer’ların işine yarayacağından şüphem yok.
Cheers.