From 89b95b480a5916f8619ada4f43c40443d63145ab Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Sun, 15 Sep 2024 00:53:49 +0000 Subject: [PATCH 1/4] Bump up BanyanDB Helm version to 0.3.0 Signed-off-by: Gao Hongtao --- CHANGES.md | 5 + chart/skywalking/Chart.yaml | 2 +- chart/skywalking/templates/_helpers.tpl | 62 ++++++++- chart/skywalking/values.yaml | 173 ++++++++++++------------ 4 files changed, 149 insertions(+), 93 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 4d560e2..97ad7c9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,11 @@ Changes by Version ================== Release Notes. +4.7.0 +------------------ + +- Bump up Banyandb Helm version to 0.3.0. + 4.6.0 ------------------ diff --git a/chart/skywalking/Chart.yaml b/chart/skywalking/Chart.yaml index ffb12bc..c0fcdef 100644 --- a/chart/skywalking/Chart.yaml +++ b/chart/skywalking/Chart.yaml @@ -40,6 +40,6 @@ dependencies: condition: postgresql.enabled - name: skywalking-banyandb-helm alias: banyandb - version: 0.2.0 + version: 0.3.0-rc0 repository: oci://registry-1.docker.io/apache condition: banyandb.enabled diff --git a/chart/skywalking/templates/_helpers.tpl b/chart/skywalking/templates/_helpers.tpl index 87631c1..8bc0e79 100644 --- a/chart/skywalking/templates/_helpers.tpl +++ b/chart/skywalking/templates/_helpers.tpl @@ -116,14 +116,14 @@ Create the name of the service account to use for the satellite cluster sleep 3 done {{- else if eq .Values.oap.storageType "banyandb" -}} -{{- $banyandbHost := "banyandb-http" -}} -{{- if not .Values.banyandb.enabled -}} -{{- $banyandbHost = .Values.banyandb.config.httpHost -}} +{{- $address := .Values.banyandb.config.httpAddress -}} +{{- if .Values.banyandb.enabled -}} +{{- $address = printf "%s-http:%s" (include "skywalking.banyandb.fullname" .) (include "skywalking.banyandb.httpPort" .) -}} {{- end }} - name: wait-for-banyandb image: curlimages/curl imagePullPolicy: IfNotPresent - command: ['sh', '-c', 'for i in $(seq 1 60); do curl {{ $banyandbHost }}:{{ .Values.banyandb.config.httpPort }}/api/healthz && exit 0 || sleep 5; done; exit 1'] + command: ['sh', '-c', 'for i in $(seq 1 60); do curl -k {{ $address }}/api/healthz && exit 0 || sleep 5; done; exit 1'] {{- end }} {{- end -}} @@ -160,7 +160,59 @@ Create the name of the service account to use for the satellite cluster - name: SW_DATA_SOURCE_PASSWORD value: "{{ .Values.postgresql.auth.password }}" {{- else if eq .Values.oap.storageType "banyandb" }} +{{- $targets := .Values.banyandb.config.grpcAddress -}} +{{- if .Values.banyandb.enabled -}} +{{- $targets = printf "%s-grpc:%s" (include "skywalking.banyandb.fullname" .) (include "skywalking.banyandb.grpcPort" .) -}} +{{- end }} - name: SW_STORAGE_BANYANDB_TARGETS - value: "{{ .Values.banyandb.config.targets }}" + value: "{{ $targets }}" {{- end }} {{- end -}} + +{{/* +Expand the name of the banyandb chart. +*/}} +{{- define "skywalking.banyandb.name" -}} +{{- default "skywalking-banyandb-helm" .Values.banyandb.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "skywalking.banyandb.fullname" -}} +{{- if .Values.banyandb.fullnameOverride -}} +{{- .Values.banyandb.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := (include "skywalking.banyandb.name" .) -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Define the banyandb http port +*/}} +{{- define "skywalking.banyandb.httpPort" -}} +{{- if .Values.banyandb.standalone.enabled -}} +{{- .Values.banyandb.standalone.httpSvc.port -}} +{{- else if .Values.banyandb.cluster.enabled -}} +{{- .Values.banyandb.cluster.liaison.httpSvc.port -}} +{{- end -}} +{{- end -}} + +{{/* +Define the banyandb grpc port +*/}} +{{- define "skywalking.banyandb.grpcPort" -}} +{{- if .Values.banyandb.standalone.enabled -}} +{{- .Values.banyandb.standalone.grpcSvc.port -}} +{{- else if .Values.banyandb.cluster.enabled -}} +{{- .Values.banyandb.cluster.liaison.grpcSvc.port -}} +{{- end -}} +{{- end -}} diff --git a/chart/skywalking/values.yaml b/chart/skywalking/values.yaml index 154b35f..5cab321 100644 --- a/chart/skywalking/values.yaml +++ b/chart/skywalking/values.yaml @@ -33,7 +33,7 @@ oap: name: oap image: repository: skywalking.docker.scarf.sh/apache/skywalking-oap-server - tag: null # Must be set explicitly + tag: null # Must be set explicitly pullPolicy: IfNotPresent storageType: null ports: @@ -54,58 +54,58 @@ oap: nodeSelector: {} tolerations: [] resources: {} - # limits: - # cpu: 8 - # memory: 8Gi - # requests: - # cpu: 8 - # memory: 4Gi + # limits: + # cpu: 8 + # memory: 8Gi + # requests: + # cpu: 8 + # memory: 4Gi livenessProbe: {} - # tcpSocket: - # port: 12800 - # initialDelaySeconds: 5 - # periodSeconds: 20 + # tcpSocket: + # port: 12800 + # initialDelaySeconds: 5 + # periodSeconds: 20 startupProbe: {} # Time to boot the application is set to: # 9 (failureThreshold) * 10 (periodSeconds) = 90 seconds in this case. - # tcpSocket: - # port: 12800 - # failureThreshold: 9 - # periodSeconds: 10 + # tcpSocket: + # port: 12800 + # failureThreshold: 9 + # periodSeconds: 10 readinessProbe: {} - # tcpSocket: - # port: 12800 - # initialDelaySeconds: 5 - # periodSeconds: 20 + # tcpSocket: + # port: 12800 + # initialDelaySeconds: 5 + # periodSeconds: 20 # podAnnotations: # example: oap-foo securityContext: {} - # runAsUser: 1000 - # runAsGroup: 1000 - # fsGroup: 1000 + # runAsUser: 1000 + # runAsGroup: 1000 + # fsGroup: 1000 env: - # more env, please refer to https://hub.docker.com/r/apache/skywalking-oap-server - # or https://github.com/apache/skywalking-docker/blob/master/6/6.4/oap/README.md#sw_telemetry + # more env, please refer to https://hub.docker.com/r/apache/skywalking-oap-server + # or https://github.com/apache/skywalking-docker/blob/master/6/6.4/oap/README.md#sw_telemetry # Allows you to add any config files in /skywalking/config # such as log4j2.xml, oal/core.oal, etc. config: {} - # metadata-service-mapping.yaml: | - # serviceName: e2e::${LABELS."service.istio.io/canonical-name"} - # serviceInstanceName: ${NAME} - # oal: - # core.oal: | - # service_resp_time = from(Service.latency).longAvg(); - # service_sla = from(Service.*).percent(status == true); - # service_cpm = from(Service.*).cpm(); - # log4j2.xml: | - # - # - # - # ui-initialized-templates: - # general: - # general-service.json: | - # [{"id":"General-Service" ... }] + # metadata-service-mapping.yaml: | + # serviceName: e2e::${LABELS."service.istio.io/canonical-name"} + # serviceInstanceName: ${NAME} + # oal: + # core.oal: | + # service_resp_time = from(Service.latency).longAvg(); + # service_sla = from(Service.*).percent(status == true); + # service_cpm = from(Service.*).cpm(); + # log4j2.xml: | + # + # + # + # ui-initialized-templates: + # general: + # general-service.json: | + # [{"id":"General-Service" ... }] # When 'dynamicConfig.enabled' set to true, enable oap dynamic configuration through k8s configmap, # Note: The default configmap data is empty, please refer to the detailed documentation (https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/dynamic-config.md) # Sync period in seconds. Defaults to 60 seconds. @@ -137,7 +137,7 @@ ui: replicas: 1 image: repository: skywalking.docker.scarf.sh/apache/skywalking-ui - tag: null # Must be set explicitly + tag: null # Must be set explicitly pullPolicy: IfNotPresent # podAnnotations: # example: oap-foo @@ -147,8 +147,8 @@ ui: ingress: enabled: false annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" path: / hosts: [] # - skywalking.local @@ -181,9 +181,9 @@ ui: ## Limit load balancer source ips to list of CIDRs (where available) # loadBalancerSourceRanges: [] securityContext: {} - # runAsUser: 1000 - # runAsGroup: 1000 - # fsGroup: 1000 + # runAsUser: 1000 + # runAsGroup: 1000 + # fsGroup: 1000 env: oapInit: @@ -195,12 +195,12 @@ oapInit: elasticsearch: enabled: true - config: # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false + config: # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false port: http: 9200 host: elasticsearch # es service on kubernetes or host - user: "xxx" # [optional] - password: "xxx" # [optional] + user: "xxx" # [optional] + password: "xxx" # [optional] clusterName: "elasticsearch" nodeGroup: "master" @@ -261,25 +261,25 @@ elasticsearch: memory: "2Gi" initResources: {} - # limits: - # cpu: "25m" - # # memory: "128Mi" - # requests: - # cpu: "25m" + # limits: + # cpu: "25m" + # # memory: "128Mi" + # requests: + # cpu: "25m" # memory: "128Mi" sidecarResources: {} - # limits: - # cpu: "25m" - # # memory: "128Mi" - # requests: - # cpu: "25m" + # limits: + # cpu: "25m" + # # memory: "128Mi" + # requests: + # cpu: "25m" # memory: "128Mi" networkHost: "0.0.0.0" volumeClaimTemplate: - accessModes: [ "ReadWriteOnce" ] + accessModes: ["ReadWriteOnce"] resources: requests: storage: 30Gi @@ -311,17 +311,17 @@ elasticsearch: annotations: {} extraVolumes: "" - # - name: extras + # - name: extras # emptyDir: {} extraVolumeMounts: "" - # - name: extras - # mountPath: /usr/share/extras + # - name: extras + # mountPath: /usr/share/extras # readOnly: true extraInitContainers: "" - # - name: do-something - # image: busybox + # - name: do-something + # image: busybox # command: ['do', 'something'] # This is the PriorityClass settings as defined in @@ -409,7 +409,7 @@ elasticsearch: ingress: enabled: false annotations: {} - # kubernetes.io/ingress.class: nginx + # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" path: / hosts: @@ -426,11 +426,11 @@ elasticsearch: masterTerminationFix: false lifecycle: {} - # preStop: - # exec: - # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] - # postStart: - # exec: + # preStop: + # exec: + # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] + # postStart: + # exec: # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] sysctlInitContainer: @@ -460,9 +460,8 @@ postgresql: banyandb: enabled: false config: - httpHost: banyandb-http - httpPort: 17913 - targets: "banyandb-grpc:17912" + grpcAddress: "banyandb-grpc:17912" + httpAddress: "banyandb-http:17913" standalone: enabled: true cluster: @@ -495,24 +494,24 @@ satellite: nodeSelector: {} tolerations: [] resources: {} - # limits: - # cpu: 4 - # memory: 8Gi - # requests: - # cpu: 4 - # memory: 4Gi + # limits: + # cpu: 4 + # memory: 8Gi + # requests: + # cpu: 4 + # memory: 4Gi podAnnotations: - # example: oap-foo + # example: oap-foo env: - # more env, please refer to https://skywalking.apache.org/docs/skywalking-satellite/latest/en/setup/readme/#satellite_configyaml + # more env, please refer to https://skywalking.apache.org/docs/skywalking-satellite/latest/en/setup/readme/#satellite_configyaml # Allows you to add any config files in /skywalking/config. config: {} - # satellite_config.yaml: | - # key: val + # satellite_config.yaml: | + # key: val securityContext: {} - # runAsUser: 1000 - # runAsGroup: 1000 - # fsGroup: 1000 + # runAsUser: 1000 + # runAsGroup: 1000 + # fsGroup: 1000 nameOverride: "" fullnameOverride: "" From 98c6caf2cbfde6f3e0e372160e520f0112b12d56 Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Sun, 15 Sep 2024 00:58:32 +0000 Subject: [PATCH 2/4] Bump up OAP Signed-off-by: Gao Hongtao --- .github/workflows/e2e.ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e.ci.yaml b/.github/workflows/e2e.ci.yaml index e975a6a..cd293dd 100644 --- a/.github/workflows/e2e.ci.yaml +++ b/.github/workflows/e2e.ci.yaml @@ -53,9 +53,9 @@ jobs: config: test/e2e/swck/oap-ui-agent-satellite.yaml name: ${{ matrix.test.name }} env: - OAP_TAG: 14c5778f57cc163b5a7d732555182b14dcff146b + OAP_TAG: ddbed6d091c4c20dbb43294fbd03778bdbb8471a OAP_REPO: ghcr.io/apache/skywalking/oap - UI_TAG: 14c5778f57cc163b5a7d732555182b14dcff146b + UI_TAG: ddbed6d091c4c20dbb43294fbd03778bdbb8471a UI_REPO: ghcr.io/apache/skywalking/ui SATELLITE_TAG: v35bfaff6352b4dc351a706772796a1f79b651c14 SATELLITE_REPO: ghcr.io/apache/skywalking-satellite/skywalking-satellite From 0de292909475b4f9a7bd257226e866daf5b17c62 Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Sun, 15 Sep 2024 00:59:39 +0000 Subject: [PATCH 3/4] Bump up upload-artifact Signed-off-by: Gao Hongtao --- .github/workflows/e2e.ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.ci.yaml b/.github/workflows/e2e.ci.yaml index cd293dd..802271e 100644 --- a/.github/workflows/e2e.ci.yaml +++ b/.github/workflows/e2e.ci.yaml @@ -83,7 +83,7 @@ jobs: du -sh $dir done docker images - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 if: ${{ failure() }} name: Upload Logs with: From 8700cbb51136bf79118ff6ae83a6a7607b6aec1f Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Sun, 15 Sep 2024 01:29:33 +0000 Subject: [PATCH 4/4] Update README.md Signed-off-by: Gao Hongtao --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 261e87d..75faaf0 100644 --- a/README.md +++ b/README.md @@ -59,11 +59,13 @@ helm install "${SKYWALKING_RELEASE_NAME}" \ --set ui.image.tag=10.0.1 \ --set elasticsearch.enabled=false \ --set banyandb.enabled=true \ - --set banyandb.image.tag=0.6.1 + --set banyandb.image.tag=0.7.0 ``` BanyanDB can be configured through various parameters. A comprehensive list of these parameters can be found in the configuration section of [BanyanDB Helm](https://github.com/apache/skywalking-banyandb-helm?tab=readme-ov-file#configuration) repository. These parameters allow you to customize aspects such as replication, resource allocation, persistence, and more to suit your specific deployment needs. Remember to prepend 'banyandb.' to all parameter names when applying the settings. For example, `banyandb.image.tag` can be used to specify the version of BanyanDB. +The _BanyanDB(>=0.7.0)_ is not compatible with the _BanyanDB Helm Chart(<0.3.0)_ which is referred by the _SkyWalking Helm Chart(<4.7.0)_. If you want to use _BanyanDB(>=0.7.0)_ as storage solution, you have to use the _BanyanDB Helm Chart(>=0.3.0)_ or _SkyWalking Helm Chart(>=4.7.0)_. + ## Install released version using Apache Jfrog Helm repository (<= 4.3.0) ```shell