nebula-operator

Install NebulaGraph cluster with helm

Please install nebula-operator before installing NebulaGraph cluster.

Get repo Info

```shell script

If you have already added it, please skip.

$ helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts $ helm repo update


_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._

### Install with helm

```shell script
export NEBULA_CLUSTER_NAME=nebula         # the name for nebula cluster
export NEBULA_CLUSTER_NAMESPACE=nebula    # the namespace you want to install the nebula cluster
export STORAGE_CLASS_NAME=gp2             # the storage class for the nebula cluster

$ kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}" # If you have already created it, please skip.
$ helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
    --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
    --set nameOverride=${NEBULA_CLUSTER_NAME} \
    --set nebula.storageClassName="${STORAGE_CLASS_NAME}"

# Please wait a while for the cluster to be ready.
$ kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"
NAME                READY   STATUS    RESTARTS   AGE
nebula-graphd-0     1/1     Running   0          5m34s
nebula-graphd-1     1/1     Running   0          5m34s
nebula-metad-0      1/1     Running   0          5m34s
nebula-metad-1      1/1     Running   0          5m34s
nebula-metad-2      1/1     Running   0          5m34s
nebula-storaged-0   1/1     Running   0          5m34s
nebula-storaged-1   1/1     Running   0          5m34s
nebula-storaged-2   1/1     Running   0          5m34s

Upgrade with helm

$ helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
    --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
    --set nameOverride=${NEBULA_CLUSTER_NAME} \
    --set nebula.storageClassName="${STORAGE_CLASS_NAME}" \
    --set nebula.storaged.replicas=5

# Please wait a while for the cluster to be ready.
$ kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"
NAME                READY   STATUS    RESTARTS   AGE
nebula-graphd-0     1/1     Running   0          10m
nebula-graphd-1     1/1     Running   0          10m
nebula-metad-0      1/1     Running   0          10m
nebula-metad-1      1/1     Running   0          10m
nebula-metad-2      1/1     Running   0          10m
nebula-storaged-0   1/1     Running   0          10m
nebula-storaged-1   1/1     Running   0          10m
nebula-storaged-2   1/1     Running   0          10m
nebula-storaged-3   1/1     Running   0          56s
nebula-storaged-4   1/1     Running   0          56s

Uninstall with helm

$ helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}"

Optional: chart parameters

The following table lists is the configurable parameters of the chart and their default values.

