|
#!/bin/bash |
|
|
|
|
|
DATABASE_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" |
|
|
|
source "$DATABASE_SCRIPT_DIR/00-config.sh" |
|
|
|
|
|
check_dependencies |
|
|
|
|
|
install_kubeblocks() { |
|
print "Ready to install KubeBlocks." |
|
|
|
|
|
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v8.2.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml |
|
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v8.2.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml |
|
kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v8.2.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml |
|
|
|
|
|
helm repo add piraeus-charts https://piraeus.io/helm-charts/ |
|
helm repo update |
|
|
|
|
|
helm install snapshot-controller piraeus-charts/snapshot-controller -n kb-system --create-namespace |
|
kubectl wait --for=condition=ready pods -l app.kubernetes.io/name=snapshot-controller -n kb-system --timeout=60s |
|
print_success "snapshot-controller installation complete!" |
|
|
|
|
|
kubectl create -f https://github.com/apecloud/kubeblocks/releases/download/v${KB_VERSION}/kubeblocks_crds.yaml |
|
|
|
|
|
helm repo add kubeblocks $HELM_REPO |
|
helm repo update |
|
|
|
|
|
helm install kubeblocks kubeblocks/kubeblocks --namespace kb-system --create-namespace --version=${KB_VERSION} |
|
|
|
|
|
print "Waiting for KubeBlocks to be ready..." |
|
kubectl wait --for=condition=ready pods -l app.kubernetes.io/instance=kubeblocks -n kb-system --timeout=120s |
|
print_success "KubeBlocks installation complete!" |
|
} |
|
|
|
|
|
print "Checking if KubeBlocks is already installed in kb-system namespace..." |
|
if kubectl get namespace kb-system &>/dev/null && kubectl get deployment kubeblocks -n kb-system &>/dev/null; then |
|
print_success "KubeBlocks is already installed in kb-system namespace." |
|
else |
|
|
|
install_kubeblocks |
|
fi |
|
|