Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate BanyanDB as storage solution #126

Merged
merged 21 commits into from
Oct 10, 2023
Merged

Conversation

ButterBright
Copy link
Member

Integrate BanyanDB as storage solution.

@ButterBright ButterBright marked this pull request as draft July 19, 2023 08:21
@ButterBright ButterBright marked this pull request as ready for review August 3, 2023 09:01
# under the License.

apiVersion: apps/v1
kind: Deployment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a statefulset.

CHANGES.md Outdated
@@ -14,6 +14,7 @@ Release Notes.
- Use startup probe option for first initialization of application
- Allow setting env for UI deployment.
- Add Istio ServiceEntry permissions.
- Integrate BanyanDB as storage solution
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4.5.0 is released, please don't change the changelog here, add a new section for 4.6.0

@wu-sheng wu-sheng added this to the 4.6.0 milestone Aug 8, 2023
@wu-sheng
Copy link
Member

wu-sheng commented Aug 8, 2023

Let's update the readme in the root. There are a lot of ElasticSearch docs there, you are setting up new storage, so you should refer to them.

@ButterBright
Copy link
Member Author

Okay, I got it.

@@ -55,7 +53,9 @@ setup:
--set ui.image.tag=$UI_TAG \
--set oap.image.repository=$OAP_REPO \
--set oap.image.tag=$OAP_TAG \
--set oap.storageType=elasticsearch \
--set oap.storageType=banyandb \
--set elasticsearch.enabled=false \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both ES and BanyanDB should be covered by e2e tests.

Comment on lines 20 to 39
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's clean up the comments in this file, most of the comments are not necessary

Comment on lines 41 to 44
- name: banyandb
version: 0.1.0
repository: file://../banyandb
condition: banyandb.enabled
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this doesn't work (?) when we release the skywalking Chart to Docker hub, using this installation method https://github.com/apache/skywalking-kubernetes#install-released-version-using-docker-helm-repository--430

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What should I change the repo to? Something like oci://registry-1.docker.io/apache/skywalking-banyandb-helm?

Copy link
Member

@wu-sheng wu-sheng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hold due to new repo should be created.

Mail list, https://lists.apache.org/thread/l6c9s5t2opljbrs5fsd6xs42nh4lh7bn

@ButterBright Please reach @hanahmily for more context. And most of your PR should be reusable.

@wu-sheng
Copy link
Member

New repo created, please move your helm charts there, https://github.com/apache/skywalking-banyandb-helm

@ButterBright
Copy link
Member Author

I see.

Copy link
Contributor

@hanahmily hanahmily left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@@ -38,3 +38,7 @@ dependencies:
version: 12.1.2
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: postgresql.enabled
- name: skywalking-banyandb-helm
version: 0.0.0-67df1c7
repository: oci://ghcr.io/apache/skywalking-banyandb-helm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we could use this as the final release. We should request for docker hub repository, and do a release for banyandb helm. @hanahmily

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we deploy skywalking chart snapshot to ghcr so this makes sense in main branch but have to remember to change to a released one for banyandb chart before releasing. This also implies that a skywalking chart release depends on a banyandb release.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me. We will release the banyandb helm once the cluster mode is supported later. @ButterBright please make a note of this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we deploy skywalking chart snapshot to ghcr so this makes sense in main branch but have to remember to change to a released one for banyandb chart before releasing. This also implies that a skywalking chart release depends on a banyandb release.

For me, the concern is, that we don't release helm repo in high frequency, so, most likely we definitely will lose track and release the next helm with this snapshot repository.

This PR is never urgent, so, if you feel the BanyanDB helm repo is ready to release, please go ahead to do so. I believe no matter banyandb helm repo is relying on BanyanDB server 0.5 release or not, it is close to be ready.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me. We will release the banyandb helm once the cluster mode is supported later. @ButterBright please make a note of this.

Okay.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we deploy skywalking chart snapshot to ghcr so this makes sense in main branch but have to remember to change to a released one for banyandb chart before releasing. This also implies that a skywalking chart release depends on a banyandb release.

For me, the concern is, that we don't release helm repo in high frequency, so, most likely we definitely will lose track and release the next helm with this snapshot repository.

This PR is never urgent, so, if you feel the BanyanDB helm repo is ready to release, please go ahead to do so. I believe no matter banyandb helm repo is relying on BanyanDB server 0.5 release or not, it is close to be ready.

