1. export KKZONE=cn
    1. kubectl create namespace openebs
    2. helm repo add openebs https://openebs.github.io/charts
    3. helm repo update
    4. helm install openebs --namespace openebs openebs/openebs --wait
    1. kubectl patch storageclasses.storage.k8s.io openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
    1. kubectl get sc
    1. kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/kubesphere-installer.yaml
    2. kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.1/cluster-configuration.yaml
    1. kubectl get pods -n kubesphere-system
    1. kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
    1. kubectl patch -nkubesphere-system cc ks-installer --type=json -p='[{"op": "replace", "path": "/spec/devops/enabled", "value": true}]'
    1. helm repo add ks-devops https://kubesphere-sigs.github.io/ks-devops-helm-chart/
    1. kubectl create namespace kubesphere-devops-system
    2. helm install ks-devops ks-devops/ks-devops -n kubesphere-devops-system \
    3. --set image.pullPolicy=Always --set jenkins.ksAuth.enabled=true --wait