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

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


The following commit(s) were added to refs/heads/main by this push:
     new f3bef3e4 Introduce new doc menu structure, add installation on Docker 
and Kubernetes (#494)
f3bef3e4 is described below

commit f3bef3e473b633862f56cbc12c5ce9c0d152fb57
Author: Wan Kai <[email protected]>
AuthorDate: Tue Jul 23 11:24:46 2024 +0800

    Introduce new doc menu structure, add installation on Docker and Kubernetes 
(#494)
---
 CHANGES.md                                  |   4 +
 docs/guides/quick-start/docker-compose.yaml | 154 ++++++++++++++++++++++++++++
 docs/guides/quick-start/quick-start.md      |   9 ++
 docs/installation/docker.md                 |  24 +++++
 docs/installation/kubernetes.md             |  70 +++++++++++++
 docs/menu.yml                               | 120 ++++++++++++++++------
 6 files changed, 347 insertions(+), 34 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 58b59f87..baf4a0d7 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -32,6 +32,10 @@ Release Notes.
 - Fix a bug that the Stream module didn't support duplicated in index-based 
filtering and sorting
 - Fix the bug that segment's reference count is increased twice when the 
controller try to create an existing segment.
 
+### Documentation
+- Introduce new doc menu structure.
+- Add installation on Docker and Kubernetes.
+
 ## 0.6.1
 
 ### Features
diff --git a/docs/guides/quick-start/docker-compose.yaml 
b/docs/guides/quick-start/docker-compose.yaml
new file mode 100644
index 00000000..d765c9f1
--- /dev/null
+++ b/docs/guides/quick-start/docker-compose.yaml
@@ -0,0 +1,154 @@
+# 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.
+
+services:
+  banyandb:
+    image: ${BANYANDB_IMAGE:-apache/skywalking-banyandb:latest}
+    container_name: banyandb
+    command: standalone
+    expose:
+      - 17912
+    ports:
+    - 17913:17913
+    networks:
+      - demo
+    healthcheck:
+      test: [ "CMD", "./bydbctl", "health", "--config=-", 
"--addr=http://banyandb:17913"; ]
+      interval: 30s
+      timeout: 30s
+      retries: 120
+
+  oap:
+    image: ${OAP_IMAGE:-apache/skywalking-oap-server:latest}
+    environment:
+      SW_STORAGE: banyandb
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+    expose:
+      - 11800
+    ports:
+      - 12800:12800
+    networks:
+      - demo
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  oap-ui:
+    image: ${OAP_UI_IMAGE:-apache/skywalking-ui:latest}
+    ports:
+      - 8080:8080
+    environment:
+      - SW_OAP_ADDRESS=http://oap:12800
+    networks:
+      - demo
+    depends_on:
+      oap:
+        condition: service_healthy
+
+  agent:
+    image: ${AGENT_IMAGE:-apache/skywalking-java-agent:9.2.0-java11}
+    command: cp -r /skywalking/agent/ /skywalking-java-agent/
+    volumes:
+      - sw_agent:/skywalking-java-agent
+    networks:
+      - demo
+
+  provider:
+    image: 
"ghcr.io/apache/skywalking/e2e-service-provider:cc7a2c9e97fd2c421adbe3e9c471688459a446d9"
+    volumes:
+      - sw_agent:/sw-java-agent
+    environment:
+      JAVA_TOOL_OPTIONS: -javaagent:/sw-java-agent/agent/skywalking-agent.jar
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
+      SW_LOGGING_OUTPUT: CONSOLE
+      SW_AGENT_NAME: e2e-service-provider
+      SW_AGENT_INSTANCE_NAME: provider1
+      SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1
+      SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1
+    ports:
+      - 9090
+    networks:
+      - demo
+    depends_on:
+      oap:
+        condition: service_healthy
+      agent:
+        condition: service_completed_successfully
+    healthcheck:
+      test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9090" 
]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  consumer:
+    image: 
"ghcr.io/apache/skywalking/e2e-service-consumer:cc7a2c9e97fd2c421adbe3e9c471688459a446d9"
+    volumes:
+      - sw_agent:/sw-java-agent
+    environment:
+      JAVA_TOOL_OPTIONS: -javaagent:/sw-java-agent/agent/skywalking-agent.jar
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
+      SW_LOGGING_OUTPUT: CONSOLE
+      PROVIDER_URL: http://provider:9090
+      SW_AGENT_NAME: e2e-service-consumer
+      SW_AGENT_INSTANCE_NAME: consumer1
+      SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1
+      SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1
+    ports:
+      - 9092
+    networks:
+      - demo
+    depends_on:
+      oap:
+        condition: service_healthy
+      provider:
+        condition: service_healthy
+      agent:
+        condition: service_completed_successfully
+    healthcheck:
+      test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9092" 
]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  traffic_loader:
+    image: curlimages/curl
+    networks:
+      - demo
+    depends_on:
+      oap:
+        condition: service_healthy
+      provider:
+        condition: service_healthy
+      consumer:
+        condition: service_healthy
+    entrypoint: >
+      sh -c "
+      echo 'Starting traffic generation...';
+      while true; do
+        curl -X POST http://consumer:9092/info;
+        sleep 1;
+      done
+      "
+
+networks:
+  demo:
+
+volumes:
+  sw_agent: {}
diff --git a/docs/guides/quick-start/quick-start.md 
b/docs/guides/quick-start/quick-start.md
new file mode 100644
index 00000000..36029796
--- /dev/null
+++ b/docs/guides/quick-start/quick-start.md
@@ -0,0 +1,9 @@
+# Quick Start Tutorial
+
+## Set up a cluster with OAP and BanyanDB with docker-compose
+
+```shell
+docker compose -f ./docker-compose.yaml --project-name=banyandb-quickstart up 
-d
+```
+
+## todo...
diff --git a/docs/installation/docker.md b/docs/installation/docker.md
new file mode 100644
index 00000000..6e5a4bb4
--- /dev/null
+++ b/docs/installation/docker.md
@@ -0,0 +1,24 @@
+# Installation On Docker
+
+## Start a container in `standalone mode`
+The following commands pull the docker image and run the BanyanDB on Docker. 
Replace `latest` with the version of the BanyanDB you want to run.
+- pull the image
+```shell
+docker pull apache/skywalking-banyandb:latest
+```
+- run the container
+```shell
+docker run -d \
+  -p 17912:17912 \
+  -p 17913:17913 \
+  --name banyandb \
+  apache/skywalking-banyandb:latest \
+  standalone
+```
+
+The BanyanDB server would be listening on the `0.0.0.0:17912` to access gRPC 
requests. if no errors occurred.
+
+At the same time, the BanyanDB server would be listening on the 
`0.0.0.0:17913` to access HTTP requests. if no errors occurred. The HTTP server 
is used for CLI and Web UI.
+
+The Web UI is hosted at `http://localhost:17913/`.
+
diff --git a/docs/installation/kubernetes.md b/docs/installation/kubernetes.md
new file mode 100644
index 00000000..9817118f
--- /dev/null
+++ b/docs/installation/kubernetes.md
@@ -0,0 +1,70 @@
+# Installation On Kubernetes
+
+To install BanyanDB on Kubernetes, you can use our Helm chart, which 
simplifies the deployment process.  You can find detailed installation 
instructions in [our official 
documentation](https://github.com/apache/skywalking-helm/tree/master).
+
+This step-by-step guide assumes you have a basic understanding of Kubernetes 
and Helm, the package manager for Kubernetes. If you're new to Helm, you might 
want to familiarize yourself with Helm basics before proceeding.
+
+## Prerequisites
+
+Before we begin, ensure you have the following:
+
+1. **A Kubernetes Cluster**: You can use Minikube for a local setup, or any 
cloud provider like AWS, GCP, or Azure that supports Kubernetes.
+2. **Helm 3**: Ensure Helm 3 is installed and configured on your machine. You 
can download it from [Helm's official website](https://helm.sh/).
+
+## Step 1: Configure Helm to Use OCI
+
+Since the BanyanDB Helm chart is hosted as an OCI chart in Docker Hub, you 
need to ensure your Helm is configured to handle OCI artifacts.
+
+```shell
+helm registry login registry-1.docker.io
+```
+
+You will be prompted to enter your Docker Hub username and password. This step 
is necessary to pull Helm charts from Docker Hub.
+
+## Step 2: Install BanyanDB Using Helm 
+
+- Create a namespace for BanyanDB:
+```shell
+kubectl create ns sw
+```
+
+- Install BanyanDB using the following Helm command:
+```shell
+helm install banyandb \
+  oci://registry-1.docker.io/apache/skywalking-banyandb-helm \
+  --version 0.2.0 \
+  --set image.tag=0.6.1 \
+  -n sw
+```
+This command installs the BanyanDB Helm chart with the specified version and 
image tag in the `sw` namespace in `cluster mode`.
+You can customize the installation by setting additional values in the `--set` 
flag.
+
+- Wait for the installation to complete. You can check the status of the pods 
using the following command:
+```shell
+kubectl get pod -n sw -w
+```
+```shell
+NAME                       READY   STATUS    RESTARTS        AGE
+banyandb-0                 1/1     Running   3 (6m38s ago)   7m7s
+banyandb-1                 1/1     Running   0               5m6s
+banyandb-2                 1/1     Running   0               4m6s
+banyandb-885bc59d4-669lh   1/1     Running   3 (6m35s ago)   7m7s
+banyandb-885bc59d4-dd4j7   1/1     Running   3 (6m36s ago)   7m7s
+banyandb-etcd-0            1/1     Running   0               7m7s
+```
+
+- You can check the services using the following command:
+```shell
+kubectl get svc -n sw
+```
+```shell
+NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)  
           AGE
+banyandb-etcd            ClusterIP      10.96.33.132    <none>        
2379/TCP,2380/TCP   5m
+banyandb-etcd-headless   ClusterIP      None            <none>        
2379/TCP,2380/TCP   5m
+banyandb-grpc            ClusterIP      10.96.152.152   <none>        
17912/TCP           5m
+banyandb-http            LoadBalancer   10.96.137.29    <pending>     
17913:30899/TCP     5m
+```
+The BanyanDB server would be listening on the `0.0.0.0:17912` to access gRPC 
requests. if no errors occurred.
+
+At the same time, the BanyanDB server would be listening on the 
`0.0.0.0:17913` to access HTTP requests. if no errors occurred. The HTTP server 
is used for CLI and Web UI.
+
diff --git a/docs/menu.yml b/docs/menu.yml
index 8e081587..ff72c0db 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -18,14 +18,92 @@
 catalog:
   - name: "Welcome"
     path: "/readme"
-  - name: "Installation"
+  - name: "User Guide"
     catalog:
-      - name: "Get Binaries"
-        path: "/installation/binaries"
-      - name: "Standalone Mode"
-        path: "/installation/standalone"
-      - name: "Cluster Mode"
-        path: "/installation/cluster"
+    - name: "Installation"
+      catalog:
+        - name: "Get Binaries"
+          path: "/installation/binaries"
+        - name: "Standalone Mode"
+          path: "/installation/standalone"
+        - name: "Cluster Mode"
+          path: "/installation/cluster"
+        - name: "Installation On Docker"
+          path: "/installation/docker"
+        - name: "Installation On Kubernetes"
+          path: "/installation/kubernetes"
+    - name: "Basic Concepts and Terminology"
+      catalog:
+        - name: "Data Model"
+          path: "/concept/data-model"
+        - name: "Clustering"
+          path: "/concept/clustering"
+        - name: "TSDB"
+          path: "/concept/tsdb"
+    - name: "Quick Start Tutorial"
+      path: "/guides/quick-start"
+  - name: "Interacting"
+    catalog:
+      - name: "Clients"
+        path: "/clients"
+      - name: "Insert and Update Data"
+        path: ""
+      - name: "Querying Data"
+        path: ""
+      - name: "Deleting Data"
+        path: ""
+  - name: "Operation and Maintenance"
+    catalog:
+      - name: "Configure BanyanDB"
+        path: ""
+      - name: "System Configuration"
+        path: ""
+      - name: "Upgrade"
+        catalog:
+          - name: "Server and File Versioning"
+            path: ""
+          - name: "Upgrade"
+            path: ""
+          - name: "Rollback"
+            path: ""
+      - name: "Observability"
+        path: "/observability"
+      - name: "Cluster Management"
+        path: ""
+      - name: "Security"
+        catalog:
+          - name: "TLS Configuration"
+            path: ""
+      - name: "Troubleshooting"
+        path: ""
+      - name: "Security"
+        path: ""
+  - name: "File Format"
+    catalog:
+      - name: "v1.1.0"
+        path: ""
+#  - name: "CRUD Operations"
+#    catalog:
+#      - name: "Group"
+#        path: "/crud/group"
+#      - name: "Measure"
+#        catalog:
+#          - name: "Schema"
+#            path: "/crud/measure/schema"
+#          - name: "Query"
+#            path: "/crud/measure/query"
+#      - name: "Stream"
+#        catalog:
+#          - name: "Schema"
+#            path: "/crud/stream/schema"
+#          - name: "Query"
+#            path: "/crud/stream/query"
+#      - name: "IndexRule"
+#        path: "/crud/index_rule"
+#      - name: "IndexRuleBinding"
+#        path: "/crud/index_rule_binding"
+#      - name: "Property"
+#        path: "/crud/property"
   - name: "Concepts"
     catalog:
       - name: "Data Model"
@@ -33,30 +111,4 @@ catalog:
       - name: "Clustering"
         path: "/concept/clustering"
       - name: "TSDB"
-        path: "/concept/tsdb"
-  - name: "CRUD Operations"
-    catalog:
-      - name: "Group"
-        path: "/crud/group"
-      - name: "Measure"
-        catalog:
-          - name: "Schema" 
-            path: "/crud/measure/schema"
-          - name: "Query" 
-            path: "/crud/measure/query"
-      - name: "Stream"
-        catalog:
-          - name: "Schema" 
-            path: "/crud/stream/schema"
-          - name: "Query" 
-            path: "/crud/stream/query"
-      - name: "IndexRule"
-        path: "/crud/index_rule"
-      - name: "IndexRuleBinding"
-        path: "/crud/index_rule_binding"
-      - name: "Property"
-        path: "/crud/property"
-  - name: "Clients"
-    path: "/clients"
-  - name: "Observability"
-    path: "/observability"
\ No newline at end of file
+        path: "/concept/tsdb"
\ No newline at end of file

Reply via email to