Parameter Description Default
nameOverride Override the name of the chart nil
nebula.version Nebula image tag v3.6.0
nebula.imagePullPolicy Nebula image pull policy Always
enablePVReclaim Flag to enable/disable PV reclaim while the Nebula cluster deleted false
enableBR Flag to enable/disable sidecar container nebula-agent injection false
enableForUpdate Flag to enable/disable rolling update without leader state transition false
nebula.storageClassName StorageClass object name ""
nebula.schedulerName Scheduler for nebula component default-scheduler
nebula.topologySpreadConstraints Topology spread constraints to control how Pods are spread across failure-domains []
nebula.reference Reference for nebula component {"name": "statefulsets.apps", "version": "v1"}
nebula.graphd.image Graphd container image without tag, and use nebula.version as tag vesoft/nebula-graphd
nebula.graphd.replicas Graphd replica number 2
nebula.graphd.env Graphd container environment variables []
nebula.graphd.resources Graphd resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}}
nebula.graphd.logVolume Graphd log volume {"enable":true,"storage":"500Mi"}
nebula.graphd.podLabels Graphd pod labels {}
nebula.graphd.podAnnotations Graphd pod annotations {}
nebula.graphd.SecurityContext Graphd security context {}
nebula.graphd.nodeSelector Graphd nodeSelector {}
nebula.graphd.tolerations Graphd pod tolerations []
nebula.graphd.affinity Graphd affinity {}
nebula.graphd.readinessProbe Graphd pod readinessProbe {}
nebula.graphd.livenessProbe Graphd pod livenessProbe {}
nebula.graphd.initContainers Graphd pod init containers []
nebula.graphd.sidecarContainers Graphd pod sidecar containers []
nebula.graphd.volumes Graphd pod volumes []
nebula.graphd.volumeMounts Graphd pod volume mounts []
nebula.metad.image Metad container image without tag, and use nebula.version as tag vesoft/nebula-metad
nebula.metad.replicas Metad replica number 3
nebula.metad.env Metad container environment variables []
nebula.metad.resources Metad resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}}
nebula.metad.logVolume Metad log volum {"enable":true,"storage":"500Mi"}
nebula.metad.dataVolume Metad data volume []
nebula.metad.podLabels Metad pod labels {}
nebula.metad.podAnnotations Metad pod annotations {}
nebula.metad.SecurityContext Metad security context {}
nebula.metad.nodeSelector Metad nodeSelector {}
nebula.metad.tolerations Metad pod tolerations []
nebula.metad.affinity Metad affinity {}
nebula.metad.readinessProbe Metad pod readinessProbe {}
nebula.metad.livenessProbe Metad pod livenessProbe {}
nebula.metad.initContainers Metad pod init containers []
nebula.metad.sidecarContainers Metad pod sidecar containers []
nebula.metad.volumes Metad pod volumes []
nebula.metad.volumeMounts Metad pod volume mounts []
nebula.storaged.image Storaged container image without tag, and use nebula.version as tag vesoft/nebula-storaged
nebula.storaged.replicas Storaged replica number 3
nebula.storaged.env Storaged container environment variables []
nebula.storaged.resources Storaged resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}}
nebula.storaged.logVolume Storaged log volume {"enable":true,"storage":"500Mi"}
nebula.storaged.dataVolumes Storaged data volumes []
nebula.storaged.podLabels Storaged pod labels {}
nebula.storaged.podAnnotations Storaged pod annotations {}
nebula.storaged.SecurityContext Storaged security context {}
nebula.storaged.nodeSelector Storaged nodeSelector {}
nebula.storaged.tolerations Storaged pod tolerations []
nebula.storaged.affinity Storaged affinity {}
nebula.storaged.readinessProbe Storaged pod readinessProbe {}
nebula.storaged.livenessProbe Storaged pod livenessProbe {}
nebula.storaged.initContainers Stroaged pod init containers []
nebula.storaged.sidecarContainers Storaged pod sidecar containers []
nebula.storaged.volumes Storaged pod volumes []
nebula.storaged.volumeMounts Storaged pod volume mounts []
nebula.exporter.image Exporter container image without tag vesoft/nebula-stats-exporter
nebula.exporter.version Exporter container image tag v3.3.0
nebula.exporter.replicas Exporter replica number 1
nebula.exporter.env Exporter container environment variables []
nebula.exporter.resources Exporter resources {"resources":{"requests":{"cpu":"100m","memory":"128Mi"},"limits":{"cpu":"200m","memory":"256Mi"}}}
nebula.exporter.podLabels Exporter pod labels {}
nebula.exporter.podAnnotations Exporter pod annotations {}
nebula.exporter.nodeSelector Exporter nodeSelector {}
nebula.exporter.tolerations Exporter pod tolerations []
nebula.exporter.affinity Exporter affinity {}
nebula.exporter.readinessProbe Exporter pod readinessProbe {}
nebula.exporter.livenessProbe Exporter pod livenessProbe {}
nebula.exporter.initContainers Exporter pod init containers []
nebula.exporter.sidecarContainers Exporter pod sidecar containers []
nebula.exporter.volumes Exporter pod volumes []
nebula.exporter.volumeMounts Exporter pod volume mounts []
nebula.exporter.maxRequests Maximum number of parallel scrape requests. Use 0 to disable. 20
nebula.agent.image Agent container image without tag vesoft/nebula-agent
nebula.agent.version Agent container image tag latest
nebula.agent.resources Agent resources {"resources":{"requests":{"cpu":"100m","memory":"128Mi"},"limits":{"cpu":"200m","memory":"256Mi"}}}
nebula.console.image nebula console container image without tag vesoft/nebula-console
nebula.console.version nebula console container image tag latest
nebula.console.username nebula cluster username root
nebula.console.password nebula cluster password nebula
nebula.console.nodeSelector nebula console nodeSelector {}
imagePullSecrets The secret to use for pulling the images []
logRotate The nebula pod log rotate configuration {}
alpineImage Nebula alpine image ""