This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-helm.git


The following commit(s) were added to refs/heads/master by this push:
     new 2abbc4f  Opt to http get probe (#21)
2abbc4f is described below

commit 2abbc4f6520a6452a39ca0ebce9976c98c0d4112
Author: Gao Hongtao <[email protected]>
AuthorDate: Sat Sep 14 13:57:07 2024 +0800

    Opt to http get probe (#21)
---
 .github/workflows/e2e.ci.yaml                      |   2 +-
 CHANGES.md                                         |   9 +-
 README.md                                          | 290 ++++++++-----
 chart/Chart.yaml                                   |   2 +-
 chart/templates/_helpers.tpl                       |   4 +-
 chart/templates/grpc_service.yaml                  |  59 ++-
 chart/templates/http_service.yaml                  | 103 +++--
 chart/templates/ingress.yaml                       |  99 +++--
 .../{deployment.yaml => liaison_deployment.yaml}   | 171 ++++----
 chart/templates/pdb.yaml                           | 138 +++---
 chart/templates/serviceaccount.yaml                |  40 +-
 chart/templates/statefulset.yaml                   | 245 ++++++-----
 chart/templates/ui_deployment.yaml                 | 236 ++++++++++
 chart/values.yaml                                  | 479 ++++++++++++++-------
 test/e2e/traffic-gen.yaml                          |   2 +-
 test/e2e/values.cluster.yaml                       | 334 ++++++++++----
 test/e2e/values.standalone.yaml                    | 128 +++---
 17 files changed, 1531 insertions(+), 810 deletions(-)

diff --git a/.github/workflows/e2e.ci.yaml b/.github/workflows/e2e.ci.yaml
index 195e9f0..4e87f1b 100644
--- a/.github/workflows/e2e.ci.yaml
+++ b/.github/workflows/e2e.ci.yaml
@@ -71,7 +71,7 @@ jobs:
             du -sh $dir
           done
           docker images
-      - uses: actions/upload-artifact@v2
+      - uses: actions/upload-artifact@v4
         if: ${{ failure() }}
         name: Upload Logs
         with:
diff --git a/CHANGES.md b/CHANGES.md
index f1f21da..a9223a9 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -6,9 +6,16 @@ Release Notes.
 0.3.0
 ------------------
 
+#### Features
+
+Support Anti-Affinity for banyandb cluster mode
+Align the modern Kubernetes label names
+Opt probe settings to http get /healthz instead of bydbctl health check
+Add standalone UI deployment
+
 #### Chores
 
-- Bump banyandb image version to 0.6.1
+- Bump banyandb image version to 0.7.0
 
 
 0.2.0
diff --git a/README.md b/README.md
index 93d23cd..a6ccb39 100644
--- a/README.md
+++ b/README.md
@@ -43,116 +43,193 @@ $ helm uninstall my-release -n <namespace>
 
 The command removes all the banyandb components associated with the chart and 
deletes the release.
 
+## Compatibility
+
+The chart needs the minimum version of BanyanDB 0.7.0 when the chart version 
is 0.3.0 or higher.
+
 ## Configuration
 
 | Key | Type | Default | Description |
 |-----|------|---------|-------------|
-| cluster.data.affinity | object | `{}` |  |
-| cluster.data.env | list | `[]` |  |
-| cluster.data.grpcSvc.annotations | object | `{}` |  |
-| cluster.data.grpcSvc.labels | object | `{}` |  |
-| cluster.data.grpcSvc.port | int | `17912` |  |
-| cluster.data.nodeSelector | list | `[]` |  |
-| cluster.data.podAnnotations | string | `nil` |  |
-| cluster.data.podDisruptionBudget | object | `{}` |  |
-| cluster.data.priorityClassName | string | `""` |  |
-| cluster.data.replicas | int | `3` |  |
-| cluster.data.resources.limits | list | `[]` |  |
-| cluster.data.resources.requests | list | `[]` |  |
-| cluster.data.securityContext | object | `{}` |  |
-| cluster.data.sidecar | list | `[]` |  |
-| cluster.data.tolerations | list | `[]` |  |
-| cluster.enabled | bool | `true` |  |
-| cluster.etcdEndpoints | list | `[]` |  |
-| cluster.liaison.affinity | object | `{}` |  |
-| cluster.liaison.env | list | `[]` |  |
-| cluster.liaison.grpcSvc.annotations | object | `{}` |  |
-| cluster.liaison.grpcSvc.labels | object | `{}` |  |
-| cluster.liaison.grpcSvc.port | int | `17912` |  |
-| cluster.liaison.httpSvc.annotations | object | `{}` |  |
-| cluster.liaison.httpSvc.externalIPs | list | `[]` |  |
-| cluster.liaison.httpSvc.labels | object | `{}` |  |
-| cluster.liaison.httpSvc.loadBalancerIP | string | `nil` |  |
-| cluster.liaison.httpSvc.loadBalancerSourceRanges | list | `[]` |  |
-| cluster.liaison.httpSvc.port | int | `17913` |  |
-| cluster.liaison.httpSvc.type | string | `"LoadBalancer"` |  |
-| cluster.liaison.ingress.annotations | object | `{}` |  |
-| cluster.liaison.ingress.enabled | bool | `false` |  |
-| cluster.liaison.ingress.labels | object | `{}` |  |
-| cluster.liaison.ingress.rules | list | `[]` |  |
-| cluster.liaison.ingress.tls | list | `[]` |  |
-| cluster.liaison.nodeSelector | list | `[]` |  |
-| cluster.liaison.podAnnotations | string | `nil` |  |
-| cluster.liaison.podDisruptionBudget | object | `{}` |  |
-| cluster.liaison.priorityClassName | string | `""` |  |
-| cluster.liaison.replicas | int | `2` |  |
-| cluster.liaison.resources.limits | list | `[]` |  |
-| cluster.liaison.resources.requests | list | `[]` |  |
-| cluster.liaison.securityContext | object | `{}` |  |
-| cluster.liaison.tolerations | list | `[]` |  |
-| etcd.auth.client.caFilename | string | `""` |  |
-| etcd.auth.client.certFilename | string | `"tls.crt"` |  |
-| etcd.auth.client.certKeyFilename | string | `"tls.key"` |  |
-| etcd.auth.client.enableAuthentication | bool | `false` |  |
-| etcd.auth.client.existingSecret | string | `""` |  |
-| etcd.auth.client.secureTransport | bool | `false` |  |
-| etcd.auth.rbac.allowNoneAuthentication | bool | `false` |  |
-| etcd.auth.rbac.create | bool | `true` |  |
-| etcd.auth.rbac.rootPassword | string | `"banyandb"` |  |
-| etcd.enabled | bool | `true` |  |
-| etcd.replicaCount | int | `1` |  |
-| fullnameOverride | string | `"banyandb"` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"docker.io/apache/skywalking-banyandb"` |  |
-| image.tag | string | `"0.6.1"` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-| standalone.affinity | object | `{}` |  |
-| standalone.enabled | bool | `false` |  |
-| standalone.env | list | `[]` |  |
-| standalone.grpcSvc.annotations | object | `{}` |  |
-| standalone.grpcSvc.labels | object | `{}` |  |
-| standalone.grpcSvc.port | int | `17912` |  |
-| standalone.httpSvc.annotations | object | `{}` |  |
-| standalone.httpSvc.externalIPs | list | `[]` |  |
-| standalone.httpSvc.labels | object | `{}` |  |
-| standalone.httpSvc.loadBalancerIP | string | `nil` |  |
-| standalone.httpSvc.loadBalancerSourceRanges | list | `[]` |  |
-| standalone.httpSvc.port | int | `17913` |  |
-| standalone.httpSvc.type | string | `"LoadBalancer"` |  |
-| standalone.ingress.annotations | object | `{}` |  |
-| standalone.ingress.enabled | bool | `false` |  |
-| standalone.ingress.labels | object | `{}` |  |
-| standalone.ingress.rules | list | `[]` |  |
-| standalone.ingress.tls | list | `[]` |  |
-| standalone.nodeSelector | list | `[]` |  |
-| standalone.podAnnotations.example | string | `"banyandb-foo"` |  |
-| standalone.podDisruptionBudget | object | `{}` |  |
-| standalone.priorityClassName | string | `""` |  |
-| standalone.resources.limits | list | `[]` |  |
-| standalone.resources.requests | list | `[]` |  |
-| standalone.securityContext | object | `{}` |  |
-| standalone.sidecar | list | `[]` |  |
-| standalone.tls.grpcSecretName | string | `""` |  |
-| standalone.tls.httpSecretName | string | `""` |  |
-| standalone.tolerations | list | `[]` |  |
-| storage.enabled | bool | `false` |  |
-| storage.persistentVolumeClaims[0].accessModes[0] | string | 
`"ReadWriteOnce"` |  |
-| storage.persistentVolumeClaims[0].claimName | string | `"data"` |  |
-| storage.persistentVolumeClaims[0].existingClaimName | string | `nil` |  |
-| storage.persistentVolumeClaims[0].mountTargets[0] | string | `"measure"` |  |
-| storage.persistentVolumeClaims[0].mountTargets[1] | string | `"stream"` |  |
-| storage.persistentVolumeClaims[0].size | string | `"50Gi"` |  |
-| storage.persistentVolumeClaims[0].storageClass | string | `nil` |  |
-| storage.persistentVolumeClaims[0].volumeMode | string | `"Filesystem"` |  |
-| storage.persistentVolumeClaims[1].accessModes[0] | string | 
`"ReadWriteOnce"` |  |
-| storage.persistentVolumeClaims[1].claimName | string | `"meta"` |  |
-| storage.persistentVolumeClaims[1].existingClaimName | string | `nil` |  |
-| storage.persistentVolumeClaims[1].mountTargets[0] | string | `"metadata"` |  
|
-| storage.persistentVolumeClaims[1].size | string | `"5Gi"` |  |
-| storage.persistentVolumeClaims[1].storageClass | string | `nil` |  |
-| storage.persistentVolumeClaims[1].volumeMode | string | `"Filesystem"` |  |
+| cluster.data.affinity | object | `{}` | Affinity settings for pod assignment 
|
+| cluster.data.podAffinityPreset | string | `""` | podAffinityPreset Pod 
affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` 
 |
+| cluster.data.podAntiAffinityPreset | string | `""` | podAntiAffinityPreset 
Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` 
or `hard`  |
+| cluster.data.env | list | `[]` | Environment variables for the data pods |
+| cluster.data.grpcSvc.annotations | object | `{}` | Annotations for the gRPC 
service |
+| cluster.data.grpcSvc.labels | object | `{}` | Labels for the gRPC service |
+| cluster.data.grpcSvc.port | int | `17912` | Port for the gRPC service |
+| cluster.data.livenessProbe.initialDelaySeconds | int | `20` | Initial delay 
before starting liveness probes |
+| cluster.data.livenessProbe.periodSeconds | int | `30` | Period between 
liveness probes |
+| cluster.data.livenessProbe.timeoutSeconds | int | `5` | Timeout for liveness 
probes |
+| cluster.data.livenessProbe.successThreshold | int | `1` | Success threshold 
for liveness probes |
+| cluster.data.livenessProbe.failureThreshold | int | `5` | Failure threshold 
for liveness probes |
+| cluster.data.nodeSelector | list | `[]` | Node selector for data pods |
+| cluster.data.podAnnotations | string | `nil` | Annotations for the data pods 
|
+| cluster.data.podDisruptionBudget | object | `{}` | Pod disruption budget for 
data pods |
+| cluster.data.priorityClassName | string | `""` | Priority class name for 
data pods |
+| cluster.data.readinessProbe.initialDelaySeconds | int | `20` | Initial delay 
before starting readiness probes |
+| cluster.data.readinessProbe.periodSeconds | int | `10` | Period between 
readiness probes |
+| cluster.data.readinessProbe.timeoutSeconds | int | `5` | Timeout for 
readiness probes |
+| cluster.data.readinessProbe.successThreshold | int | `1` | Success threshold 
for readiness probes |
+| cluster.data.readinessProbe.failureThreshold | int | `5` | Failure threshold 
for readiness probes |
+| cluster.data.replicas | int | `3` | Number of replicas for data pods |
+| cluster.data.resources.limits | list | `[]` | Resource limits for data pods |
+| cluster.data.resources.requests | list | `[]` | Resource requests for data 
pods |
+| cluster.data.securityContext | object | `{}` | Security context for data 
pods |
+| cluster.data.sidecar | list | `[]` | Sidecar containers for data pods |
+| cluster.data.tolerations | list | `[]` | Tolerations for data pods |
+| cluster.enabled | bool | `true` | Enable or disable the cluster |
+| cluster.etcdEndpoints | list | `[]` | Endpoints for the etcd cluster |
+| cluster.liaison.affinity | object | `{}` | Affinity settings for liaison 
pods |
+| cluster.liaison.podAffinityPreset | string | `""` | podAffinityPreset Pod 
affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` 
 |
+| cluster.liaison.podAntiAffinityPreset | string | `""` | 
podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. 
Allowed values: `soft` or `hard`  |
+| cluster.liaison.env | list | `[]` | Environment variables for the liaison 
pods |
+| cluster.liaison.grpcSvc.annotations | object | `{}` | Annotations for the 
gRPC service |
+| cluster.liaison.grpcSvc.labels | object | `{}` | Labels for the gRPC service 
|
+| cluster.liaison.grpcSvc.port | int | `17912` | Port for the gRPC service |
+| cluster.liaison.httpSvc.annotations | object | `{}` | Annotations for the 
HTTP service |
+| cluster.liaison.httpSvc.externalIPs | list | `[]` | External IPs for the 
HTTP service |
+| cluster.liaison.httpSvc.labels | object | `{}` | Labels for the HTTP service 
|
+| cluster.liaison.httpSvc.loadBalancerIP | string | `nil` | Load balancer IP 
for the HTTP service |
+| cluster.liaison.httpSvc.loadBalancerSourceRanges | list | `[]` | Load 
balancer source ranges for the HTTP service |
+| cluster.liaison.httpSvc.port | int | `17913` | Port for the HTTP service |
+| cluster.liaison.httpSvc.type | string | `"LoadBalancer"` | Type of the HTTP 
service |
+| cluster.liaison.ingress.annotations | object | `{}` | Annotations for the 
ingress |
+| cluster.liaison.ingress.enabled | bool | `false` | Enable or disable the 
ingress |
+| cluster.liaison.ingress.labels | object | `{}` | Labels for the ingress |
+| cluster.liaison.ingress.rules | list | `[]` | Rules for the ingress |
+| cluster.liaison.ingress.tls | list | `[]` | TLS settings for the ingress |
+| cluster.liaison.livenessProbe.initialDelaySeconds | int | `20` | Initial 
delay before starting liveness probes |
+| cluster.liaison.livenessProbe.periodSeconds | int | `30` | Period between 
liveness probes |
+| cluster.liaison.livenessProbe.timeoutSeconds | int | `5` | Timeout for 
liveness probes |
+| cluster.liaison.livenessProbe.successThreshold | int | `1` | Success 
threshold for liveness probes |
+| cluster.liaison.livenessProbe.failureThreshold | int | `5` | Failure 
threshold for liveness probes |
+| cluster.liaison.nodeSelector | list | `[]` | Node selector for liaison pods |
+| cluster.liaison.podAnnotations | string | `nil` | Annotations for the 
liaison pods |
+| cluster.liaison.podDisruptionBudget | object | `{}` | Pod disruption budget 
for liaison pods |
+| cluster.liaison.priorityClassName | string | `""` | Priority class name for 
liaison pods |
+| cluster.liaison.readinessProbe.initialDelaySeconds | int | `20` | Initial 
delay before starting readiness probes |
+| cluster.liaison.readinessProbe.periodSeconds | int | `10` | Period between 
readiness probes |
+| cluster.liaison.readinessProbe.timeoutSeconds | int | `5` | Timeout for 
readiness probes |
+| cluster.liaison.readinessProbe.successThreshold | int | `1` | Success 
threshold for readiness probes |
+| cluster.liaison.readinessProbe.failureThreshold | int | `5` | Failure 
threshold for readiness probes |
+| cluster.liaison.replicas | int | `2` | Number of replicas for liaison pods |
+| cluster.liaison.resources.limits | list | `[]` | Resource limits for liaison 
pods |
+| cluster.liaison.resources.requests | list | `[]` | Resource requests for 
liaison pods |
+| cluster.liaison.securityContext | object | `{}` | Security context for 
liaison pods |
+| cluster.liaison.tolerations | list | `[]` | Tolerations for liaison pods |
+| cluster.ui.type | string | `"Embedded"` | Type of the UI deployment: `None`, 
`Embedded`, `Standalone` |
+| cluster.ui.standalone.affinity | object | `{}` | Affinity settings for 
standalone UI pods |
+| cluster.ui.standalone.podAffinityPreset | string | `""` | podAffinityPreset 
Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or 
`hard`  |
+| cluster.ui.standalone.podAntiAffinityPreset | string | `""` | 
podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. 
Allowed values: `soft` or `hard`  |
+| cluster.ui.standalone.env | list | `[]` | Environment variables for the 
standalone UI pods |
+| cluster.ui.standalone.httpSvc.annotations | object | `{}` | Annotations for 
the HTTP service |
+| cluster.ui.standalone.httpSvc.externalIPs | list | `[]` | External IPs for 
the HTTP service |
+| cluster.ui.standalone.httpSvc.labels | object | `{}` | Labels for the HTTP 
service |
+| cluster.ui.standalone.httpSvc.loadBalancerIP | string | `nil` | Load 
balancer IP for the HTTP service |
+| cluster.ui.standalone.httpSvc.loadBalancerSourceRanges | list | `[]` | Load 
balancer source ranges for the HTTP service |
+| cluster.ui.standalone.httpSvc.port | int | `17913` | Port for the HTTP 
service |
+| cluster.ui.standalone.httpSvc.type | string | `"LoadBalancer"` | Type of the 
HTTP service |
+| cluster.ui.standalone.ingress.annotations | object | `{}` | Annotations for 
the ingress |
+| cluster.ui.standalone.ingress.enabled | bool | `false` | Enable or disable 
the ingress |
+| cluster.ui.standalone.ingress.labels | object | `{}` | Labels for the 
ingress |
+| cluster.ui.standalone.ingress.rules | list | `[]` | Rules for the ingress |
+| cluster.ui.standalone.ingress.tls | list | `[]` | TLS settings for the 
ingress |
+| cluster.ui.standalone.livenessProbe.initialDelaySeconds | int | `20` | 
Initial delay before starting liveness probes |
+| cluster.ui.standalone.livenessProbe.periodSeconds | int | `30` | Period 
between liveness probes |
+| cluster.ui.standalone.livenessProbe.timeoutSeconds | int | `5` | Timeout for 
liveness probes |
+| cluster.ui.standalone.livenessProbe.successThreshold | int | `1` | Success 
threshold for liveness probes |
+| cluster.ui.standalone.livenessProbe.failureThreshold | int | `5` | Failure 
threshold for liveness probes |
+| cluster.ui.standalone.nodeSelector | list | `[]` | Node selector for UI 
standalone pods |
+| cluster.ui.standalone.podAnnotations | string | `nil` | Annotations for the 
UI standalone pods |
+| cluster.ui.standalone.podDisruptionBudget | object | `{}` | Pod disruption 
budget for UI standalone pods |
+| cluster.ui.standalone.priorityClassName | string | `""` | Priority class 
name for UI standalone pods |
+| cluster.ui.standalone.readinessProbe.initialDelaySeconds | int | `20` | 
Initial delay before starting readiness probes |
+| cluster.ui.standalone.readinessProbe.periodSeconds | int | `10` | Period 
between readiness probes |
+| cluster.ui.standalone.readinessProbe.timeoutSeconds | int | `5` | Timeout 
for readiness probes |
+| cluster.ui.standalone.readinessProbe.successThreshold | int | `1` | Success 
threshold for readiness probes |
+| cluster.ui.standalone.readinessProbe.failureThreshold | int | `5` | Failure 
threshold for readiness probes |
+| cluster.ui.standalone.replicas | int | `2` | Number of replicas for UI 
standalone pods |
+| cluster.ui.standalone.resources.limits | list | `[]` | Resource limits for 
UI standalone pods |
+| cluster.ui.standalone.resources.requests | list | `[]` | Resource requests 
for UI standalone pods |
+| cluster.ui.standalone.securityContext | object | `{}` | Security context for 
UI standalone pods |
+| cluster.ui.standalone.tolerations | list | `[]` | Tolerations for UI 
standalone pods |
+| etcd.auth.client.caFilename | string | `""` | CA filename for etcd client 
authentication |
+| etcd.auth.client.certFilename | string | `"tls.crt"` | Certificate filename 
for etcd client authentication |
+| etcd.auth.client.certKeyFilename | string | `"tls.key"` | Certificate key 
filename for etcd client authentication |
+| etcd.auth.client.enableAuthentication | bool | `false` | Enable or disable 
etcd client authentication |
+| etcd.auth.client.existingSecret | string | `""` | Existing secret for etcd 
client authentication |
+| etcd.auth.client.secureTransport | bool | `false` | Enable or disable secure 
transport for etcd client |
+| etcd.auth.rbac.allowNoneAuthentication | bool | `false` | Allow none 
authentication for etcd RBAC |
+| etcd.auth.rbac.create | bool | `true` | Create etcd RBAC resources |
+| etcd.auth.rbac.rootPassword | string | `"banyandb"` | Root password for etcd 
RBAC |
+| etcd.enabled | bool | `true` | Enable or disable etcd |
+| etcd.livenessProbe.initialDelaySeconds | int | `10` | Initial delay before 
starting liveness probes |
+| etcd.readinessProbe.initialDelaySeconds | int | `10` | Initial delay before 
starting readiness probes |
+| etcd.replicaCount | int | `1` | Number of replicas for etcd |
+| fullnameOverride | string | `""` | Full name override for the chart |
+| nameOverride | string | `"banyandb"` | Name override for the chart |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"docker.io/apache/skywalking-banyandb"` | Image 
repository |
+| image.tag | string | `"0.7.0-rc0"` | Image tag |
+| serviceAccount.annotations | object | `{}` | Annotations for the service 
account |
+| serviceAccount.create | bool | `true` | Create a service account |
+| serviceAccount.name | string | `""` | Name of the service account |
+| standalone.affinity | object | `{}` | Affinity settings for standalone pods |
+| standalone.enabled | bool | `false` | Enable or disable standalone mode |
+| standalone.env | list | `[]` | Environment variables for standalone pods |
+| standalone.grpcSvc.annotations | object | `{}` | Annotations for the gRPC 
service |
+| standalone.grpcSvc.labels | object | `{}` | Labels for the gRPC service |
+| standalone.grpcSvc.port | int | `17912` | Port for the gRPC service |
+| standalone.httpSvc.annotations | object | `{}` | Annotations for the HTTP 
service |
+| standalone.httpSvc.externalIPs | list | `[]` | External IPs for the HTTP 
service |
+| standalone.httpSvc.labels | object | `{}` | Labels for the HTTP service |
+| standalone.httpSvc.loadBalancerIP | string | `nil` | Load balancer IP for 
the HTTP service |
+| standalone.httpSvc.loadBalancerSourceRanges | list | `[]` | Load balancer 
source ranges for the HTTP service |
+| standalone.httpSvc.port | int | `17913` | Port for the HTTP service |
+| standalone.httpSvc.type | string | `"LoadBalancer"` | Type of the HTTP 
service |
+| standalone.ingress.annotations | object | `{}` | Annotations for the ingress 
|
+| standalone.ingress.enabled | bool | `false` | Enable or disable the ingress |
+| standalone.ingress.labels | object | `{}` | Labels for the ingress |
+| standalone.ingress.rules | list | `[]` | Rules for the ingress |
+| standalone.ingress.tls | list | `[]` | TLS settings for the ingress |
+| standalone.livenessProbe.initialDelaySeconds | int | `20` | Initial delay 
before starting liveness probes |
+| standalone.livenessProbe.periodSeconds | int | `30` | Period between 
liveness probes |
+| standalone.livenessProbe.timeoutSeconds | int | `5` | Timeout for liveness 
probes |
+| standalone.livenessProbe.successThreshold | int | `1` | Success threshold 
for liveness probes |
+| standalone.livenessProbe.failureThreshold | int | `5` | Failure threshold 
for liveness probes |
+| standalone.nodeSelector | list | `[]` | Node selector for standalone pods |
+| standalone.podAnnotations.example | string | `"banyandb-foo"` | Example 
annotation for standalone pods |
+| standalone.podDisruptionBudget | object | `{}` | Pod disruption budget for 
standalone pods |
+| standalone.priorityClassName | string | `""` | Priority class name for 
standalone pods |
+| standalone.readinessProbe.initialDelaySeconds | int | `20` | Initial delay 
before starting readiness probes |
+| standalone.readinessProbe.periodSeconds | int | `10` | Period between 
readiness probes |
+| standalone.readinessProbe.timeoutSeconds | int | `5` | Timeout for readiness 
probes |
+| standalone.readinessProbe.successThreshold | int | `1` | Success threshold 
for readiness probes |
+| standalone.readinessProbe.failureThreshold | int | `5` | Failure threshold 
for readiness probes |
+| standalone.resources.limits | list | `[]` | Resource limits for standalone 
pods |
+| standalone.resources.requests | list | `[]` | Resource requests for 
standalone pods |
+| standalone.securityContext | object | `{}` | Security context for standalone 
pods |
+| standalone.sidecar | list | `[]` | Sidecar containers for standalone pods |
+| standalone.tls.grpcSecretName | string | `""` | Secret name for gRPC TLS in 
standalone mode |
+| standalone.tls.httpSecretName | string | `""` | Secret name for HTTP TLS in 
standalone mode |
+| standalone.tolerations | list | `[]` | Tolerations for standalone pods |
+| storage.enabled | bool | `false` | Enable or disable storage |
+| storage.persistentVolumeClaims[0].accessModes[0] | string | 
`"ReadWriteOnce"` | Access modes for the first PVC |
+| storage.persistentVolumeClaims[0].claimName | string | `"data"` | Claim name 
for the first PVC |
+| storage.persistentVolumeClaims[0].existingClaimName | string | `nil` | 
Existing claim name for the first PVC |
+| storage.persistentVolumeClaims[0].mountTargets[0] | string | `"measure"` | 
First mount target for the first PVC |
+| storage.persistentVolumeClaims[0].mountTargets[1] | string | `"stream"` | 
Second mount target for the first PVC |
+| storage.persistentVolumeClaims[0].size | string | `"50Gi"` | Size of the 
first PVC |
+| storage.persistentVolumeClaims[0].storageClass | string | `nil` | Storage 
class for the first PVC |
+| storage.persistentVolumeClaims[0].volumeMode | string | `"Filesystem"` | 
Volume mode for the first PVC |
+| storage.persistentVolumeClaims[1].accessModes[0] | string | 
`"ReadWriteOnce"` | Access modes for the second PVC |
+| storage.persistentVolumeClaims[1].claimName | string | `"meta"` | Claim name 
for the second PVC |
+| storage.persistentVolumeClaims[1].existingClaimName | string | `nil` | 
Existing claim name for the second PVC |
+| storage.persistentVolumeClaims[1].mountTargets[0] | string | `"metadata"` | 
Mount target for the second PVC |
+| storage.persistentVolumeClaims[1].size | string | `"5Gi"` | Size of the 
second PVC |
+| storage.persistentVolumeClaims[1].storageClass | string | `nil` | Storage 
class for the second PVC |
+| storage.persistentVolumeClaims[1].volumeMode | string | `"Filesystem"` | 
Volume mode for the second PVC |
 
 Specify each parameter using the `--set key=value[,key=value]` argument to 
`helm install`. For example,
 
@@ -210,6 +287,7 @@ You can install BanyanDB with the default configuration as 
follows.
 export REPO=chart
 git clone https://github.com/apache/skywalking-banyandb-helm
 cd skywalking-banyandb-helm
+helm dependency build ${REPO}
 helm install banyandb ${REPO}
 ```
 
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 664e615..7e80331 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -25,4 +25,4 @@ dependencies:
   - name: etcd
     version: 9.14.3
     repository: oci://registry-1.docker.io/bitnamicharts
-    condition: etcd.enabled
\ No newline at end of file
+    condition: etcd.enabled
diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl
index e5d3a54..66029e3 100644
--- a/chart/templates/_helpers.tpl
+++ b/chart/templates/_helpers.tpl
@@ -19,7 +19,7 @@ limitations under the License.
 Expand the name of the chart.
 */}}
 {{- define "banyandb.name" -}}