Let's wait for banyandb's first official release then.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. @ButterBright, could you please release the banyandb helm chart version 0.1.0? @kezhenxu94, would you kindly guide them through the process?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. @ButterBright, could you please release the banyandb helm chart version 0.1.0? @kezhenxu94, would you kindly guide them through the process?

Reach out to me if there is any help I can offer, btw, it's too troublesome to ask a non-committer to release, even it's a committer who is releasing, one of the steps in release process still needs a PMC member to help, so basically there is few stuff can be done by @ButterBright to propose a release yet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't accept non committer to do a release. Because ASF requires apache ID and his/her sign based on that.
@hanahmily You need to take the responsibility to be release manager.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will take care of the release

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']

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@@ -27,9 +27,9 @@ CURRENT_DIR="$(cd "$(dirname $0)"; pwd)"
# prepare base dir
TMP_DIR=/tmp/skywalking-infra-e2e
BIN_DIR=/usr/local/bin
mkdir -p $TMP_DIR && cd $TMP_DIR
mkdir -p $TMP_DIR && cd $TMP_DIR
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mkdir -p $TMP_DIR && cd $TMP_DIR
mkdir -p $TMP_DIR && cd $TMP_DIR

@@ -25,6 +25,5 @@ HELMVERSION=${HELMVERSION:-'helm-v3.0.0'}

if ! command -v helm &> /dev/null; then
mkdir -p $BASE_DIR/helm && cd $BASE_DIR/helm
curl -sSL https://get.helm.sh/${HELMVERSION}-linux-amd64.tar.gz
tar xz -C $BIN_DIR --strip-components=1 linux-amd64/helm
curl -sSL https://get.helm.sh/${HELMVERSION}-linux-amd64.tar.gz | tar xz -C $BIN_DIR --strip-components=1 linux-amd64/helm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The | pipeline seems to be unnecessary.

Copy link
Member

@wu-sheng wu-sheng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unblock

@wu-sheng
Copy link
Member

wu-sheng commented Oct 9, 2023

@innerpeacez Please recheck.

README.md Outdated

```shell
export REPO=chart
git clone https://github.com/apache/skywalking-kubernetes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
git clone https://github.com/apache/skywalking-kubernetes
git clone https://github.com/apache/skywalking-helm

README.md Outdated
```shell
export REPO=chart
git clone https://github.com/apache/skywalking-kubernetes
cd skywalking-kubernetes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
cd skywalking-kubernetes
cd skywalking-helm

@wu-sheng wu-sheng added the enhancement New feature or request label Oct 9, 2023
Comment on lines 64 to 74
- name: Run Skywalking E2E Test (Elasticsearch as database)
uses: apache/skywalking-infra-e2e@45584853d6f660102c523b1e9cb5815d12ae55d3
with:
e2e-file: $GITHUB_WORKSPACE/test/e2e/e2e.yaml
e2e-file: $GITHUB_WORKSPACE/test/e2e/e2e-elasticsearch.yaml
- name: Run Skywalking E2E Test (BanyanDB as database)
uses: apache/skywalking-infra-e2e@45584853d6f660102c523b1e9cb5815d12ae55d3
with:
e2e-file: $GITHUB_WORKSPACE/test/e2e/e2e-banyandb.yaml
- name: Run SWCK E2E Test
uses: apache/skywalking-infra-e2e@afdf1cca0519d65bc480d8680b7a27f9b41fc421
with:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should run e2e in the parallel mode. You could ref the main repo skywalking.yml to use matrix to define name and config.

@wu-sheng
Copy link
Member

You need to resolve the conflicts, maybe your local branch is not up-to-date?

@ButterBright
Copy link
Member Author

You need to resolve the conflicts, maybe your local branch is not up-to-date?

Oh yeah, I see.

@wu-sheng
Copy link
Member

Please check the task names, they have the same recent suffix. They should have meaningful suffix, such as banyandb, swck...

@ButterBright
Copy link
Member Author

Please check the task names, they have the same recent suffix. They should have meaningful suffix, such as banyandb, swck...

Can I simply make it the same as e2e test name? For example, Run Skywalking E2E Test (Elasticsearch as database), which I think also makes sense.

@wu-sheng wu-sheng merged commit 1cadd6d into apache:master Oct 10, 2023
4 checks passed
@wu-sheng
Copy link
Member

Please check the task names, they have the same recent suffix. They should have meaningful suffix, such as banyandb, swck...

Can I simply make it the same as e2e test name? For example, Run Skywalking E2E Test (Elasticsearch as database), which I think also makes sense.

Oops, yes, please do that. I accidentally merge this. Please open another PR to rename. @ButterBright

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
5 participants