| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/bin/bash
- # Get the directory where this script is located
- DATABASE_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
- # Load configuration file
- source "$DATABASE_SCRIPT_DIR/00-config.sh"
- # Check dependencies
- check_dependencies
- # Function for installing KubeBlocks
- install_kubeblocks() {
- print "Ready to install KubeBlocks."
- # Install CSI Snapshotter CRDs
- 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
- # Add and update Piraeus repository
- helm repo add piraeus-charts https://piraeus.io/helm-charts/
- helm repo update
- # Install snapshot controller
- 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!"
- # Install KubeBlocks CRDs
- kubectl create -f https://github.com/apecloud/kubeblocks/releases/download/v${KB_VERSION}/kubeblocks_crds.yaml
- # Add and update KubeBlocks repository
- helm repo add kubeblocks $HELM_REPO
- helm repo update
- # Install KubeBlocks
- helm install kubeblocks kubeblocks/kubeblocks --namespace kb-system --create-namespace --version=${KB_VERSION}
- # Verify installation
- 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!"
- }
- # Check if KubeBlocks is already installed
- 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
- # Call the function to install KubeBlocks
- install_kubeblocks
- fi
|