diff --git a/.build/build.yaml b/.build/build.yaml new file mode 100644 index 000000000..aed7d6ef5 --- /dev/null +++ b/.build/build.yaml @@ -0,0 +1,119 @@ +apiVersion: builds.katanomi.dev/v1alpha1 +kind: Build +spec: + runTemplate: + spec: + timeouts: + pipeline: 1h + workspaces: + - name: source + volumeClaimTemplate: + spec: + storageClassName: topolvm + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + - name: cache + persistentVolumeClaim: + claimName: build-cache + subPath: yarn_cache + tasks: + - name: generate-custom-version + workspaces: + - name: source + workspace: source + params: + - name: pr-id + value: $(build.git.pullRequest.id) + - name: commit-short-id + value: $(build.git.lastCommit.shortID) + taskSpec: + params: + - name: pr-id + value: "" + - name: commit-short-id + value: "" + results: + - name: custom-version + description: image tag + default: latest + description: generate image tag + workspaces: + - name: source + workspace: source + steps: + - image: registry.alauda.cn:60080/devops/kubectl-devops:master + name: generate-custom-version + imagePullPolicy: IfNotPresent + workingDir: $(workspaces.source.path) + script: | + #!/bin/sh + set -ex + if [ "$(params.pr-id)" == "" ]; then + echo -n date-$(date +%s)-$(params.commit-short-id) > $(results.custom-version.path) + else + echo -n pr-$(params.commit-short-id) > $(results.custom-version.path) + fi + - name: build-docs + retries: 2 + workspaces: + - name: source + workspace: source + - name: cache + workspace: cache + taskSpec: + steps: + - image: build-harbor.alauda.cn/frontend/playwright-runner:doom + imagePullPolicy: Always + name: install + resources: + limits: + cpu: 4 + memory: 4Gi + requests: + cpu: 2 + memory: 4Gi + script: > + # set -x + + export COREPACK_NPM_REGISTRY=https://edge-nexus.alauda.cn/repository/cnpm + + export YARN_GLOBAL_FOLDER=/workspace/yarn_cache/global + + yarn config set npmRegistryServer https://edge-nexus.alauda.cn/repository/cnpm + + yarn set version stable + + yarn up @alauda/doom + + yarn up -R '**' + + yarn --immutable + + yarn build + workingDir: $(workspaces.source.path) + - name: build-image + timeout: 30m + runAfter: + - build-docs + - generate-custom-version + retries: 0 + taskRef: + kind: ClusterTask + name: alauda-build-image + workspaces: + - name: source + workspace: source + params: + - name: container-image + value: build-harbor.alauda.cn/middleware/knowledge + - name: dockerfile + value: ./Dockerfile + - name: labels + value: + - branch=$(build.git.branch.name) + - commit=$(build.git.lastCommit.id) + - name: container-image-tag + value: $(tasks.generate-custom-version.results.custom-version) diff --git a/.build/deploy.yaml b/.build/deploy.yaml new file mode 100644 index 000000000..c880916ea --- /dev/null +++ b/.build/deploy.yaml @@ -0,0 +1,98 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: knowledge-docs +spec: + selector: + matchLabels: + service_name: alauda-product-docs + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + creationTimestamp: null + labels: + service_name: alauda-product-docs + spec: + containers: + - args: + - --log-level=info + - --log-disable-color + - --log-enable-caller + - --path-prefix=/knowledge/ + - --assets-host-path=$(SHARED_FOLDER) + env: + - name: SHARED_FOLDER + value: /static + image: registry.alauda.cn:60080/alauda/alauda-console:v3.18.5 + imagePullPolicy: IfNotPresent + name: alauda-console + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: "2" + memory: 4Gi + requests: + cpu: 25m + memory: 128Mi + volumeMounts: + - mountPath: /static + name: shared + dnsPolicy: ClusterFirst + initContainers: + - command: + - sh + - /config/copy_static.sh + env: + - name: SHARED_FOLDER + value: /static + - name: STATIC_FILES + value: /dist + image: registry.alauda.cn:60080/middleware/knowledge:date-1750994389-5d78d699 + imagePullPolicy: IfNotPresent + name: product-docs + volumeMounts: + - mountPath: /static + name: shared + - mountPath: /config + name: copy-static-script + restartPolicy: Always + schedulerName: default-scheduler + volumes: + - emptyDir: {} + name: shared + - configMap: + defaultMode: 420 + name: knowledge-docs-copy-script + name: copy-static-script +--- +apiVersion: v1 +kind: Service +metadata: + name: knowledge-docs +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + service_name: alauda-product-docs + type: NodePort + +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: knowledge-docs-copy-script +data: + copy_static.sh: |- + SHARED_FOLDER="${SHARED_FOLDER:-/shared}" + STATIC_FILES="${STATIC_FILES:-/files}" + env + cp -prv $STATIC_FILES/* $SHARED_FOLDER diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..8925ab84a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM build-harbor.alauda.cn/ops/alpine:3 + +RUN mkdir -p /dist/ + +COPY dist/ /dist/ diff --git a/docs/assets/assets/canary.png b/docs/assets/canary.png similarity index 100% rename from docs/assets/assets/canary.png rename to docs/assets/canary.png diff --git a/docs/assets-deepflow/assets-deepflow/dashboards-folder.png b/docs/assets/deepflow/dashboards-folder.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dashboards-folder.png rename to docs/assets/deepflow/dashboards-folder.png diff --git a/docs/assets-deepflow/assets-deepflow/dashboards.png b/docs/assets/deepflow/dashboards.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dashboards.png rename to docs/assets/deepflow/dashboards.png diff --git a/docs/assets-deepflow/assets-deepflow/distributed-tracing.png b/docs/assets/deepflow/distributed-tracing.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/distributed-tracing.png rename to docs/assets/deepflow/distributed-tracing.png diff --git a/docs/assets-deepflow/assets-deepflow/dns-dashboard.png b/docs/assets/deepflow/dns-dashboard.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dns-dashboard.png rename to docs/assets/deepflow/dns-dashboard.png diff --git a/docs/assets-deepflow/assets-deepflow/dns-options.png b/docs/assets/deepflow/dns-options.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dns-options.png rename to docs/assets/deepflow/dns-options.png diff --git a/docs/assets-deepflow/assets-deepflow/dns-request-list.png b/docs/assets/deepflow/dns-request-list.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dns-request-list.png rename to docs/assets/deepflow/dns-request-list.png diff --git a/docs/assets-deepflow/assets-deepflow/dns-status.png b/docs/assets/deepflow/dns-status.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/dns-status.png rename to docs/assets/deepflow/dns-status.png diff --git a/docs/assets-deepflow/assets-deepflow/flame-graph-curl.png b/docs/assets/deepflow/flame-graph-curl.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/flame-graph-curl.png rename to docs/assets/deepflow/flame-graph-curl.png diff --git a/docs/assets-deepflow/assets-deepflow/flame-graph-details.png b/docs/assets/deepflow/flame-graph-details.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/flame-graph-details.png rename to docs/assets/deepflow/flame-graph-details.png diff --git a/docs/assets-deepflow/assets-deepflow/flame-graph.png b/docs/assets/deepflow/flame-graph.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/flame-graph.png rename to docs/assets/deepflow/flame-graph.png diff --git a/docs/assets-deepflow/assets-deepflow/http.png b/docs/assets/deepflow/http.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/http.png rename to docs/assets/deepflow/http.png diff --git a/docs/assets-deepflow/assets-deepflow/login.png b/docs/assets/deepflow/login.png similarity index 100% rename from docs/assets-deepflow/assets-deepflow/login.png rename to docs/assets/deepflow/login.png diff --git a/docs/assets/assets/demo-gw.png b/docs/assets/demo-gw.png similarity index 100% rename from docs/assets/assets/demo-gw.png rename to docs/assets/demo-gw.png diff --git a/docs/assets/assets/eventdetail.png b/docs/assets/eventdetail.png similarity index 100% rename from docs/assets/assets/eventdetail.png rename to docs/assets/eventdetail.png diff --git a/docs/assets/assets/eventhistory.png b/docs/assets/eventhistory.png similarity index 100% rename from docs/assets/assets/eventhistory.png rename to docs/assets/eventhistory.png diff --git a/docs/assets/assets/flagger-step.png b/docs/assets/flagger-step.png similarity index 100% rename from docs/assets/assets/flagger-step.png rename to docs/assets/flagger-step.png diff --git a/docs/assets/assets/rollback-button.png b/docs/assets/rollback-button.png similarity index 100% rename from docs/assets/assets/rollback-button.png rename to docs/assets/rollback-button.png diff --git a/docs/OneDrive_1_2025-6-30/KB250500011 - CICD Integration Guide for ACP.md b/docs/en/KB250500011 - CICD Integration Guide for ACP.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500011 - CICD Integration Guide for ACP.md rename to docs/en/KB250500011 - CICD Integration Guide for ACP.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500013 - Full-Stack Automation with ACP.markdown b/docs/en/KB250500013 - Full-Stack Automation with ACP.markdown similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500013 - Full-Stack Automation with ACP.markdown rename to docs/en/KB250500013 - Full-Stack Automation with ACP.markdown diff --git a/docs/OneDrive_1_2025-6-30/KB250500014 - Integrate Alauda Service Mesh to Standard Kubernetes.md b/docs/en/KB250500014 - Integrate Alauda Service Mesh to Standard Kubernetes.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500014 - Integrate Alauda Service Mesh to Standard Kubernetes.md rename to docs/en/KB250500014 - Integrate Alauda Service Mesh to Standard Kubernetes.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500018 - Install Multi-Primary Service Mesh on Different Networks.md b/docs/en/KB250500018 - Install Multi-Primary Service Mesh on Different Networks.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500018 - Install Multi-Primary Service Mesh on Different Networks.md rename to docs/en/KB250500018 - Install Multi-Primary Service Mesh on Different Networks.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500022 - Istio Ingress Gateway Installation and Usage Guide.md b/docs/en/KB250500022 - Istio Ingress Gateway Installation and Usage Guide.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500022 - Istio Ingress Gateway Installation and Usage Guide.md rename to docs/en/KB250500022 - Istio Ingress Gateway Installation and Usage Guide.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500023 - How to Create an Application on ACP Platform.md b/docs/en/KB250500023 - How to Create an Application on ACP Platform.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500023 - How to Create an Application on ACP Platform.md rename to docs/en/KB250500023 - How to Create an Application on ACP Platform.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500024 - Alauda LoadBalancer with MetalLB.md b/docs/en/KB250500024 - Alauda LoadBalancer with MetalLB.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500024 - Alauda LoadBalancer with MetalLB.md rename to docs/en/KB250500024 - Alauda LoadBalancer with MetalLB.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500026 - Alauda Container Platform Egress Gateway Installation and Usage Guide.md b/docs/en/KB250500026 - Alauda Container Platform Egress Gateway Installation and Usage Guide.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500026 - Alauda Container Platform Egress Gateway Installation and Usage Guide.md rename to docs/en/KB250500026 - Alauda Container Platform Egress Gateway Installation and Usage Guide.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500027 - Alauda Observability with DeepFlow.md b/docs/en/KB250500027 - Alauda Observability with DeepFlow.md similarity index 95% rename from docs/OneDrive_1_2025-6-30/KB250500027 - Alauda Observability with DeepFlow.md rename to docs/en/KB250500027 - Alauda Observability with DeepFlow.md index 6c8d913d1..253195fd8 100644 --- a/docs/OneDrive_1_2025-6-30/KB250500027 - Alauda Observability with DeepFlow.md +++ b/docs/en/KB250500027 - Alauda Observability with DeepFlow.md @@ -266,7 +266,7 @@ Assuming the ACP platform URL is *https://43.138.134.22*, and DeepFlow is instal Visit the Grafana URL in your browser, and you will see a login page: -![Login Page](./assets-deepflow/login.png) +![Login Page](../assets/deepflow/login.png) You can login to Grafana with the username and password specified in step 5. **We strongly recommend that you change Grafana's default password.** @@ -274,11 +274,11 @@ You can login to Grafana with the username and password specified in step 5. **W In the Grafana web UI, enter the **Dashboards** menu: -![Dashboards](./assets-deepflow/dashboards.png) +![Dashboards](../assets/deepflow/dashboards.png) Enter the DeepFlow Templates folder, and you will see available dashboards: -![Dashboards Folder](./assets-deepflow/dashboards-folder.png) +![Dashboards Folder](../assets/deepflow/dashboards-folder.png) ### Troubleshooting with DeepFlow @@ -288,21 +288,21 @@ Here are two example about how to troubleshoot DNS failure and chained HTTP requ If your application is facing DNS failures, you can open the **Distributed Tracing** dashboard: -![Distributed Tracing](./assets-deepflow/distributed-tracing.png) +![Distributed Tracing](../assets/deepflow/distributed-tracing.png) In the variable selections, choose namespace and workload of your application, and then input domain name; In the time settings, choose the time span you need. Here is an example: -![](./assets-deepflow/dns-options.png) +![](../assets/deepflow/dns-options.png) Click the **Refresh** button, and you can view DNS requests in the **Request List** panel: -![DNS Request List](./assets-deepflow/dns-request-list.png) +![DNS Request List](../assets/deepflow/dns-request-list.png) The DNS request domain and status are also available: -![DNS Request Status](./assets-deepflow/dns-status.png) +![DNS Request Status](../assets/deepflow/dns-status.png) > *Client Error* means the requested domain does not exist. @@ -312,11 +312,11 @@ Assuming the are two HTTP GET requests chained with HTTP header *X-Request-ID*: In the **Distributed Tracing** dashboard, you can see the request logs: -![Request Logs](./assets-deepflow/http.png) +![Request Logs](../assets/deepflow/http.png) Click the request log, and you can see a flame graph in the **DeepFlow Flame Graph** panel: -![Flame Graph](./assets-deepflow/flame-graph.png) +![Flame Graph](../assets/deepflow/flame-graph.png) > "S" means the request is captured on the system process side, and "N" means captured on network nic side. @@ -327,4 +327,4 @@ The flame graph shows that: Click a span in the flame graph, you can see some more details, including start time, end time and status code: -![Details](./assets-deepflow/flame-graph-details.png) +![Details](../assets/deepflow/flame-graph-details.png) diff --git a/docs/OneDrive_1_2025-6-30/KB250500030 - Application High Availability Testing Solution.md b/docs/en/KB250500030 - Application High Availability Testing Solution.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500030 - Application High Availability Testing Solution.md rename to docs/en/KB250500030 - Application High Availability Testing Solution.md diff --git a/docs/OneDrive_1_2025-6-30/KB250600001 - Software Supply Chain Security of Alauda Container Platform with Tekton and Kyverno.md b/docs/en/KB250600001 - Software Supply Chain Security of Alauda Container Platform with Tekton and Kyverno.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250600001 - Software Supply Chain Security of Alauda Container Platform with Tekton and Kyverno.md rename to docs/en/KB250600001 - Software Supply Chain Security of Alauda Container Platform with Tekton and Kyverno.md diff --git a/docs/OneDrive_1_2025-6-30/KB250600014 - Harbor Image Synchronization to Cluster Docker Registry.md b/docs/en/KB250600014 - Harbor Image Synchronization to Cluster Docker Registry.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250600014 - Harbor Image Synchronization to Cluster Docker Registry.md rename to docs/en/KB250600014 - Harbor Image Synchronization to Cluster Docker Registry.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500009 - ACP Deployment Strategies with Argo Rollouts.md b/docs/en/acp/KB250500009 - ACP Deployment Strategies with Argo Rollouts.md similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500009 - ACP Deployment Strategies with Argo Rollouts.md rename to docs/en/acp/KB250500009 - ACP Deployment Strategies with Argo Rollouts.md diff --git a/docs/OneDrive_1_2025-6-30/KB250500009 - ACP Deployment Strategies.md b/docs/en/acp/KB250500009 - ACP Deployment Strategies.md similarity index 99% rename from docs/OneDrive_1_2025-6-30/KB250500009 - ACP Deployment Strategies.md rename to docs/en/acp/KB250500009 - ACP Deployment Strategies.md index 90cffccc4..9446a7af0 100644 --- a/docs/OneDrive_1_2025-6-30/KB250500009 - ACP Deployment Strategies.md +++ b/docs/en/acp/KB250500009 - ACP Deployment Strategies.md @@ -950,10 +950,10 @@ This triggers Flagger to start the canary analysis process. You can monitor the progress of the canary deployment through: 1. Alauda Service Mesh UI to monitor metrics - ![alauda mesh ui](./assets/canary.png "canary deploy") + ![alauda mesh ui](../../assets/canary.png "canary deploy") 2. The demo UI - ![demo ui](./assets/demo-gw.png "demo") + ![demo ui](../../assets/demo-gw.png "demo") 3. Watching VirtualService changes @@ -972,7 +972,7 @@ You can monitor the progress of the canary deployment through: 7. Complete traffic migration 8. Scale down canary deployment -![flagger step](./assets/flagger-step.png "rollback button") +![flagger step](../../assets/flagger-step.png "rollback button") #### Step 5: Promotion and rollback options @@ -1011,10 +1011,10 @@ kubectl label ${CANARY_EVENT} action=rollback -n flagger-demo *UI Method:* 1. View event history - ![event history](./assets/eventhistory.png "event history") + ![event history](../../assets/eventhistory.png "event history") 2. Review specific events - ![event detail](./assets/eventdetail.png "event detail") + ![event detail](../../assets/eventdetail.png "event detail") *CLI Method:* diff --git a/docs/OneDrive_1_2025-6-30/KB250500010 - ACP Stackrox User Manual.markdown b/docs/en/acp/KB250500010 - ACP Stackrox User Manual.markdown similarity index 100% rename from docs/OneDrive_1_2025-6-30/KB250500010 - ACP Stackrox User Manual.markdown rename to docs/en/acp/KB250500010 - ACP Stackrox User Manual.markdown