-{{- default .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
 {{/*
@@ -31,7 +31,7 @@ If release name contains chart name it will be used as a full 
name.
 {{- if .Values.fullnameOverride -}}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
 {{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- $name := (include "banyandb.name" .) -}}
 {{- if contains $name .Release.Name -}}
 {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
 {{- else -}}
diff --git a/chart/templates/grpc_service.yaml 
b/chart/templates/grpc_service.yaml
index 68ff17a..411330c 100644
--- a/chart/templates/grpc_service.yaml
+++ b/chart/templates/grpc_service.yaml
@@ -1,31 +1,28 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if and .Values.standalone.enabled .Values.standalone.grpcSvc }}
 apiVersion: v1
 kind: Service
 metadata:
   name: {{ template "banyandb.fullname" . }}-grpc
-  labels:
-    app: {{ template "banyandb.name" . }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
     chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: standalone
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+    app.kubernetes.io/component: standalone
     {{- range $key, $value := .Values.standalone.grpcSvc.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -38,10 +35,8 @@ spec:
   ports:
     - port: {{ .Values.standalone.grpcSvc.port }}
       name: grpc
-  selector:
-    app: {{ template "banyandb.name" . }}
-    component: standalone
-    release: {{ .Release.Name }}
+  selector: {{ include "banyandb.selectorLabels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone
 {{- end }}
 
 {{- if and .Values.cluster.enabled .Values.cluster.liaison.grpcSvc }}
@@ -49,12 +44,8 @@ apiVersion: v1
 kind: Service
 metadata:
   name: {{ template "banyandb.fullname" . }}-grpc
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: liaison
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels:  {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
     {{- range $key, $value := .Values.cluster.liaison.grpcSvc.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -67,8 +58,6 @@ spec:
   ports:
     - port: {{ .Values.cluster.liaison.grpcSvc.port }}
       name: grpc
-  selector:
-    app: {{ template "banyandb.name" . }}
-    component: liaison
-    release: {{ .Release.Name }}
+  selector: {{ include "banyandb.selectorLabels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
 {{- end }}
diff --git a/chart/templates/http_service.yaml 
b/chart/templates/http_service.yaml
index 4210fb6..40d9420 100644
--- a/chart/templates/http_service.yaml
+++ b/chart/templates/http_service.yaml
@@ -1,31 +1,27 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if and .Values.standalone.enabled .Values.standalone.httpSvc }}
 apiVersion: v1
 kind: Service
 metadata:
   name: {{ template "banyandb.fullname" . }}-http
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: standalone
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone
     {{- range $key, $value := .Values.standalone.httpSvc.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -38,10 +34,8 @@ spec:
   ports:
     - port: {{ .Values.standalone.httpSvc.port }}
       name: http
-  selector:
-    app: {{ template "banyandb.name" . }}
-    component: standalone
-    release: {{ .Release.Name }}
+  selector: {{ include "banyandb.selectorLabels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone
   {{- if .Values.standalone.httpSvc.externalIPs }}
   externalIPs:
     {{- range $v := .Values.standalone.httpSvc.externalIPs }}
@@ -59,17 +53,14 @@ spec:
   {{- end }}
 {{- end }}
 
-{{- if and .Values.cluster.enabled .Values.cluster.liaison.httpSvc }}
+{{- if and .Values.cluster.enabled }}
+{{- if .Values.cluster.liaison.httpSvc }}
 apiVersion: v1
 kind: Service
 metadata:
   name: {{ template "banyandb.fullname" . }}-http
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: liaison
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
     {{- range $key, $value := .Values.cluster.liaison.httpSvc.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -82,10 +73,8 @@ spec:
   ports:
     - port: {{ .Values.cluster.liaison.httpSvc.port }}
       name: http
-  selector:
-    app: {{ template "banyandb.name" . }}
-    component: liaison
-    release: {{ .Release.Name }}
+  selector: {{ include "banyandb.selectorLabels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
   {{- if .Values.cluster.liaison.httpSvc.externalIPs }}
   externalIPs:
     {{- range $v := .Values.cluster.liaison.httpSvc.externalIPs }}
@@ -101,4 +90,44 @@ spec:
     - {{ $v }}
     {{- end }}
   {{- end }}
+{{- end }}
+
+{{- if and (eq .Values.cluster.ui.type "Standalone") 
.Values.cluster.ui.standalone.httpSvc }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ template "banyandb.fullname" . }}-ui
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: ui
+    {{- range $key, $value := .Values.cluster.ui.standalone.httpSvc.labels }}
+    {{ $key }}: {{ $value | quote }}
+    {{- end }}
+  annotations:  
+    {{- range $key, $value := 
.Values.cluster.ui.standalone.httpSvc.annotations }}
+    {{ $key }}: {{ $value | quote }}
+    {{- end }}
+spec:
+  type: {{ .Values.cluster.ui.standalone.httpSvc.type }}
+  ports:
+    - port: {{ .Values.cluster.ui.standalone.httpSvc.port }}
+      name: http
+  selector: {{ include "banyandb.selectorLabels" . | nindent 4 }}
+    app.kubernetes.io/component: ui
+  {{- if .Values.cluster.ui.standalone.httpSvc.externalIPs }}
+  externalIPs:
+    {{- range $v := .Values.cluster.ui.standalone.httpSvc.externalIPs }}
+    - {{ $v }}
+    {{- end }}
+  {{- end }}
+  {{- if .Values.cluster.ui.standalone.httpSvc.loadBalancerIP }}
+  loadBalancerIP: {{ .Values.cluster.ui.standalone.httpSvc.loadBalancerIP }}
+  {{- end }}
+  {{- if .Values.cluster.ui.standalone.httpSvc.loadBalancerSourceRanges }}
+  loadBalancerSourceRanges:
+    {{- range $v := 
.Values.cluster.ui.standalone.httpSvc.loadBalancerSourceRanges }}
+    - {{ $v }}
+    {{- end }}
+  {{- end }}
+{{- end }}
 {{- end }}
\ No newline at end of file
diff --git a/chart/templates/ingress.yaml b/chart/templates/ingress.yaml
index 48d4713..1dbdc9a 100644
--- a/chart/templates/ingress.yaml
+++ b/chart/templates/ingress.yaml
@@ -1,19 +1,19 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if and .Values.standalone.enabled .Values.standalone.ingress.enabled }}
 {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
@@ -25,12 +25,8 @@ apiVersion: extensions/v1beta1
 {{- end }}
 kind: Ingress
 metadata:
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: standalone
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone
     {{- range $key, $value := .Values.standalone.ingress.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -66,7 +62,8 @@ spec:
   {{- end -}}
 {{- end }}
 
-{{- if and .Values.cluster.enabled .Values.cluster.liaison.ingress.enabled }}
+{{- if and .Values.cluster.enabled  }}
+{{- if .Values.cluster.liaison.ingress.enabled }}
 {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
 apiVersion: networking.k8s.io/v1
 {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" 
}}
@@ -76,12 +73,8 @@ apiVersion: extensions/v1beta1
 {{- end }}
 kind: Ingress
 metadata:
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: "{{ .Values.cluster.liaison.ingress.name }}"
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
     {{- range $key, $value := .Values.cluster.liaison.ingress.labels }}
     {{ $key }}: {{ $value | quote }}
     {{- end }}
@@ -115,4 +108,52 @@ spec:
   tls:
 {{ toYaml .Values.cluster.liaison.ingress.tls | indent 4 }}
   {{- end -}}
+{{- end }}
+
+{{- if and (eq .Values.cluster.ui.type "Standalone") (and 
.Values.cluster.ui.standalone .Values.cluster.ui.standalone.ingress.enabled) }}
+{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
+apiVersion: networking.k8s.io/v1
+{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" 
}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else }}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: ui
+    {{- range $key, $value := .Values.cluster.ui.standalone.ingress.labels }}
+    {{ $key }}: {{ $value | quote }}
+    {{- end }}
+  name: {{ template "banyandb.fullname" . }}-ui
+  annotations:
+    {{- range $key, $value := 
.Values.cluster.ui.standalone.ingress.annotations }}
+    {{ $key }}: {{ $value | quote }}
+    {{- end }}
+spec:
+  rules:
+    {{- range .Values.cluster.ui.standalone.ingress.rules }}
+    - host: {{ .host }}
+      http:
+        paths:
+        {{- range .paths }}
+        - path: {{ .path }}
+          pathType: Prefix
+          backend:
+            {{- if $.Capabilities.APIVersions.Has 
"networking.k8s.io/v1/Ingress" }}
+            service:
+              name: {{ .serviceName }}
+              port:
+                number: {{ .port }}
+            {{- else }}
+            serviceName: {{ .serviceName }}
+            servicePort: {{ .port }}
+            {{- end }}
+        {{- end }}
+    {{- end -}}
+  {{- if .Values.cluster.ui.standalone.ingress.tls }}
+  tls:
+{{ toYaml .Values.cluster.ui.standalone.ingress.tls | indent 4 }}
+  {{- end -}}
+{{- end }}
 {{- end }}
\ No newline at end of file
diff --git a/chart/templates/deployment.yaml 
b/chart/templates/liaison_deployment.yaml
similarity index 56%
rename from chart/templates/deployment.yaml
rename to chart/templates/liaison_deployment.yaml
index 00ebfbb..73f41b1 100644
--- a/chart/templates/deployment.yaml
+++ b/chart/templates/liaison_deployment.yaml
@@ -1,44 +1,37 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if and .Values.cluster.enabled .Values.cluster.liaison }}
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: liaison
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-  name: {{ template "banyandb.fullname" . }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
+  name: {{ template "banyandb.fullname" . }}-liaison
 spec:
   replicas: {{ .Values.cluster.liaison.replicas }}
   selector:
-    matchLabels:
-      app: {{ template "banyandb.name" . }}
-      component: liaison
-      release: {{ .Release.Name }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: liaison
+  strategy: {{ toYaml .Values.cluster.liaison.updateStrategy | nindent 4 }}
   template:
     metadata:
-      labels:
-        app: {{ template "banyandb.name" . }}
-        component: liaison
-        release: {{ .Release.Name }}
+      labels: {{ include "banyandb.labels" . | nindent 8 }}
+        app.kubernetes.io/component: liaison
       {{- if .Values.cluster.liaison.podAnnotations }}
       annotations:
 {{ toYaml .Values.cluster.liaison.podAnnotations | indent 8 }}
@@ -52,7 +45,11 @@ spec:
       priorityClassName: {{ .Values.cluster.liaison.priorityClassName }}
       containers:
         - name: liaison
+          {{- if eq .Values.cluster.ui.type "Embedded"  }}
           image: {{ .Values.image.repository }}:{{ required 
"banyandb.image.tag is required" .Values.image.tag }}
+          {{- else }}
+          image: {{ .Values.image.repository }}:{{ required 
"banyandb.image.tag is required" .Values.image.tag }}-slim
+          {{- end }}
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             {{- range $env := .Values.cluster.liaison.env }}
@@ -87,13 +84,13 @@ spec:
             {{- end }}
             {{- if .Values.etcd.auth.client.secureTransport }}
             - name: BYDB_ETCD_TLS_CA_FILE
-              value: "/etc/tls/{{ .Values.cluster.data.tls.etcdSecretName 
}}/ca.crt"
+              value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName 
}}/ca.crt"
             {{- end }}
             {{- if .Values.etcd.auth.client.enableAuthentication }}
             - name: BYDB_ETCD_TLS_CERT_FILE
-              value: "/etc/tls/{{ .Values.cluster.data.tls.etcdSecretName 
}}/tls.crt"
+              value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName 
}}/tls.crt"
             - name: BYDB_ETCD_TLS_KEY_FILE
-              value: "/etc/tls/{{ .Values.cluster.data.tls.etcdSecretName 
}}/tls.key"
+              value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName 
}}/tls.key"
             {{- end }}
             {{- if and (not .Values.etcd.enabled) 
.Values.cluster.etcdEndpoints }}
             - name: BYDB_ETCD_ENDPOINTS
@@ -113,21 +110,33 @@ spec:
             - containerPort: 2121
               name: observebility
           readinessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health {{- if .Values.cluster.liaison.tls }} 
--enable-tls {{- else }} --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.cluster.liaison.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.cluster.liaison.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ 
.Values.cluster.liaison.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ 
.Values.cluster.liaison.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.liaison.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.liaison.readinessProbe.failureThreshold }}
           livenessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health {{- if .Values.cluster.liaison.tls }} 
--enable-tls {{- else }} --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.cluster.liaison.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.cluster.liaison.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ 
.Values.cluster.liaison.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ 
.Values.cluster.liaison.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.liaison.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.liaison.readinessProbe.failureThreshold }}
           
           {{- if.Values.cluster.liaison.resources }}
           resources:
@@ -198,40 +207,46 @@ spec:
       {{- end }}
 
       {{- if .Values.cluster.liaison.affinity }}
-      {{- $affinity := .Values.cluster.liaison.affinity }}
+      affinity: {{ toYaml .Values.cluster.liaison.affinity | nindent 8 }}
+      {{- else if or .Values.cluster.liaison.podAffinityPreset 
.Values.cluster.liaison.podAntiAffinityPreset }}
       affinity:
-        {{- if $affinity.nodeAffinity }}
-        nodeAffinity:
+        {{- if and .Values.cluster.liaison.podAffinityPreset (not (empty 
.Values.cluster.liaison.podAffinityPreset)) }}
+        podAffinity:
+          {{- if eq .Values.cluster.liaison.podAffinityPreset "soft" }}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: liaison
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.liaison.podAffinityPreset "hard" }}
           requiredDuringSchedulingIgnoredDuringExecution:
-            nodeSelectorTerms:
-            {{- range $requirement := 
$affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
 }}
-              {{- range $matchExpression := $requirement.matchExpressions }}
-                - matchExpressions:
-                    - key: {{ $matchExpression.key }}
-                      operator: {{ $matchExpression.operator }}
-                      values:
-                        {{- range $v := $matchExpression.values }}
-                        - {{ $v }}
-                        {{- end }}
-              {{- end }}
-            {{- end }}
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: liaison
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
         {{- end }}
-
-        {{- if $affinity.podAffinity }}
-        podAffinity:
+        {{- if and .Values.cluster.liaison.podAntiAffinityPreset (not (empty 
.Values.cluster.liaison.podAntiAffinityPreset)) }}
+        podAntiAffinity:
+          {{- if eq .Values.cluster.liaison.podAntiAffinityPreset "soft" }}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: liaison
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.liaison.podAntiAffinityPreset "hard" 
}}
           requiredDuringSchedulingIgnoredDuringExecution:
-            {{- range $term := 
$affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution }}
-            - topologyKey: {{ $term.topologyKey }}
-              namespaces:
-                {{- range $ns := $term.namespaces }}
-                - {{ $ns }}
-                {{- end }}
-              labelSelector:
-                matchLabels:
-                  {{- range $label := $term.labelSelector.matchLabels }}
-                  {{ $label.key }}: {{ $label.value }}
-                  {{- end }}
-            {{- end }}
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: liaison
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
         {{- end }}
       {{- end }}
 {{- end }}
diff --git a/chart/templates/pdb.yaml b/chart/templates/pdb.yaml
index 8085b7a..8f0192c 100644
--- a/chart/templates/pdb.yaml
+++ b/chart/templates/pdb.yaml
@@ -1,19 +1,19 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if and .Values.standalone.enabled .Values.standalone.podDisruptionBudget }}
 {{- if .Capabilities.APIVersions.Has "policy/v1" }}
@@ -24,12 +24,8 @@ apiVersion: policy/v1beta1
 kind: PodDisruptionBudget
 metadata:
   name: {{ template "banyandb.fullname" . }}
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: standalone
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone    
 spec:
   {{- $budget := .Values.standalone.podDisruptionBudget }}
   {{- if $budget.maxUnavailable }}
@@ -39,19 +35,8 @@ spec:
   minAvailable: {{ $budget.minAvailable }}
   {{- end }}
   selector:
-    matchLabels:
-    {{- range $label := $budget.matchLabels }}
-      {{ $label.key }}: {{ $label.value }}
-    {{- end }}
-    matchExpressions:
-    {{- range $expression := $budget.matchExpressions }}
-      - key: {{ $expression.key }}
-        operator: {{ $expression.operator }}
-        values:
-          {{- range $v := $expression.values }}
-          - {{ $v }}
-          {{- end}}
-    {{- end }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: standalone
   {{- if $budget.paused }}
   paused: {{ $budget.paused }}
   {{- end }}
@@ -66,13 +51,9 @@ apiVersion: policy/v1beta1
 {{- end }}
 kind: PodDisruptionBudget
 metadata:
-  name: {{ template "banyandb.fullname" . }}
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: liaison
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  name: {{ template "banyandb.fullname" . }}-liaison
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: liaison
 spec:
   {{- $budget := .Values.cluster.liaison.podDisruptionBudget }}
   {{- if $budget.maxUnavailable }}
@@ -82,23 +63,13 @@ spec:
   minAvailable: {{ $budget.minAvailable }}
   {{- end }}
   selector:
-    matchLabels:
-    {{- range $label := $budget.matchLabels }}
-      {{ $label.key }}: {{ $label.value }}
-    {{- end }}
-    matchExpressions:
-    {{- range $expression := $budget.matchExpressions }}
-      - key: {{ $expression.key }}
-        operator: {{ $expression.operator }}
-        values:
-          {{- range $v := $expression.values }}
-          - {{ $v }}
-          {{- end}}
-    {{- end }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: liaison
   {{- if $budget.paused }}
   paused: {{ $budget.paused }}
   {{- end }}
 {{- end }}
+---
 {{- if .Values.cluster.data.podDisruptionBudget }}
 {{- if .Capabilities.APIVersions.Has "policy/v1" }}
 apiVersion: policy/v1
@@ -107,15 +78,40 @@ apiVersion: policy/v1beta1
 {{- end }}
 kind: PodDisruptionBudget
 metadata:
-  name: {{ template "banyandb.fullname" . }}
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: data
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  name: {{ template "banyandb.fullname" . }}-data
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: data
+spec:
+  {{- $budget := .Values.cluster.data.podDisruptionBudget }}
+  {{- if $budget.maxUnavailable }}
+  maxUnavailable: {{ $budget.maxUnavailable }}
+  {{- end }}
+  {{- if $budget.minAvailable }}
+  minAvailable: {{ $budget.minAvailable }}
+  {{- end }}
+  selector:
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: data
+  {{- if $budget.paused }}
+  paused: {{ $budget.paused }}
+  {{- end }}
+{{- end }}
+{{- end }}
+---
+
+{{- if and .Values.cluster.ui.standalone 
.Values.cluster.ui.standalone.podDisruptionBudget }}
+{{- if .Capabilities.APIVersions.Has "policy/v1" }}
+apiVersion: policy/v1
+{{- else }}
+apiVersion: policy/v1beta1
+{{- end }}
+kind: PodDisruptionBudget
+metadata:
+  name: {{ template "banyandb.fullname" . }}-ui
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: ui
 spec:
-  {{- $budget := .Values.data.podDisruptionBudget }}
+  {{- $budget := .Values.cluster.ui.standalone.podDisruptionBudget }}
   {{- if $budget.maxUnavailable }}
   maxUnavailable: {{ $budget.maxUnavailable }}
   {{- end }}
@@ -123,21 +119,9 @@ spec:
   minAvailable: {{ $budget.minAvailable }}
   {{- end }}
   selector:
-    matchLabels:
-    {{- range $label := $budget.matchLabels }}
-      {{ $label.key }}: {{ $label.value }}
-    {{- end }}
-    matchExpressions:
-    {{- range $expression := $budget.matchExpressions }}
-      - key: {{ $expression.key }}
-        operator: {{ $expression.operator }}
-        values:
-          {{- range $v := $expression.values }}
-          - {{ $v }}
-          {{- end}}
-    {{- end }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: ui
   {{- if $budget.paused }}
   paused: {{ $budget.paused }}
   {{- end }}
 {{- end }}
-{{- end }}
\ No newline at end of file
diff --git a/chart/templates/serviceaccount.yaml 
b/chart/templates/serviceaccount.yaml
index 8d27bf3..8392fda 100644
--- a/chart/templates/serviceaccount.yaml
+++ b/chart/templates/serviceaccount.yaml
@@ -1,28 +1,24 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if .Values.serviceAccount.create }}
 apiVersion: v1
 kind: ServiceAccount
 metadata:
   name: {{ template "banyandb.serviceAccountName" . }}
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-{{- end }}
\ No newline at end of file
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+{{- end }}
diff --git a/chart/templates/statefulset.yaml b/chart/templates/statefulset.yaml
index bf93c2d..2b81e41 100644
--- a/chart/templates/statefulset.yaml
+++ b/chart/templates/statefulset.yaml
@@ -1,45 +1,37 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 {{- if .Values.standalone.enabled }}
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: standalone
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: standalone
   name: {{ template "banyandb.fullname" . }}
 spec:
   serviceName: banyandb
   replicas: 1
   selector:
-    matchLabels:
-      app: {{ template "banyandb.name" . }}
-      component: standalone
-      release: {{ .Release.Name }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: standalone
   template:
     metadata:
-      labels:
-        app: {{ template "banyandb.name" . }}
-        component: standalone
-        release: {{ .Release.Name }}
+      labels: {{ include "banyandb.labels" . | nindent 8 }}
+        app.kubernetes.io/component: standalone
       {{- if .Values.standalone.podAnnotations }}
       annotations:
 {{ toYaml .Values.standalone.podAnnotations | indent 8 }}
@@ -92,22 +84,47 @@ spec:
             - containerPort: 2121
               name: observebility
           readinessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health {{- if .Values.standalone.tls }} 
--enable-tls {{- else }} --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.standalone.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.standalone.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.standalone.readinessProbe.periodSeconds 
}}
+            timeoutSeconds: {{ 
.Values.standalone.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.standalone.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.standalone.readinessProbe.failureThreshold }}
           livenessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health {{- if .Values.standalone.tls }} 
--enable-tls {{- else }} --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
-          
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.standalone.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.standalone.livenessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.standalone.livenessProbe.periodSeconds }}
+            timeoutSeconds: {{ .Values.standalone.livenessProbe.timeoutSeconds 
}}
+            successThreshold: {{ 
.Values.standalone.livenessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.standalone.livenessProbe.failureThreshold }}
+          startupProbe:
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.standalone.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.standalone.startupProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.standalone.startupProbe.periodSeconds }}
+            timeoutSeconds: {{ .Values.standalone.startupProbe.timeoutSeconds 
}}
+            successThreshold: {{ 
.Values.standalone.startupProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.standalone.startupProbe.failureThreshold }}
           {{- if.Values.standalone.resources }}
           resources:
             {{- if.Values.standalone.resources.requests }}
@@ -256,27 +273,22 @@ spec:
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  labels:
-    app: {{ template "banyandb.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
-    component: data
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-  name: {{ template "banyandb.fullname" . }}
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: data
+  name: {{ template "banyandb.fullname" . }}-data
 spec:
   serviceName: banyandb
   replicas: {{ .Values.cluster.data.replicas }}
   selector:
-    matchLabels:
-      app: {{ template "banyandb.name" . }}
-      component: data
-      release: {{ .Release.Name }}
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: data
+  updateStrategy:
+    type: RollingUpdate
+  podManagementPolicy: Parallel
   template:
     metadata:
-      labels:
-        app: {{ template "banyandb.name" . }}
-        component: data
-        release: {{ .Release.Name }}
+      labels: {{ include "banyandb.labels" . | nindent 8 }}
+        app.kubernetes.io/component: data
       {{- if .Values.cluster.data.podAnnotations }}
       annotations:
 {{ toYaml .Values.cluster.data.podAnnotations | indent 8 }}
@@ -290,7 +302,7 @@ spec:
       priorityClassName: {{ .Values.cluster.data.priorityClassName }}
       containers:
         - name: data
-          image: {{ .Values.image.repository }}:{{ required 
"banyandb.image.tag is required" .Values.image.tag }}
+          image: {{ .Values.image.repository }}:{{ required 
"banyandb.image.tag is required" .Values.image.tag }}-slim
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             {{- range $env := .Values.cluster.data.env }}
@@ -342,27 +354,42 @@ spec:
           ports:
             - containerPort: 17912
               name: grpc
+            - containerPort: 17913
+              name: http-healthz
             - containerPort: 6060
               name: pprof
             - containerPort: 2121
               name: observebility
           readinessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health --grpc-addr=localhost:17912 {{- if 
.Values.cluster.data.tls }} --enable-tls  --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              scheme: HTTP
+            initialDelaySeconds: {{ 
.Values.cluster.data.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ 
.Values.cluster.data.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ 
.Values.cluster.data.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.data.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.data.readinessProbe.failureThreshold }}
           livenessProbe:
-            exec:
-              command:
-                - sh
-                - -c
-                - "/bydbctl health --grpc-addr=localhost:17912 {{- if 
.Values.cluster.data.tls }} --enable-tls  --insecure{{- end}}"
-            initialDelaySeconds: 20
-            periodSeconds: 60
-          
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              scheme: HTTP
+            initialDelaySeconds: {{ 
.Values.cluster.data.livenessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.cluster.data.livenessProbe.periodSeconds 
}}
+            timeoutSeconds: {{ 
.Values.cluster.data.livenessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.data.livenessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.data.livenessProbe.failureThreshold }}
+          startupProbe:
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              scheme: HTTP
+            initialDelaySeconds: {{ 
.Values.cluster.data.startupProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.cluster.data.startupProbe.periodSeconds 
}}
+            timeoutSeconds: {{ 
.Values.cluster.data.startupProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.data.startupProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.data.startupProbe.failureThreshold }}
           {{- if.Values.cluster.data.resources }}
           resources:
             {{- if.Values.cluster.data.resources.requests }}
@@ -477,40 +504,46 @@ spec:
       {{- end }}
 
       {{- if .Values.cluster.data.affinity }}
-      {{- $affinity := .Values.cluster.data.affinity }}
+      affinity: {{ toYaml .Values.cluster.data.affinity | nindent 8 }}
+      {{- else if or .Values.cluster.data.podAffinityPreset 
.Values.cluster.data.podAntiAffinityPreset }}
       affinity:
-        {{- if $affinity.nodeAffinity }}
-        nodeAffinity:
+        {{- if and .Values.cluster.data.podAffinityPreset (not (empty 
.Values.cluster.data.podAffinityPreset)) }}
+        podAffinity:
+          {{- if eq .Values.cluster.data.podAffinityPreset "soft" }}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: data
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.data.podAffinityPreset "hard" }}
           requiredDuringSchedulingIgnoredDuringExecution:
-            nodeSelectorTerms:
-            {{- range $requirement := 
$affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
 }}
-              {{- range $matchExpression := $requirement.matchExpressions }}
-                - matchExpressions:
-                    - key: {{ $matchExpression.key }}
-                      operator: {{ $matchExpression.operator }}
-                      values:
-                        {{- range $v := $matchExpression.values }}
-                        - {{ $v }}
-                        {{- end }}
-              {{- end }}
-            {{- end }}
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: data
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
         {{- end }}
-
-        {{- if $affinity.podAffinity }}
-        podAffinity:
+        {{- if and .Values.cluster.data.podAntiAffinityPreset (not (empty 
.Values.cluster.data.podAntiAffinityPreset)) }}
+        podAntiAffinity:
+          {{- if eq .Values.cluster.data.podAntiAffinityPreset "soft" }}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: data
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.data.podAntiAffinityPreset "hard" }}
           requiredDuringSchedulingIgnoredDuringExecution:
-            {{- range $term := 
$affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution }}
-            - topologyKey: {{ $term.topologyKey }}
-              namespaces:
-                {{- range $ns := $term.namespaces }}
-                - {{ $ns }}
-                {{- end }}
-              labelSelector:
-                matchLabels:
-                  {{- range $label := $term.labelSelector.matchLabels }}
-                  {{ $label.key }}: {{ $label.value }}
-                  {{- end }}
-            {{- end }}
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: data
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
         {{- end }}
       {{- end }}
   {{- if .Values.storage.enabled }}
diff --git a/chart/templates/ui_deployment.yaml 
b/chart/templates/ui_deployment.yaml
new file mode 100644
index 0000000..1e6f77d
--- /dev/null
+++ b/chart/templates/ui_deployment.yaml
@@ -0,0 +1,236 @@
+{{/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
+{{- if and .Values.cluster.enabled (eq .Values.cluster.ui.type "Standalone") }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels: {{ include "banyandb.labels" . | nindent 4 }}
+    app.kubernetes.io/component: ui
+  name: {{ template "banyandb.fullname" . }}-ui
+spec:
+  replicas: {{ .Values.cluster.ui.standalone.replicas }}
+  selector:
+    matchLabels: {{ include "banyandb.selectorLabels" . | nindent 6 }}
+      app.kubernetes.io/component: ui
+  strategy: {{ toYaml .Values.cluster.ui.standalone.updateStrategy | nindent 4 
}}
+  template:
+    metadata:
+      labels: {{ include "banyandb.labels" . | nindent 8 }}
+        app.kubernetes.io/component: ui
+      {{- if .Values.cluster.ui.standalone.podAnnotations }}
+      annotations:
+{{ toYaml .Values.cluster.ui.standalone.podAnnotations | indent 8 }}
+      {{- end }}
+    spec:
+      serviceAccountName: {{ template "banyandb.serviceAccountName" . }}
+      {{- with .Values.cluster.ui.standalone.securityContext }}
+      securityContext:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      priorityClassName: {{ .Values.cluster.ui.standalone.priorityClassName }}
+      containers:
+        - name: ui
+          image: {{ .Values.image.repository }}:{{ required 
"banyandb.image.tag is required" .Values.image.tag }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          env:
+            {{- range $env := .Values.cluster.ui.standalone.env }}
+            - name: {{ $env.name }}
+              value: {{ $env.value }}
+            {{- end }}
+            {{- if .Values.cluster.ui.standalone.tls }}
+            {{- if .Values.cluster.ui.standalone.tls.httpSecretName }}
+            - name: BYDB_HTTP_TLS
+              value: "true"
+            - name: BYDB_HTTP_CERT_FILE
+              value: "/etc/tls/{{ 
.Values.cluster.ui.standalone.tls.httpSecretName }}/tls.crt"
+            - name: BYDB_HTTP_KEY_FILE
+              value: "/etc/tls/{{ 
.Values.cluster.ui.standalone.tls.httpSecretName }}/tls.key"
+            {{- end }}
+            {{- end }}
+            {{- if and .Values.etcd.auth.rbac.create (not 
.Values.etcd.auth.rbac.allowNoneAuthentication) }}
+            - name: BYDB_ETCD_USERNAME
+              value: "root"
+            - name: BYDB_ETCD_PASSWORD
+              value: {{ .Values.etcd.auth.rbac.rootPassword }}
+            {{- end }}
+            {{- if .Values.etcd.auth.client.secureTransport }}
+            - name: BYDB_ETCD_TLS_CA_FILE
+              value: "/etc/tls/{{ 
.Values.cluster.ui.standalone.tls.etcdSecretName }}/ca.crt"
+            {{- end }}
+            {{- if .Values.etcd.auth.client.enableAuthentication }}
+            - name: BYDB_ETCD_TLS_CERT_FILE
+              value: "/etc/tls/{{ 
.Values.cluster.ui.standalone.tls.etcdSecretName }}/tls.crt"
+            - name: BYDB_ETCD_TLS_KEY_FILE
+              value: "/etc/tls/{{ 
.Values.cluster.ui.standalone.tls.etcdSecretName }}/tls.key"
+            {{- end }}
+            {{- if and (not .Values.etcd.enabled) 
.Values.cluster.etcdEndpoints }}
+            - name: BYDB_ETCD_ENDPOINTS
+              value: "{{- .Values.cluster.etcdEndpoints | join "," -}}"
+            {{- else }}
+            {{- include "banyandb.etcdEndpoints" . | nindent 12 }}
+            {{- end }}
+          args:
+            - liaison
+          ports:
+            - containerPort: 17913
+              name: http
+            - containerPort: 6060
+              name: pprof
+            - containerPort: 2121
+              name: observebility
+          readinessProbe:
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.cluster.ui.standalone.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.ui.standalone.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.ui.standalone.readinessProbe.failureThreshold }}
+          livenessProbe:
+            httpGet:
+              path: /api/healthz
+              port: 17913
+              {{- if .Values.cluster.ui.standalone.tls }}
+              scheme: HTTPS
+              {{- else }}
+              scheme: HTTP
+              {{- end }}
+            initialDelaySeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.periodSeconds }}
+            timeoutSeconds: {{ 
.Values.cluster.ui.standalone.readinessProbe.timeoutSeconds }}
+            successThreshold: {{ 
.Values.cluster.ui.standalone.readinessProbe.successThreshold }}
+            failureThreshold: {{ 
.Values.cluster.ui.standalone.readinessProbe.failureThreshold }}
+          
+          {{- if.Values.cluster.ui.standalone.resources }}
+          resources:
+            {{- if.Values.cluster.ui.standalone.resources.requests }}
+            requests:
+              {{- range $request := 
.Values.cluster.ui.standalone.resources.requests }}
+              {{ $request.key }}: {{ $request.value }}
+              {{- end }}
+            {{- end }}
+            {{- if.Values.cluster.ui.standalone.resources.limits }}
+            limits:
+              {{- range $limit := 
.Values.cluster.ui.standalone.resources.limits }}
+              {{ $limit.key }}: {{ $limit.value }}
+              {{- end }}
+            {{- end }}
+          {{- end }}
+
+          {{- if .Values.cluster.ui.standalone.tls }}
+          volumeMounts:
+            {{- if .Values.cluster.ui.standalone.tls.grpcSecretName }}
+            - mountPath: /etc/tls/{{ 
.Values.cluster.ui.standalone.tls.grpcSecretName }}
+              name: {{ .Values.cluster.ui.standalone.tls.grpcSecretName 
}}-volume
+            {{- end }}
+            {{- if .Values.cluster.ui.standalone.tls.etcdSecretName }}
+            - mountPath: /etc/tls/{{ 
.Values.cluster.ui.standalone.tls.etcdSecretName }}
+              name: {{ .Values.cluster.ui.standalone.tls.etcdSecretName 
}}-volume
+            {{- end }}
+            {{- if and .Values.cluster.ui.standalone.tls.httpSecretName (ne 
.Values.cluster.ui.standalone.tls.httpSecretName 
.Values.cluster.ui.standalone.tls.grpcSecretName) }}
+            - mountPath: /etc/tls/{{ 
.Values.cluster.ui.standalone.tls.httpSecretName }}
+              name: {{ .Values.cluster.ui.standalone.tls.httpSecretName 
}}-volume
+            {{- end }}
+          {{- end }}
+
+      {{- if .Values.cluster.ui.standalone.tls }}
+      volumes:
+        {{- if .Values.cluster.ui.standalone.tls.grpcSecretName }}
+        - name: {{ .Values.cluster.ui.standalone.tls.grpcSecretName }}-volume
+          secret:
+            secretName: {{ .Values.cluster.ui.standalone.tls.grpcSecretName }}
+        {{- end }}
+        {{- if .Values.cluster.ui.standalone.tls.etcdSecretName }}
+        - name: {{ .Values.cluster.ui.standalone.tls.etcdSecretName }}-volume
+          secret:
+            secretName: {{ .Values.cluster.ui.standalone.tls.etcdSecretName }}
+        {{- end }}
+        {{- if and .Values.cluster.ui.standalone.tls.httpSecretName (ne 
.Values.cluster.ui.standalone.tls.httpSecretName 
.Values.cluster.ui.standalone.tls.grpcSecretName) }}
+        - name: {{ .Values.cluster.ui.standalone.tls.httpSecretName }}-volume
+          secret:
+            secretName: {{ .Values.cluster.ui.standalone.tls.httpSecretName }}
+        {{- end }}
+      {{- end }}
+
+      {{- if .Values.cluster.ui.standalone.tolerations }}
+      tolerations:
+        {{- range $toleration := .Values.cluster.ui.standalone.tolerations }}
+        - key: {{ $toleration.key }}
+          operator: {{ $toleration.operator }}
+          value: {{ $toleration.value }}
+          effect: {{ $toleration.effect }}
+        {{- end }}
+      {{- end }}
+
+      {{- if .Values.cluster.ui.standalone.nodeSelector }}
+      nodeSelector:
+        {{- range $selector := .Values.cluster.ui.standalone.nodeSelector }}
+        {{ $selector.key }}: {{ $selector.value }}
+        {{- end }}
+      {{- end }}
+
+      {{- if .Values.cluster.ui.standalone.affinity }}
+      affinity: {{ toYaml .Values.cluster.ui.standalone.affinity | nindent 8 }}
+      {{- else if or .Values.cluster.ui.standalone.podAffinityPreset 
.Values.cluster.ui.standalone.podAntiAffinityPreset }}
+      affinity:
+        {{- if and .Values.cluster.ui.standalone.podAffinityPreset (not (empty 
.Values.cluster.ui.standalone.podAffinityPreset)) }}
+        podAffinity:
+          {{- if eq .Values.cluster.ui.standalone.podAffinityPreset "soft" }}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: ui
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.ui.standalone.podAffinityPreset 
"hard" }}
+          requiredDuringSchedulingIgnoredDuringExecution:
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: ui
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
+        {{- end }}
+        {{- if and .Values.cluster.ui.standalone.podAntiAffinityPreset (not 
(empty .Values.cluster.ui.standalone.podAntiAffinityPreset)) }}
+        podAntiAffinity:
+          {{- if eq .Values.cluster.ui.standalone.podAntiAffinityPreset "soft" 
}}
+          preferredDuringSchedulingIgnoredDuringExecution:
+            - weight: 100
+              podAffinityTerm:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: ui
+                topologyKey: kubernetes.io/hostname
+          {{- else if eq .Values.cluster.ui.standalone.podAntiAffinityPreset 
"hard" }}
+          requiredDuringSchedulingIgnoredDuringExecution:
+            - labelSelector:
+                labelSelector:
+                  matchLabels: {{ include "banyandb.selectorLabels" . | 
nindent 20 }}
+                    app.kubernetes.io/component: ui
+              topologyKey: kubernetes.io/hostname
+          {{- end }}
+        {{- end }}
+      {{- end }}
+{{- end }}
diff --git a/chart/values.yaml b/chart/values.yaml
index f23ade8..d786076 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -19,72 +19,65 @@
 
 image:
   repository: docker.io/apache/skywalking-banyandb
-  tag: 0.6.1
+  tag: 0.7.0-rc0
   pullPolicy: IfNotPresent
 
 standalone:
   enabled: false
-  podAnnotations: 
+  podAnnotations:
     example: banyandb-foo
   securityContext: {}
-    # runAsUser: 1000
-    # runAsGroup: 1000
-    # fsGroup: 1000
+  # runAsUser: 1000
+  # runAsGroup: 1000
+  # fsGroup: 1000
   env: []
-    # - name: BANYANDB_FOO
-    #   value: "bar"
+  # - name: BANYANDB_FOO
+  #   value: "bar"
   priorityClassName: ""
   podDisruptionBudget: {}
-    # minAvailable: 1
-    # maxUnavailable: 2
-    # matchLabels:
-    #   - key: foo
-    #     value: bar
-    # matchExpressions:
-    #   - key: foo
-    #     operator: In
-    #     values: [bar, baz]
-    # paused: false
+  # minAvailable: 1
+  # maxUnavailable: 2
+  # paused: false
   tolerations: []
-    # - key: foo
-    #   value: bar
-    #   operator: Equal
-    #   effect: NoSchedule
+  # - key: foo
+  #   value: bar
+  #   operator: Equal
+  #   effect: NoSchedule
   nodeSelector: []
-    # - key: foo
-    #   value: bar
+  # - key: foo
+  #   value: bar
   affinity: {}
-    # nodeAffinity:
-    #   requiredDuringSchedulingIgnoredDuringExecution:
-    #     nodeSelectorTerms:
-    #       - matchExpressions:
-    #           - key: foo
-    #             operator: In
-    #             values:
-    #               - bar
-    #               - baz
-    # podAffinity:
-    #   requiredDuringSchedulingIgnoredDuringExecution:
-    #     - labelSelector:
-    #         matchLabels:
-    #           - key: app
-    #             value: banyandb
-    #       topologyKey: "kubernetes.io/hostname"
-    #       namespaces: []
+  # nodeAffinity:
+  #   requiredDuringSchedulingIgnoredDuringExecution:
+  #     nodeSelectorTerms:
+  #       - matchExpressions:
+  #           - key: foo
+  #             operator: In
+  #             values:
+  #               - bar
+  #               - baz
+  # podAffinity:
+  #   requiredDuringSchedulingIgnoredDuringExecution:
+  #     - labelSelector:
+  #         matchLabels:
+  #           - key: app
+  #             value: banyandb
+  #       topologyKey: "kubernetes.io/hostname"
+  #       namespaces: []
   resources:
     requests: []
-      # - key: cpu
-      #   value: "100m"
-      # - key: memory
-      #   value: "256Mi"
+    # - key: cpu
+    #   value: "100m"
+    # - key: memory
+    #   value: "256Mi"
     limits: []
-      # - key: cpu
-      #   value: "500m"
-      # - key: memory
-      #   value: "512Mi"
-  tls:
-    grpcSecretName: ""
-    httpSecretName: ""
+    # - key: cpu
+    #   value: "500m"
+    # - key: memory
+    #   value: "512Mi"
+  # tls:
+  #   grpcSecretName: ""
+  #   httpSecretName: ""
 
   grpcSvc:
     labels: {}
@@ -105,90 +98,110 @@ standalone:
     labels: {}
     annotations: {}
     rules: []
-      # - host: localhost
-      #   paths:
-      #     - path: /
-      #       port: 17913
-      #       serviceName: banyandb-http
+    # - host: localhost
+    #   paths:
+    #     - path: /
+    #       port: 17913
+    #       serviceName: banyandb-http
     tls: []
-      # - hosts:
-      #     - localhost
-      #   secretName: tls-secret
-  
+    # - hosts:
+    #     - localhost
+    #   secretName: tls-secret
+
   sidecar: []
-    # - name: cleanup-sidecar
-    #   image: busybox:latest
-    #   imagePullPolicy: IfNotPresent
-    #   commands: 
-    #     preStop: ["sh", "-c", "rm -rf /path/to/cleanup"]
+  # - name: cleanup-sidecar
+  #   image: busybox:latest
+  #   imagePullPolicy: IfNotPresent
+  #   commands: 
+  #     preStop: ["sh", "-c", "rm -rf /path/to/cleanup"]
+  livenessProbe:
+    initialDelaySeconds: 20
+    periodSeconds: 30
+    timeoutSeconds: 5
+    successThreshold: 1
+    failureThreshold: 5
+
+  readinessProbe:
+    initialDelaySeconds: 20
+    periodSeconds: 30
+    timeoutSeconds: 5
+    successThreshold: 1
+    failureThreshold: 5
+
+  startupProbe:
+    initialDelaySeconds: 0
+    periodSeconds: 10
+    timeoutSeconds: 5
+    successThreshold: 1
+    failureThreshold: 60
 
 cluster:
   enabled: true
   etcdEndpoints: []
   liaison:
     replicas: 2
-    podAnnotations: 
-      # example: banyandb-foo
+    podAnnotations:
+    # example: banyandb-foo
     securityContext: {}
-      # runAsUser: 1000
-      # runAsGroup: 1000
-      # fsGroup: 1000
+    # runAsUser: 1000
+    # runAsGroup: 1000
+    # fsGroup: 1000
     env: []
-      # - name: BANYANDB_FOO
-      #   value: "bar"
+    # - name: BANYANDB_FOO
+    #   value: "bar"
     priorityClassName: ""
+    updateStrategy:
+      type: RollingUpdate
+      rollingUpdate:
+        maxUnavailable: 1
+        maxSurge: 1
     podDisruptionBudget: {}
-      # minAvailable: 1
-      # maxUnavailable: 2
-      # matchLabels:
-      #   - key: foo
-      #     value: bar
-      # matchExpressions:
-      #   - key: foo
-      #     operator: In
-      #     values: [bar, baz]
-      # paused: false
+    #  minAvailable: 1
+    # maxUnavailable: 2
+    # paused: false
     tolerations: []
-      # - key: foo
-      #   value: bar
-      #   operator: Equal
-      #   effect: NoSchedule
+    # - key: foo
+    #   value: bar
+    #   operator: Equal
+    #   effect: NoSchedule
     nodeSelector: []
-      # - key: foo
-      #   value: bar
+    # - key: foo
+    #   value: bar
     affinity: {}
-      # nodeAffinity:
-      #   requiredDuringSchedulingIgnoredDuringExecution:
-      #     nodeSelectorTerms:
-      #       - matchExpressions:
-      #           - key: foo
-      #             operator: In
-      #             values:
-      #               - bar
-      #               - baz
-      # podAffinity:
-      #   requiredDuringSchedulingIgnoredDuringExecution:
-      #     - labelSelector:
-      #         matchLabels:
-      #           - key: app
-      #             value: banyandb
-      #       topologyKey: "kubernetes.io/hostname"
-      #       namespaces: []
+    # nodeAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     nodeSelectorTerms:
+    #       - matchExpressions:
+    #           - key: foo
+    #             operator: In
+    #             values:
+    #               - bar
+    #               - baz
+    # podAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     - labelSelector:
+    #         matchLabels:
+    #           - key: app
+    #             value: banyandb
+    #       topologyKey: "kubernetes.io/hostname"
+    #       namespaces: []
+    podAffinityPreset: ""
+    podAntiAffinityPreset: soft
     resources:
       requests: []
-        # - key: cpu
-        #   value: "100m"
-        # - key: memory
-        #   value: "256Mi"
+      # - key: cpu
+      #   value: "100m"
+      # - key: memory
+      #   value: "256Mi"
       limits: []
-        # - key: cpu
-        #   value: "500m"
-        # - key: memory
-        #   value: "512Mi"
+      # - key: cpu
+      #   value: "500m"
+      # - key: memory
+      #   value: "512Mi"
     # tls:
-      # grpcSecretName: ""
-      # httpSecretName: ""
-      # etcdSecretName: ""
+    # grpcSecretName: ""
+    # httpSecretName: ""
+    # etcdSecretName: ""
 
     grpcSvc:
       labels: {}
@@ -209,49 +222,157 @@ cluster:
       labels: {}
       annotations: {}
       rules: []
-        # - host: localhost
-        #   paths:
-        #     - path: /
-        #       port: 17913
-        #       serviceName: banyandb-http
+      # - host: localhost
+      #   paths:
+      #     - path: /
+      #       port: 17913
+      #       serviceName: banyandb-http
       tls: []
-        # - hosts:
-        #     - localhost
-        #   secretName: tls-secret
+      # - hosts:
+      #     - localhost
+      #   secretName: tls-secret
+    livenessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 30
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 5
+
+    readinessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 30
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 5
 
   data:
     name: banyandb
     replicas: 3
-    podAnnotations: 
-      # example: banyandb-foo
+    podAnnotations:
+    # example: banyandb-foo
     securityContext: {}
+    # runAsUser: 1000
+    # runAsGroup: 1000
+    # fsGroup: 1000
+    env: []
+    # - name: BANYANDB_FOO
+    #   value: "bar"
+    priorityClassName: ""
+    podDisruptionBudget:
+      maxUnavailable: 1
+    # minAvailable: 1
+    # paused: false
+    tolerations: []
+    # - key: foo
+    #   value: bar
+    #   operator: Equal
+    #   effect: NoSchedule
+    nodeSelector: []
+    # - key: foo
+    #   value: bar
+    affinity: {}
+    # nodeAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     nodeSelectorTerms:
+    #       - matchExpressions:
+    #           - key: foo
+    #             operator: In
+    #             values:
+    #               - bar
+    #               - baz
+    # podAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     - labelSelector:
+    #         matchExpressions:
+    #           - key: app.kubernetes.io/component
+    #             operator: In
+    #             values:
+    #               - liaison
+    #       topologyKey: "kubernetes.io/hostname"
+    #       namespaces: []
+    podAffinityPreset: ""
+    podAntiAffinityPreset: soft
+    resources:
+      requests: []
+      # - key: cpu
+      #   value: "100m"
+      # - key: memory
+      #   value: "256Mi"
+      limits: []
+      # - key: cpu
+      #   value: "500m"
+      # - key: memory
+      #   value: "512Mi"
+    # tls:
+    #   grpcSecretName: ""
+    #   etcdSecretName: ""
+
+    grpcSvc:
+      labels: {}
+      annotations: {}
+      port: 17912
+
+    sidecar: []
+    # - name: cleanup-sidecar
+    #   image: busybox:latest
+    #   imagePullPolicy: IfNotPresent
+    #   commands: 
+    #     normal: ["sh", "-c", "while true; do echo 'sidecar task'; sleep 60; 
done"]
+    #     preStop: ["sh", "-c", "echo cleanup"]
+    livenessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 30
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 5
+    readinessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 30
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 5
+    startupProbe:
+      initialDelaySeconds: 0
+      periodSeconds: 10
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 60
+  ui:
+    # Available UI type: 
+    # None: Disable UI
+    # Standalone: Standalone UI deployment
+    # Embedded: Embedded UI in Liaison
+    type: Embedded
+    standalone:
+      replicas: 1
+      podAnnotations:
+      # example: banyandb-foo
+      securityContext: {}
       # runAsUser: 1000
       # runAsGroup: 1000
       # fsGroup: 1000
-    env: []
+      env: []
       # - name: BANYANDB_FOO
       #   value: "bar"
-    priorityClassName: ""
-    podDisruptionBudget: {}
-      # minAvailable: 1
+      priorityClassName: ""
+      updateStrategy:
+        type: RollingUpdate
+        rollingUpdate:
+          maxUnavailable: 1
+          maxSurge: 1
+      podDisruptionBudget: {}
+      #  minAvailable: 1
       # maxUnavailable: 2
-      # matchLabels:
-      #   - key: foo
-      #     value: bar
-      # matchExpressions:
-      #   - key: foo
-      #     operator: In
-      #     values: [bar, baz]
       # paused: false
-    tolerations: []
+      tolerations: []
       # - key: foo
       #   value: bar
       #   operator: Equal
       #   effect: NoSchedule
-    nodeSelector: []
+      nodeSelector: []
       # - key: foo
       #   value: bar
-    affinity: {}
+      affinity: {}
       # nodeAffinity:
       #   requiredDuringSchedulingIgnoredDuringExecution:
       #     nodeSelectorTerms:
@@ -269,34 +390,61 @@ cluster:
       #             value: banyandb
       #       topologyKey: "kubernetes.io/hostname"
       #       namespaces: []
-    resources:
-      requests: []
+      podAffinityPreset: ""
+      podAntiAffinityPreset: soft
+      resources:
+        requests: []
         # - key: cpu
         #   value: "100m"
         # - key: memory
         #   value: "256Mi"
-      limits: []
+        limits: []
         # - key: cpu
         #   value: "500m"
         # - key: memory
         #   value: "512Mi"
-    # tls:
-    #   grpcSecretName: ""
-    #   etcdSecretName: ""
+      # tls:
+      # grpcSecretName: ""
+      # httpSecretName: ""
+      # etcdSecretName: ""
 
-    grpcSvc:
-      labels: {}
-      annotations: {}
-      port: 17912
+      httpSvc:
+        labels: {}
+        annotations: {}
+        port: 17913
+        type: LoadBalancer
+        externalIPs: []
+        loadBalancerIP: null
+        loadBalancerSourceRanges: []
+
+      ingress:
+        enabled: false
+        labels: {}
+        annotations: {}
+        rules: []
+        # - host: localhost
+        #   paths:
+        #     - path: /
+        #       port: 17913
+        #       serviceName: banyandb-ui
+        tls: []
+        # - hosts:
+        #     - localhost
+        #   secretName: tls-secret
+      livenessProbe:
+        initialDelaySeconds: 20
+        periodSeconds: 30
+        timeoutSeconds: 5
+        successThreshold: 1
+        failureThreshold: 5
+
+      readinessProbe:
+        initialDelaySeconds: 20
+        periodSeconds: 30
+        timeoutSeconds: 5
+        successThreshold: 1
+        failureThreshold: 5
 
-    sidecar: []
-      # - name: cleanup-sidecar
-      #   image: busybox:latest
-      #   imagePullPolicy: IfNotPresent
-      #   commands: 
-      #     normal: ["sh", "-c", "while true; do echo 'sidecar task'; sleep 
60; done"]
-      #     preStop: ["sh", "-c", "echo cleanup"]
-        
 storage:
   enabled: false
   persistentVolumeClaims:
@@ -333,7 +481,7 @@ etcd:
     rbac:
       create: true
       allowNoneAuthentication: false
-      rootPassword: banyandb 
+      rootPassword: banyandb
     client:
       secureTransport: false
       existingSecret: ""
@@ -341,8 +489,13 @@ etcd:
       certFilename: tls.crt
       certKeyFilename: tls.key
       caFilename: ""
-  # extraEnvVars:
-  #   - name: ETCDCTL_CACERT
-  #     value: /opt/bitnami/etcd/certs/client/ca.crt
+      # extraEnvVars:
+      #   - name: ETCDCTL_CACERT
+      #     value: /opt/bitnami/etcd/certs/client/ca.crt
+  livenessProbe:
+    initialDelaySeconds: 10
+  readinessProbe:
+    initialDelaySeconds: 10
 
-fullnameOverride: "banyandb"
+fullnameOverride: ""
+nameOverride: "banyandb"
diff --git a/test/e2e/traffic-gen.yaml b/test/e2e/traffic-gen.yaml
index 549bcfd..2e24dbb 100644
--- a/test/e2e/traffic-gen.yaml
+++ b/test/e2e/traffic-gen.yaml
@@ -37,4 +37,4 @@ spec:
           command: ["wrk", "-t1", "-c1", "-d20m", 
"http://istio-ingressgateway.istio-system:80/productpage";]
           resources:
             requests:
-              cpu: 0.1
\ No newline at end of file
+              cpu: 0.1
diff --git a/test/e2e/values.cluster.yaml b/test/e2e/values.cluster.yaml
index af508a1..3917ad4 100644
--- a/test/e2e/values.cluster.yaml
+++ b/test/e2e/values.cluster.yaml
@@ -19,7 +19,7 @@
 
 image:
   repository: docker.io/apache/skywalking-banyandb
-  tag: 0.6.1
+  tag: 0.7.0-rc0
   pullPolicy: IfNotPresent
 
 cluster:
@@ -27,64 +27,71 @@ cluster:
   etcdEndpoints: []
   liaison:
     replicas: 1
-    podAnnotations: 
+    podAnnotations:
       example: banyandb-foo
     securityContext: {}
-      # runAsUser: 1000
-      # runAsGroup: 1000
-      # fsGroup: 1000
+    # runAsUser: 1000
+    # runAsGroup: 1000
+    # fsGroup: 1000
     env: []
-      # - name: BANYANDB_FOO
-      #   value: "bar"
+    # - name: BANYANDB_FOO
+    #   value: "bar"
     priorityClassName: ""
     podDisruptionBudget: {}
-      # minAvailable: 1
-      # maxUnavailable: 2
-      # matchLabels:
-      #   - key: foo
-      #     value: bar
-      # matchExpressions:
-      #   - key: foo
-      #     operator: In
-      #     values: [bar, baz]
-      # paused: false
+    updateStrategy:
+      type: RollingUpdate
+      rollingUpdate:
+        maxUnavailable: 1
+        maxSurge: 1
+    # minAvailable: 1
+    # maxUnavailable: 2
+    # matchLabels:
+    #   - key: foo
+    #     value: bar
+    # matchExpressions:
+    #   - key: foo
+    #     operator: In
+    #     values: [bar, baz]
+    # paused: false
     tolerations: []
-      # - key: foo
-      #   value: bar
-      #   operator: Equal
-      #   effect: NoSchedule
+    # - key: foo
+    #   value: bar
+    #   operator: Equal
+    #   effect: NoSchedule
     nodeSelector: []
-      # - key: foo
-      #   value: bar
+    # - key: foo
+    #   value: bar
     affinity: {}
-      # nodeAffinity:
-      #   requiredDuringSchedulingIgnoredDuringExecution:
-      #     nodeSelectorTerms:
-      #       - matchExpressions:
-      #           - key: foo
-      #             operator: In
-      #             values:
-      #               - bar
-      #               - baz
-      # podAffinity:
-      #   requiredDuringSchedulingIgnoredDuringExecution:
-      #     - labelSelector:
-      #         matchLabels:
-      #           - key: app
-      #             value: banyandb
-      #       topologyKey: "kubernetes.io/hostname"
-      #       namespaces: []
+    # nodeAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     nodeSelectorTerms:
+    #       - matchExpressions:
+    #           - key: foo
+    #             operator: In
+    #             values:
+    #               - bar
+    #               - baz
+    # podAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     - labelSelector:
+    #         matchLabels:
+    #           - key: app
+    #             value: banyandb
+    #       topologyKey: "kubernetes.io/hostname"
+    #       namespaces: []
+    podAffinityPreset: ""
+    podAntiAffinityPreset: soft
     resources:
       requests: []
-        # - key: cpu
-        #   value: "100m"
-        # - key: memory
-        #   value: "256Mi"
+      # - key: cpu
+      #   value: "100m"
+      # - key: memory
+      #   value: "256Mi"
       limits: []
-        # - key: cpu
-        #   value: "500m"
-        # - key: memory
-        #   value: "512Mi"
+      # - key: cpu
+      #   value: "500m"
+      # - key: memory
+      #   value: "512Mi"
     # tls:
     #   grpcSecretName: ""
     #   httpSecretName: ""
@@ -109,48 +116,159 @@ cluster:
       labels: {}
       annotations: {}
       rules: []
-        # - host: localhost
-        #   paths:
-        #     - path: /
-        #       port: 17913
-        #       serviceName: banyandb-http
+      # - host: localhost
+      #   paths:
+      #     - path: /
+      #       port: 17913
+      #       serviceName: banyandb-http
       tls: []
-        # - hosts:
-        #     - localhost
-        #   secretName: tls-secret
+      # - hosts:
+      #     - localhost
+      #   secretName: tls-secret
+
+    livenessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 5
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 60
+
+    readinessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 5
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 60
 
   data:
     replicas: 1
-    podAnnotations: 
+    podAnnotations:
       example: banyandb-foo
     securityContext: {}
+    # runAsUser: 1000
+    # runAsGroup: 1000
+    # fsGroup: 1000
+    env: []
+    # - name: BANYANDB_FOO
+    #   value: "bar"
+    priorityClassName: ""
+    podDisruptionBudget:
+      maxUnavailable: 1
+    # minAvailable: 1
+    # maxUnavailable: 2
+    # matchLabels:
+    #   - key: foo
+    #     value: bar
+    # matchExpressions:
+    #   - key: foo
+    #     operator: In
+    #     values: [bar, baz]
+    # paused: false
+    tolerations: []
+    # - key: foo
+    #   value: bar
+    #   operator: Equal
+    #   effect: NoSchedule
+    nodeSelector: []
+    # - key: foo
+    #   value: bar
+    affinity: {}
+    # nodeAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     nodeSelectorTerms:
+    #       - matchExpressions:
+    #           - key: foo
+    #             operator: In
+    #             values:
+    #               - bar
+    #               - baz
+    # podAffinity:
+    #   requiredDuringSchedulingIgnoredDuringExecution:
+    #     - labelSelector:
+    #         matchLabels:
+    #           - key: app
+    #             value: banyandb
+    #       topologyKey: "kubernetes.io/hostname"
+    #       namespaces: []
+    podAffinityPreset: ""
+    podAntiAffinityPreset: soft
+    resources:
+      requests: []
+      # - key: cpu
+      #   value: "100m"
+      # - key: memory
+      #   value: "256Mi"
+      limits: []
+      # - key: cpu
+      #   value: "500m"
+      # - key: memory
+      #   value: "512Mi"
+      # tls:
+      #   grpcSecretName: ""
+      #   etcdSecretName: ""
+
+    grpcSvc:
+      labels: {}
+      annotations: {}
+      port: 17912
+
+    sidecar: []
+    # - name: cleanup-sidecar
+    #   image: busybox:latest
+    #   imagePullPolicy: IfNotPresent
+    #   commands: 
+    #     normal: ["sh", "-c", "while true; do echo 'sidecar task'; sleep 60; 
done"]
+    #     preStop: ["sh", "-c", "echo cleanup"]
+
+    livenessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 5
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 60
+
+    readinessProbe:
+      initialDelaySeconds: 20
+      periodSeconds: 5
+      timeoutSeconds: 5
+      successThreshold: 1
+      failureThreshold: 60
+  ui:
+    # Available UI type: 
+    # None: Disable UI
+    # Standalone: Standalone UI deployment
+    # Embedded: Embedded UI in Liaison
+    type: Embedded
+    standalone:
+      replicas: 1
+      podAnnotations:
+      # example: banyandb-foo
+      securityContext: {}
       # runAsUser: 1000
       # runAsGroup: 1000
       # fsGroup: 1000
-    env: []
+      env: []
       # - name: BANYANDB_FOO
       #   value: "bar"
-    priorityClassName: ""
-    podDisruptionBudget: {}
-      # minAvailable: 1
+      priorityClassName: ""
+      updateStrategy:
+        type: RollingUpdate
+        rollingUpdate:
+          maxUnavailable: 1
+          maxSurge: 1
+      podDisruptionBudget: {}
+      #  minAvailable: 1
       # maxUnavailable: 2
-      # matchLabels:
-      #   - key: foo
-      #     value: bar
-      # matchExpressions:
-      #   - key: foo
-      #     operator: In
-      #     values: [bar, baz]
       # paused: false
-    tolerations: []
+      tolerations: []
       # - key: foo
       #   value: bar
       #   operator: Equal
       #   effect: NoSchedule
-    nodeSelector: []
+      nodeSelector: []
       # - key: foo
       #   value: bar
-    affinity: {}
+      affinity: {}
       # nodeAffinity:
       #   requiredDuringSchedulingIgnoredDuringExecution:
       #     nodeSelectorTerms:
@@ -168,34 +286,61 @@ cluster:
       #             value: banyandb
       #       topologyKey: "kubernetes.io/hostname"
       #       namespaces: []
-    resources:
-      requests: []
+      podAffinityPreset: ""
+      podAntiAffinityPreset: soft
+      resources:
+        requests: []
         # - key: cpu
         #   value: "100m"
         # - key: memory
         #   value: "256Mi"
-      limits: []
+        limits: []
         # - key: cpu
         #   value: "500m"
         # - key: memory
         #   value: "512Mi"
-    # tls:
-    #   grpcSecretName: ""
-    #   etcdSecretName: ""
+      # tls:
+      # grpcSecretName: ""
+      # httpSecretName: ""
+      # etcdSecretName: ""
 
-    grpcSvc:
-      labels: {}
-      annotations: {}
-      port: 17912
+      httpSvc:
+        labels: {}
+        annotations: {}
+        port: 17913
+        type: LoadBalancer
+        externalIPs: []
+        loadBalancerIP: null
+        loadBalancerSourceRanges: []
+
+      ingress:
+        enabled: false
+        labels: {}
+        annotations: {}
+        rules: []
+        # - host: localhost
+        #   paths:
+        #     - path: /
+        #       port: 17913
+        #       serviceName: banyandb-ui
+        tls: []
+        # - hosts:
+        #     - localhost
+        #   secretName: tls-secret
+      livenessProbe:
+        initialDelaySeconds: 20
+        periodSeconds: 30
+        timeoutSeconds: 5
+        successThreshold: 1
+        failureThreshold: 5
+
+      readinessProbe:
+        initialDelaySeconds: 20
+        periodSeconds: 30
+        timeoutSeconds: 5
+        successThreshold: 1
+        failureThreshold: 5
 
-    sidecar: []
-      # - name: cleanup-sidecar
-      #   image: busybox:latest
-      #   imagePullPolicy: IfNotPresent
-      #   commands: 
-      #     normal: ["sh", "-c", "while true; do echo 'sidecar task'; sleep 
60; done"]
-      #     preStop: ["sh", "-c", "echo cleanup"]
-        
 storage:
   enabled: false
   persistentVolumeClaims:
@@ -232,7 +377,7 @@ etcd:
     rbac:
       create: true
       allowNoneAuthentication: false
-      rootPassword: banyandb 
+      rootPassword: banyandb
     client:
       secureTransport: false
       existingSecret: ""
@@ -240,8 +385,9 @@ etcd:
       certFilename: tls.crt
       certKeyFilename: tls.key
       caFilename: ""
-  # extraEnvVars:
-  #   - name: ETCDCTL_CACERT
-  #     value: /opt/bitnami/etcd/certs/client/ca.crt
+      # extraEnvVars:
+      #   - name: ETCDCTL_CACERT
+      #     value: /opt/bitnami/etcd/certs/client/ca.crt
 
-fullnameOverride: "banyandb"
+fullnameOverride: ""
+nameOverride: "banyandb"
diff --git a/test/e2e/values.standalone.yaml b/test/e2e/values.standalone.yaml
index b663625..3b7f6f9 100644
--- a/test/e2e/values.standalone.yaml
+++ b/test/e2e/values.standalone.yaml
@@ -25,73 +25,86 @@ etcd:
 
 image:
   repository: docker.io/apache/skywalking-banyandb
-  tag: 0.6.1
+  tag: 0.7.0-rc0
   pullPolicy: IfNotPresent
 
 standalone:
   enabled: true
   name: banyandb
-  podAnnotations: 
+  podAnnotations:
     example: banyandb-foo
   securityContext: {}
-    # runAsUser: 1000
-    # runAsGroup: 1000
-    # fsGroup: 1000
+  # runAsUser: 1000
+  # runAsGroup: 1000
+  # fsGroup: 1000
   env: []
-    # - name: BANYANDB_FOO
-    #   value: "bar"
+  # - name: BANYANDB_FOO
+  #   value: "bar"
   priorityClassName: ""
   podDisruptionBudget: {}
-    # minAvailable: 1
-    # maxUnavailable: 2
-    # matchLabels:
-    #   - key: foo
-    #     value: bar
-    # matchExpressions:
-    #   - key: foo
-    #     operator: In
-    #     values: [bar, baz]
-    # paused: false
+  # minAvailable: 1
+  # maxUnavailable: 2
+  # matchLabels:
+  #   - key: foo
+  #     value: bar
+  # matchExpressions:
+  #   - key: foo
+  #     operator: In
+  #     values: [bar, baz]
+  # paused: false
   tolerations: []
-    # - key: foo
-    #   value: bar
-    #   operator: Equal
-    #   effect: NoSchedule
+  # - key: foo
+  #   value: bar
+  #   operator: Equal
+  #   effect: NoSchedule
   nodeSelector: []
-    # - key: foo
-    #   value: bar
+  # - key: foo
+  #   value: bar
   affinity: {}
-    # nodeAffinity:
-    #   requiredDuringSchedulingIgnoredDuringExecution:
-    #     nodeSelectorTerms:
-    #       - matchExpressions:
-    #           - key: foo
-    #             operator: In
-    #             values:
-    #               - bar
-    #               - baz
-    # podAffinity:
-    #   requiredDuringSchedulingIgnoredDuringExecution:
-    #     - labelSelector:
-    #         matchLabels:
-    #           - key: app
-    #             value: banyandb
-    #       topologyKey: "kubernetes.io/hostname"
-    #       namespaces: []
+  # nodeAffinity:
+  #   requiredDuringSchedulingIgnoredDuringExecution:
+  #     nodeSelectorTerms:
+  #       - matchExpressions:
+  #           - key: foo
+  #             operator: In
+  #             values:
+  #               - bar
+  #               - baz
+  # podAffinity:
+  #   requiredDuringSchedulingIgnoredDuringExecution:
+  #     - labelSelector:
+  #         matchLabels:
+  #           - key: app
+  #             value: banyandb
+  #       topologyKey: "kubernetes.io/hostname"
+  #       namespaces: []
   resources:
     requests: []
-      # - key: cpu
-      #   value: "100m"
-      # - key: memory
-      #   value: "256Mi"
+    # - key: cpu
+    #   value: "100m"
+    # - key: memory
+    #   value: "256Mi"
     limits: []
-      # - key: cpu
-      #   value: "500m"
-      # - key: memory
-      #   value: "512Mi"
+    # - key: cpu
+    #   value: "500m"
+    # - key: memory
+    #   value: "512Mi"
   # tls:
   #   grpcSecretName: ""
   #   httpSecretName: ""
+  livenessProbe:
+    initialDelaySeconds: 20
+    periodSeconds: 5
+    timeoutSeconds: 5
+    successThreshold: 1
+    failureThreshold: 60
+
+  readinessProbe:
+    initialDelaySeconds: 20
+    periodSeconds: 5
+    timeoutSeconds: 5
+    successThreshold: 1
+    failureThreshold: 60
 
   grpcSvc:
     labels: {}
@@ -112,15 +125,15 @@ standalone:
     labels: {}
     annotations: {}
     rules: []
-      # - host: localhost
-      #   paths:
-      #     - path: /
-      #       port: 17913
-      #       serviceName: banyandb-http
+    # - host: localhost
+    #   paths:
+    #     - path: /
+    #       port: 17913
+    #       serviceName: banyandb-http
     tls: []
-      # - hosts:
-      #     - localhost
-      #   secretName: tls-secret
+    # - hosts:
+    #     - localhost
+    #   secretName: tls-secret
 
 storage:
   enabled: false
@@ -151,4 +164,5 @@ serviceAccount:
   # If not set and create is true, a name is generated using the fullname 
template
   name: ""
 
-fullnameOverride: "banyandb"
+fullnameOverride: ""
+nameOverride: "banyandb"

Reply via email to