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"