diff --git a/VERSIONS/GO_VERSION b/VERSIONS/GO_VERSION
index 6521720b4..8fe00a57f 100644
--- a/VERSIONS/GO_VERSION
+++ b/VERSIONS/GO_VERSION
@@ -1 +1 @@
-1.24.5
+1.26.5
diff --git a/content/docs/api/build_proto.md b/content/docs/api/build_proto.md
index 4a0dc700f..c2af835b3 100644
--- a/content/docs/api/build_proto.md
+++ b/content/docs/api/build_proto.md
@@ -1,6 +1,6 @@
---
title: "Build_proto_api"
-date: 2024-08-08T00:23:48+09:00
+date: 2026-08-12T01:33:11Z
draft: false
weight: 1100
description: How to build gRPC proto files for calling API to your Vald cluster
@@ -41,12 +41,10 @@ Let's build proto files using your favorite programming language.
There are 3 steps to building API proto:
1. Install gRPC tools
-
- gRPC official document provides [the way to install for each language](https://grpc.io/docs/languages/).
If your favorite programming language is not there, you can find 3rd party tools for building.
1. Download Vald api proto files and external dependence
-
- [vald api proto](https://github.com/vdaas/vald/tree/main/apis/proto/v1/vald)
- [vald payload proto](https://github.com/vdaas/vald/tree/main/apis/proto/v1/payload)
- [googleapis](https://github.com/googleapis/googleapis)
@@ -96,7 +94,7 @@ There are many tools for building proto in Rust, we use [tonic](https://github.c
[package]
name = "vald-grpc"
version = "0.1.0"
- edition = "2021"
+ edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -154,7 +152,6 @@ There are many tools for building proto in Rust, we use [tonic](https://github.c
```
1. Implement `build.rs` and Build proto
-
1. `build.rs`
```rust
@@ -207,7 +204,6 @@ There are many tools for building proto in Rust, we use [tonic](https://github.c
```
1. Implement code using client
-
1. `lib.rs`
Import build proto in `src/lib.rs`
@@ -241,7 +237,6 @@ There are many tools for building proto in Rust, we use [tonic](https://github.c
1. `src/client.rs`
There are 4 steps in `src/client.rs`:
-
1. Load dataset
1. Insert vector to Vald cluster
1. Search nearest neighbor vectors from Vald cluster after indexing finished
diff --git a/content/docs/contributing/coding-style.md b/content/docs/contributing/coding-style.md
index 5ac722223..1dc3d5822 100644
--- a/content/docs/contributing/coding-style.md
+++ b/content/docs/contributing/coding-style.md
@@ -1,6 +1,6 @@
---
title: "Coding Style_contributing"
-date: 2024-10-16T16:03:39+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 300
description: Coding style for Vald project
@@ -815,7 +815,6 @@ tests := map[string]func(t *testing.T) test {
Test case names should be readable, meaningful, and understandable easily.
If you create a new test, the test name should be named based on the below-naming templates
-
- Success cases:
- Start with `success` or `{verb} success` or `success {verb}`
- End with the condition `when {condition}` or `with {condition}
@@ -988,7 +987,6 @@ Still, in some cases, you may need to change the generated code to meet your req
1. goleak usage
There are two methods for valid goroutine leak:
-
1. Use `goleak.VerifyNone()` to validate it on each test cases.
1. Use `goleak.VerifyTestMain()` to validate it on each package.
@@ -1135,7 +1133,6 @@ Still, in some cases, you may need to change the generated code to meet your req
By default, when testing the function of the struct, the target struct initialization is implemented by setting the data from the `fields` defined in the test case.
This initialization method has a few disadvantages:
-
1. When there are many fields in the struct, it is hard to set them all.
1. The default value is the zero value of the type, not the struct default value from the struct initialization function.
diff --git a/content/docs/contributing/contributing-guide.md b/content/docs/contributing/contributing-guide.md
index 67e675b7d..59adf93f4 100644
--- a/content/docs/contributing/contributing-guide.md
+++ b/content/docs/contributing/contributing-guide.md
@@ -1,6 +1,6 @@
---
title: "Contributing Guide_contributing"
-date: 2024-01-10T18:16:39+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 100
description: Contribute guideline for the Vald project
@@ -30,11 +30,11 @@ We appreciate your help!
## Contributing Issue
-We use [Github Issues](https://github.com/vdaas/vald/issues) to track issues within this repository.
-If you can determine the problem you are facing is a bug or issue, you can easily submit the issues.
+We use [GitHub Issues](https://github.com/vdaas/vald/issues) to track issues within this repository.
+If you can determine the problem you are facing is a bug or issue, you can submit the issue.
-If you are unsure whether you have found a bug or security-related issues, please consider asking in the [Vald Slack](https://join.slack.com/t/vald-community/shared_invite/zt-db2ky9o4-R_9p2sVp8xRwztVa8gfnPA) first.
-If the behavior you are seeing is confirmed as a bug or issue, it can easily be re-raised in the issue tracker.
+When unsure whether you have found a bug or security-related issue, please consider asking in the [Vald Slack](https://join.slack.com/t/vald-community/shared_invite/zt-db2ky9o4-R_9p2sVp8xRwztVa8gfnPA) first.
+If the behavior you are seeing is confirmed as a bug or issue, it can be re-raised in the issue tracker.
### Bug Report
@@ -46,7 +46,7 @@ Please try to write as detailed as possible in your bug report.
When filing an issue, make sure to answer these five questions:
-1. What version of Vald are you using (vald docker image version)?
+1. What version of Vald are you using (Vald Docker image version)?
2. What operating system and processor architecture are you using?
3. What did you do?
4. What did you expect to see?
@@ -60,7 +60,7 @@ The Vald is being developed based on the design-driven process.
The significant change to the library or the architecture should be discussed first.
We may ask for detailed documentation before your proposal is accepted.
-Your proposal will be reviewed, discussed, and decided whether it is accepted or declined.
+Your proposal will be reviewed, discussed, and accepted or declined.
Please submit the proposal [here](https://github.com/vdaas/vald/issues/new?assignees=&labels=type%2Ffeature%2C+priority%2Flow%2C+team%2Fcore&template=feature_request&title=)
@@ -102,7 +102,7 @@ Follow these steps to make a contribution to any of our open source repositories
2. Set your name and email (these should match the information on your submitted CLA)
```bash
- git config --global user.name "Firstname Lastname"
+ git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
```
@@ -115,9 +115,9 @@ Follow these steps to make a contribution to any of our open source repositories
5. Push to the forked branch (git push origin my-new-feature)
6. Create new Pull Request
-Each pull request and commit should be small enough to contain only one purpose.
+Each pull request and commit should be small enough to address a single purpose.
-Your pull request is much more likely to be accepted if:
+Your pull request has a higher chance of being accepted if:
- Your pull request includes tests
@@ -127,14 +127,14 @@ Your pull request is much more likely to be accepted if:
### How to contribute unit test code
-To contribute unit test code, the steps are almost the same as [contribute source code](#how-to-contribute-source-code), but there are some extra steps when implementing a test function which is not implemented before:
+To contribute unit test code, the steps are almost the same as [contribute source code](#how-to-contribute-source-code), but there are some extra steps when adding a test function that has not been added before:
1. Execute `make gotests/gen` command under Vald repository
-1. Move the test function which you would like to implement above the placeholder `// NOT IMPLEMENTED BELOW`
-1. Uncomment and implement the test function
+1. Move the test function which you would like to write above the placeholder `// NOT IMPLEMENTED BELOW`
+1. Remove the comment markers and write the test function
-Vald implmentes unit test code to ensure the quality of Vald.
-Each implementation file comes with its unit test file, with `*_test.go` postfix.
+Vald implements unit test code to ensure the quality of Vald.
+Each implementation file comes with its unit test file, with `*_test.go` suffix.
In Vald, unit test files are looks like:
```go
@@ -197,10 +197,10 @@ Name your branches with prefixes: `[type]/[area]/[description]`
| Field | Explanation | Naming Rule |
| :---------- | :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------ |
-| type | The PR type | The type of PR can be feature, bug, refactoring, benchmark, security, documentation, dependencies, ci, test, or etc... |
+| type | The PR type | Accepted PR types: feature, bug, refactoring, benchmark, security, documentation, dependencies, ci, test, etc. |
| area | Area of context | The area of PR can be gateway, agent, agent-sidecar, lb-gateway, or etc... |
| description | Summarized description of your branch | The description must be hyphenated. Please use [a-zA-Z0-9] and hyphen as characters, and do not use any other characters. |
-(\*) If you changed multiple areas, please list each area with "-".
+(\*) If you changed more than one area, please list each area with `-`.
-For example, when you add a new feature for internal/servers, the name of the branch will be `feature/internal/add-newfeature-for-servers`.
+For example, when you add a new feature for internal/servers, the name of the branch will be `feature/internal/add-new-feature-for-servers`.
diff --git a/content/docs/overview/about-vald.md b/content/docs/overview/about-vald.md
index 97d24c1d4..b417ab6fd 100644
--- a/content/docs/overview/about-vald.md
+++ b/content/docs/overview/about-vald.md
@@ -1,6 +1,6 @@
---
title: "About Vald_overview"
-date: 2025-09-02T04:53:44Z
+date: 2026-08-12T01:33:10Z
draft: false
weight: 100
description: What is Vald and what you can do with Vald
@@ -21,7 +21,7 @@ Vald is a highly scalable distributed fast approximate nearest neighbor dense ve
Vald is designed and implemented based on Cloud-Native architecture.
-It uses the fastest ANN Algorithm [NGT](https://github.com/yahoojapan/NGT) to search neighbors.
+It uses the fastest ANN Algorithm [NGT](https://github.com/NGT-labs/NGT) to search neighbors.
Vald has automatic vector indexing and index backup, and horizontal scaling which made for searching from billions of feature vector data.
@@ -32,39 +32,31 @@ Vald is easy to use, feature-rich and highly customizable as you needed.
- Asynchronous Auto Indexing
-
- Usually the graph requires locking during indexing, which causes stop-the-world. But Vald uses distributed index graphs so it continues to work during indexing.
- Customizable Ingress/Egress Filtering
-
- Vald implements it's own highly customizable Ingress/Egress filter.
- Which can be configured to fit the gRPC interface.
- Ingress Filter: Ability to Vectorize through filter on request.
- Egress Filter: rerank or filter the searching result with your own algorithm.
- Cloud-native based vector searching engine
-
- Horizontal scalable on memory and CPU for your demand.
- Auto Backup for Index data
-
- Vald supports to backup Vald Agent index data using Object Storage or Persistent Volume.
- Distributed Indexing
-
- Vald distributes vector index to multiple agents, and each agent stores different index.
- Index Replication
-
- Vald stores each index in multiple agents which enables index replicas.
- Automatically rebalancing the replica when some Vald agent goes down.
- Easy to use
-
- Vald can be easily installed in a few steps.
- Highly customizable
-
- You can configure the number of vector dimensions, the number of replica and etc.
- Multi language supported
@@ -85,7 +77,7 @@ Vald supports similarity searching.
Vald is based on Kubernetes and Cloud-Native architecture, which means Vald is highly scalable.
You can easily scale Vald by changing Vald's configuration.
-Vald uses the fastest ANN Algorithm [NGT](https://github.com/yahoojapan/NGT) to search neighbors by default, but users can switch to another vector searching engine in Vald to support the best performance for your use case.
+Vald uses the fastest ANN Algorithm [NGT](https://github.com/NGT-labs/NGT) to search neighbors by default, but users can switch to another vector searching engine in Vald to support the best performance for your use case.
Also, Vald supports auto-healing, to reduce running and maintenance costs. Vald implements the backup mechanism to support disaster recovery.
Whenever one of the Vald Agent instances is down, the new Vald Agent instance will be created automatically and the data will be recovered automatically.
diff --git a/content/docs/overview/architecture.md b/content/docs/overview/architecture.md
index 84dffe0ff..5e6c4546d 100644
--- a/content/docs/overview/architecture.md
+++ b/content/docs/overview/architecture.md
@@ -1,6 +1,6 @@
---
title: "Architecture_overview"
-date: 2024-08-08T00:23:48+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 200
description: High-Level architecture design and overview of each component
@@ -35,7 +35,7 @@ Vald is based on the following technologies.
Vald contains multiple components and configurations.
Helm helps us to manage those manifests and provides a better and easy way to deploy and configure Vald.
-- [NGT](https://github.com/yahoojapan/NGT)
+- [NGT](https://github.com/NGT-labs/NGT)
NGT is one of the core components of Vald.
NGT is a super-fast vector search engine used by Vald to guarantee the high performance of Vald.
@@ -63,7 +63,6 @@ Here are the concepts of Vald.
- Kubernetes based
Vald can integrate with Kubernetes which enables the following features.
-
- Orchestrated
Kubernetes supports container orchestration. All components in Vald can be managed by Kubernetes automatically.
@@ -96,7 +95,7 @@ We will introduce each component and why it is needed in Vald.
### Vald Agent
Vald Agent is the core component of Vald, the approximate nearest neighbor search engine, and stores the graph tree construction on memory for indexing the vectors.
-Vald Agent uses [yahoojapan/NGT](https://github.com/yahoojapan/ngt) as a core library.
+Vald Agent uses [NGT-labs/NGT](https://github.com/NGT-labs/NGT) as a core library.
### Vald LB Gateway
diff --git a/content/docs/overview/component/_index.md b/content/docs/overview/component/_index.md
index 74fa21165..fdfe420fa 100644
--- a/content/docs/overview/component/_index.md
+++ b/content/docs/overview/component/_index.md
@@ -1,6 +1,6 @@
---
title: "Component_overview/Component"
-date: 2024-02-15T17:10:08+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 0
---
@@ -73,7 +73,7 @@ In this section, we will describe what is Vald Agent and the corresponding compo
### Vald Agent
Vald Agent provides functionalities to perform approximate nearest neighbor search.
-Agent-NGT uses [yahoojapan/NGT](https://github.com/yahoojapan/NGT) as a core library.
+Agent-NGT uses [NGT-labs/NGT](https://github.com/NGT-labs/NGT) as a core library.
And Agent-Faiss uses [facebookresearch/faiss](https://github.com/facebookresearch/faiss) as a core library.
Each Vald Agent pod has its own vector data space because only several Vald Agents are selected to be inserted/updated in a single insert/update request.
diff --git a/content/docs/overview/component/agent.md b/content/docs/overview/component/agent.md
index 091f2e5c0..5bf8c0457 100644
--- a/content/docs/overview/component/agent.md
+++ b/content/docs/overview/component/agent.md
@@ -1,6 +1,6 @@
---
title: "Agent_overview/Component"
-date: 2024-05-23T16:15:24+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 100
description: Stores index data and Search ANN vectors
@@ -45,7 +45,7 @@ as core algorithm layer.
#### Vald Agent NGT
-Vald Agent NGT uses [NGT](https://github.com/yahoojapan/NGT) as an algorithm.
+Vald Agent NGT uses [NGT](https://github.com/NGT-labs/NGT) as an algorithm.
The main functions are the followings:
diff --git a/content/docs/overview/component/mirror-gateway.md b/content/docs/overview/component/mirror-gateway.md
index befcff1ae..a339d6ffa 100644
--- a/content/docs/overview/component/mirror-gateway.md
+++ b/content/docs/overview/component/mirror-gateway.md
@@ -1,6 +1,6 @@
---
title: "Mirror Gateway_overview/Component"
-date: 2024-02-15T17:10:09+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 600
description: Gateway for operating Vald cluster compatible with Multi-region and Multi AZ
@@ -66,27 +66,23 @@ Here's an overview of how the Mirror Gateway handles failures for each type of r
For more information about status code, please refer to [Mirror Gateway Troubleshooting](/docs/troubleshooting/mirror-gateway).
- Insert Request
-
- If the target host returns a status code of `ALREADY_EXISTS`, the Update request is sent to this host.
- If the target host returns a status code other than `OK`, `ALREADY_EXISTS`, the Mirror Gateway returns that status code without continuous processing.
- If all target hosts return a status code `ALREADY_EXISTS`, the Mirror Gateway returns `ALREADY_EXISTS`.
- If all target hosts return a status code `OK` or `ALREADY_EXISTS`, the Mirror Gateway returns `OK`.
- Update Request
-
- If the target host returns a status code `NOT_FOUND`, the Insert request is sent to this host.
- If the target host returns a status code other than `OK`, `ALREADY_EXISTS`, the Mirror Gateway returns that status code without continuous processing.
- If all target hosts return a status code `ALREADY_EXISTS`, the Mirror Gateway returns `ALREADY_EXISTS`.
- If all target hosts return a status code `OK` or `ALREADY_EXISTS`, the Mirror Gateway returns `OK`.
- Upsert Request
-
- If all target hosts return a status code `ALREADY_EXISTS`, the Mirror Gateway returns `ALREADY_EXISTS`.
- If the target host returns a status code other than `OK` or `ALREADY_EXISTS`, the Mirror Gateway returns that status code without continuous processing.
- If all target hosts return a status code `OK` or `ALREADY_EXISTS`, the Mirror Gateway returns `OK`.
- Remove/RemoveByTimestamp Request
-
- If all target hosts return a status code `NOT_FOUND`, the Mirror Gateway returns `NOT_FOUND`.
- If the target host returns a status code other than `OK` or `NOT_FOUND`, the Mirror Gateway returns that status code without continuous processing.
- If all target hosts return a status code `OK` or `NOT_FOUND`, the Mirror Gateway returns `OK`.
diff --git a/content/docs/performance/continuous-benchmark.md b/content/docs/performance/continuous-benchmark.md
index ec27a5b6a..f68dcb89b 100644
--- a/content/docs/performance/continuous-benchmark.md
+++ b/content/docs/performance/continuous-benchmark.md
@@ -1,6 +1,6 @@
---
title: "Continuous Benchmark_performance"
-date: 2024-10-16T16:03:40+09:00
+date: 2026-08-12T01:33:09Z
draft: false
weight: 300
description: Performance verification using continuous benchmark tool
@@ -50,7 +50,7 @@ Benchmark Operator manages benchmark job according to the applied manifest.
### ValdBenchmarkJob
-[`ValdBenchmarkJob`](https://github.com/vdaas/vald/blob/main/charts/vald-benchmark-operator/crds/valdbenchmarkjob.yaml) is used for executing single benchmark job.
+[`ValdBenchmarkJob`](https://github.com/vdaas/vald/blob/main/charts/operator/benchmark/crds/valdbenchmarkjob.yaml) is used for executing single benchmark job.
And, Benchmark Operator also applies it to the Kubernetes cluster based on `ValdBenchmarkScenarioResource`.
@@ -184,7 +184,7 @@ And, Benchmark Operator also applies it to the Kubernetes cluster based on `Vald
### ValdBenchmarkScenario
-[`ValdBenchmarkScenario`](https://github.com/vdaas/vald/blob/main/charts/vald-benchmark-operator/crds/valdbenchmarkscenario.yaml) is used for executing single or multiple benchmark job.
+[`ValdBenchmarkScenario`](https://github.com/vdaas/vald/blob/main/charts/operator/benchmark/crds/valdbenchmarkscenario.yaml) is used for executing one or more benchmark jobs.
Benchmark Operator decomposes manifest and creates benchmark resources one by one.
The `target` and `dataset` property are the global config for scenario, they can be overwritten when each job has own config.
@@ -457,7 +457,7 @@ logging:
-For more details of the configuration of `vald-benchmark-operator-release`, please refer to [here](https://github.com/vdaas/vald/blob/main/charts/vald-benchmark-operator/values.yaml)
+For more details of the configuration of `vald-benchmark-operator-release`, please refer to [here](https://github.com/vdaas/vald/blob/main/charts/operator/benchmark/values.yaml)
1. Add Vald repo into the helm repo
diff --git a/content/docs/performance/loadtest.md b/content/docs/performance/loadtest.md
index e05375b3c..06a384ddf 100644
--- a/content/docs/performance/loadtest.md
+++ b/content/docs/performance/loadtest.md
@@ -1,6 +1,6 @@
---
title: "Loadtest_performance"
-date: 2025-09-02T04:53:40Z
+date: 2026-08-12T01:33:09Z
draft: false
weight: 200
description: Shows how to perform load test in the Vald cluster
@@ -43,14 +43,14 @@ Please refer to the [Sample configuration file](https://github.com/vdaas/vald/bl
Here are the important configurations and following the explanation.
-| Name | Description | Example |
-| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ |
-| service | By setting the value to the gateway, you can test the Vald cluster through the Vald gateway.
By setting the value to agent, you can test the Vald agent directly. | gateway or agent |
+| Name | Description | Example |
+| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- |
+| service | By setting the value to the gateway, you can test the Vald cluster through the Vald gateway.
By setting the value to agent, you can test the Vald agent directly. | gateway or agent |
| operation | To perform the specific load test action to the Vald cluster. | insert, streaminsert, search or streamsearch |
-| dataset | The dataset is used in insert and stream insert operation. | |
-| concurrency | The number of concurrent execution of the load test. | |
-| batch_size | The batch size of the dataset. | |
-| addr | The cluster you want to test | |
+| dataset | The dataset is used in insert and stream insert operation. | |
+| concurrency | The number of concurrent execution of the load test. | |
+| batch_size | The batch size of the dataset. | |
+| addr | The cluster you want to test | |
## Execute load test
diff --git a/content/docs/performance/tuning-search-performance.md b/content/docs/performance/tuning-search-performance.md
index 8da2953f3..ee0dc9642 100644
--- a/content/docs/performance/tuning-search-performance.md
+++ b/content/docs/performance/tuning-search-performance.md
@@ -1,6 +1,6 @@
---
title: "Tuning Search Performance_performance"
-date: 2024-02-15T17:10:10+09:00
+date: 2026-08-12T01:33:09Z
draft: false
weight: 0
description: ""
@@ -59,17 +59,17 @@ There is a trade-off between search speed and accuracy, so tuning accuracy at fi
On the client side, parameters of [`Search.Config`](/docs/docs/api/search#input) will affect the search result.
-| | description | how does it affect? | memo |
-| :---------- | :---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |
-| radius | the search radius for NGT
[ref: search_radius](https://github.com/yahoojapan/NGT/tree/main/bin/ngt#search) | Define the search range when NGT searches the nearest neighbors | recommended value: `-1` |
-| epsilon | the search coefficient for NGT
[ref: search_range_coefficient](https://github.com/yahoojapan/NGT/tree/main/bin/ngt#search) | Expansion factor of the NGT search range.
Search operation time increases when the epsilon is big. | recommended value range: `0.01 ~ 0.3`
default value: `0.1` |
-| timeout(ns) | max time duration until receiving search results. | An error will be returned if the set `num` search results cannot be obtained within the set time.
By setting `min_num`, the search results will be returned if more than `min_num` can be searched within the time. | default value: `3,000,000,000ns` |
+| | description | how does it affect? | memo |
+| :---------- | :-------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |
+| radius | the search radius for NGT
[ref: search_radius](https://github.com/NGT-labs/NGT/tree/main/bin/ngt#search) | Define the search range when NGT searches the nearest neighbors | recommended value: `-1` |
+| epsilon | the search coefficient for NGT
[ref: search_range_coefficient](https://github.com/NGT-labs/NGT/tree/main/bin/ngt#search) | Expansion factor of the NGT search range.
Search operation time increases when the epsilon is big. | recommended value range: `0.01 ~ 0.3`
default value: `0.1` |
+| timeout(ns) | max time duration until receiving search results. | An error will be returned if the set `num` search results cannot be obtained within the set time.
By setting `min_num`, the search results will be returned if more than `min_num` can be searched within the time. | default value: `3,000,000,000ns` |
### Cluster-side
On the cluster side, these parameters can be set by `values.yaml`, affect the search result.
-| | description | how does it affect? | Memo |
-| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ |
-| agent.ngt.creation_edge_size | Number of nodes connected to one node
[ref: no_of_edges](https://github.com/yahoojapan/NGT/tree/main/bin/ngt#create) | It helps reduce unreachable edges.
The larger it is, the denser the graph structure will be, but the memory usage, search speed, and index construction time will increase accordingly. | default value: `20` |
-| agent.ngt.search_edge_size | Number of nodes to search from the origin node when searching
[ref: no_of_edges_at_search_at](https://github.com/yahoojapan/NGT/tree/main/bin/ngt#create) | The number of nodes to search will increase.
Accuracy will be higher, but speed will be lower.
Adjust if adjusting the radius and epsilon does not improve the situation. | default value: `10` |
+| | description | how does it affect? | Memo |
+| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ |
+| agent.ngt.creation_edge_size | Number of nodes connected to one node
[ref: no_of_edges](https://github.com/NGT-labs/NGT/tree/main/bin/ngt#create) | It helps reduce unreachable edges.
The larger it is, the denser the graph structure will be, but the memory usage, search speed, and index construction time will increase accordingly. | default value: `20` |
+| agent.ngt.search_edge_size | Number of nodes to search from the origin node when searching
[ref: no_of_edges_at_search_at](https://github.com/NGT-labs/NGT/tree/main/bin/ngt#create) | The number of nodes to search will increase.
Accuracy will be higher, but speed will be lower.
Adjust if adjusting the radius and epsilon does not improve the situation. | default value: `10` |
diff --git a/content/docs/release/changelog.md b/content/docs/release/changelog.md
index 932ea3c6b..25874970c 100644
--- a/content/docs/release/changelog.md
+++ b/content/docs/release/changelog.md
@@ -1,6 +1,6 @@
---
title: "Changelog_release"
-date: 2025-09-02T04:53:42Z
+date: 2026-08-12T01:33:10Z
draft: false
weight: 0
description: ""
@@ -70,7 +70,7 @@ menu:
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.17)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.17/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.17/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.17/charts/operator/helm/README.md)
### Changes
@@ -189,7 +189,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.16)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.16/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.16/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.16/charts/operator/helm/README.md)
### Changes
@@ -270,7 +270,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.15)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.15/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.15/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.15/charts/operator/helm/README.md)
### Changes
@@ -373,7 +373,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.14)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.14/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.14/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.14/charts/operator/helm/README.md)
### Changes
@@ -512,7 +512,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.13)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.13/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.13/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.13/charts/operator/helm/README.md)
### Changes
@@ -653,7 +653,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.12)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.12/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.12/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.12/charts/operator/helm/README.md)
### Changes
@@ -760,7 +760,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.11)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.11/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.11/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.11/charts/operator/helm/README.md)
### Changes
@@ -884,7 +884,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.10)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.10/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.10/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.10/charts/operator/helm/README.md)
### Changes
@@ -976,7 +976,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.9)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.9/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.9/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.9/charts/operator/helm/README.md)
### Changes
@@ -1090,7 +1090,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.8)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.8/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.8/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.8/charts/operator/helm/README.md)
### Changes
@@ -1159,7 +1159,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.7)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.7/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.7/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.7/charts/operator/helm/README.md)
### Changes
@@ -1304,7 +1304,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.6)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.6/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.6/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.6/charts/operator/helm/README.md)
### Changes
@@ -1424,7 +1424,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.5)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.5/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.5/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.5/charts/operator/helm/README.md)
### Changes
@@ -1530,7 +1530,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.4)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.4/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.4/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.4/charts/operator/helm/README.md)
### Changes
@@ -1609,7 +1609,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.3)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.3/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.3/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.3/charts/operator/helm/README.md)
### Changes
@@ -1692,7 +1692,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.2/charts/operator/helm/README.md)
### Changes
@@ -1768,7 +1768,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.1/charts/operator/helm/README.md)
### Changes
@@ -1842,7 +1842,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.7.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.7.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.7.0/charts/operator/helm/README.md)
### Changes
@@ -2000,7 +2000,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.6.3)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.6.3/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.3/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.3/charts/operator/helm/README.md)
### Changes
@@ -2075,7 +2075,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.6.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.6.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.2/charts/operator/helm/README.md)
### Changes
@@ -2152,7 +2152,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.6.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.6.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.1/charts/operator/helm/README.md)
### Changes
@@ -2223,7 +2223,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.6.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.6.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.6.0/charts/operator/helm/README.md)
### Changes
@@ -2333,7 +2333,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.6)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.6/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.6/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.6/charts/operator/helm/README.md)
### Changes
@@ -2413,7 +2413,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.5)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.5/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.5/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.5/charts/operator/helm/README.md)
### Changes
@@ -2506,7 +2506,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.4)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.4/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.4/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.4/charts/operator/helm/README.md)
### Changes
@@ -2597,7 +2597,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.3)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.3/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.3/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.3/charts/operator/helm/README.md)
### Changes
@@ -2701,7 +2701,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.2/charts/operator/helm/README.md)
### Changes
@@ -2801,7 +2801,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.1/charts/operator/helm/README.md)
### Changes
@@ -2887,7 +2887,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.5.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.5.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.5.0/charts/operator/helm/README.md)
### Changes
@@ -2984,7 +2984,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.4.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.4.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.4.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.4.1/charts/operator/helm/README.md)
### Changes
@@ -3050,7 +3050,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.4.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.4.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.4.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.4.0/charts/operator/helm/README.md)
### Changes
@@ -3171,7 +3171,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.3.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.3.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.3.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.3.1/charts/operator/helm/README.md)
### Changes
@@ -3240,7 +3240,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.3.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.3.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.3.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.3.0/charts/operator/helm/README.md)
### Changes
@@ -3306,7 +3306,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.2.4)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.2.4/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.4/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.4/charts/operator/helm/README.md)
### Changes
@@ -3411,7 +3411,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.2.3)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.2.3/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.3/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.3/charts/operator/helm/README.md)
### Changes
@@ -3512,7 +3512,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.2.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.2.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.2/charts/operator/helm/README.md)
### Changes
@@ -3619,7 +3619,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.2.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.2.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.1/charts/operator/helm/README.md)
### Changes
@@ -3729,7 +3729,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.2.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.2.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.2.0/charts/operator/helm/README.md)
### Changes
@@ -3855,7 +3855,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.1.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.1.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.2/charts/operator/helm/README.md)
### Changes
@@ -3970,7 +3970,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.1.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.1.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.1/charts/operator/helm/README.md)
### Changes
@@ -4084,7 +4084,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.1.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.1.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.1.0/charts/operator/helm/README.md)
### Changes
@@ -4277,7 +4277,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.0.4)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.0.4/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.4/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.4/charts/operator/helm/README.md)
### Changes
@@ -4379,7 +4379,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.0.3)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.0.3/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.3/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.3/charts/operator/helm/README.md)
### Changes
@@ -4486,7 +4486,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.0.2)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.0.2/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.2/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.2/charts/operator/helm/README.md)
### Changes
@@ -4595,7 +4595,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.0.1)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.0.1/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.1/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.1/charts/operator/helm/README.md)
### Changes
@@ -4697,7 +4697,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v1.0.0)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v1.0.0/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.0/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v1.0.0/charts/operator/helm/README.md)
### Changes
@@ -4836,7 +4836,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.66)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.66/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.66/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.66/charts/operator/helm/README.md)
### Changes
@@ -4940,7 +4940,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.65)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.65/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.65/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.65/charts/operator/helm/README.md)
### Changes
@@ -5040,7 +5040,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.64)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.64/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.64/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.64/charts/operator/helm/README.md)
### Changes
@@ -5145,7 +5145,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.63)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.63/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.63/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.63/charts/operator/helm/README.md)
### Changes
@@ -5260,7 +5260,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.62)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.62/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.62/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.62/charts/operator/helm/README.md)
### Changes
@@ -5360,7 +5360,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.61)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.61/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.61/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.61/charts/operator/helm/README.md)
### Changes
@@ -5459,7 +5459,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.60)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.60/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.60/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.60/charts/operator/helm/README.md)
### Changes
@@ -5489,7 +5489,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.59)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.59/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.59/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.59/charts/operator/helm/README.md)
### Changes
@@ -5518,7 +5518,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.58)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.58/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.58/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.58/charts/operator/helm/README.md)
### Changes
@@ -5558,7 +5558,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.57)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.57/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.57/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.57/charts/operator/helm/README.md)
### Changes
@@ -5592,7 +5592,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.56)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.56/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.56/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.56/charts/operator/helm/README.md)
### Changes
@@ -5630,7 +5630,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.55)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.55/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.55/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.55/charts/operator/helm/README.md)
### Changes
@@ -5659,7 +5659,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.54)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.54/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.54/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.54/charts/operator/helm/README.md)
### Changes
@@ -5688,7 +5688,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.53)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.53/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.53/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.53/charts/operator/helm/README.md)
### Changes
@@ -5720,7 +5720,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.52)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.52/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.52/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.52/charts/operator/helm/README.md)
### Changes
@@ -5750,7 +5750,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.51)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.51/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.51/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.51/charts/operator/helm/README.md)
### Changes
@@ -5817,7 +5817,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.50)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.50/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.50/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.50/charts/operator/helm/README.md)
### Changes
@@ -5854,7 +5854,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.49)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.49/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.49/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.49/charts/operator/helm/README.md)
### Changes
@@ -5883,7 +5883,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.48)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.48/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.48/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.48/charts/operator/helm/README.md)
### Changes
@@ -5914,7 +5914,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.47)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.47/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.47/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.47/charts/operator/helm/README.md)
### Changes
@@ -5944,7 +5944,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.46)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.46/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.46/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.46/charts/operator/helm/README.md)
### Changes
@@ -5981,7 +5981,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.45)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.45/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.45/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.45/charts/operator/helm/README.md)
### Changes
@@ -6026,7 +6026,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.44)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.44/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.44/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.44/charts/operator/helm/README.md)
### Changes
@@ -6065,7 +6065,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.43)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.43/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.43/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.43/charts/operator/helm/README.md)
### Changes
@@ -6098,7 +6098,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.42)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.42/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.42/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.42/charts/operator/helm/README.md)
### Changes
@@ -6132,7 +6132,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.41)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.41/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.41/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.41/charts/operator/helm/README.md)
### Changes
@@ -6170,7 +6170,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.40)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.40/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.40/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.40/charts/operator/helm/README.md)
### Changes
@@ -6208,7 +6208,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.39)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.39/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.39/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.39/charts/operator/helm/README.md)
### Changes
@@ -6247,7 +6247,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.38)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.38/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.38/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.38/charts/operator/helm/README.md)
### Changes
@@ -6293,7 +6293,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.37)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.37/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.37/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.37/charts/operator/helm/README.md)
### Changes
@@ -6322,7 +6322,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.36)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.36/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.36/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.36/charts/operator/helm/README.md)
### Changes
@@ -6357,7 +6357,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.35)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.35/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.35/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.35/charts/operator/helm/README.md)
### Changes
@@ -6388,7 +6388,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.34)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.34/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.34/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.34/charts/operator/helm/README.md)
### Changes
@@ -6420,7 +6420,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.33)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.33/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.33/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.33/charts/operator/helm/README.md)
### Changes
@@ -6451,7 +6451,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.32)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.32/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.32/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.32/charts/operator/helm/README.md)
### Changes
@@ -6480,7 +6480,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.31)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.31/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.31/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.31/charts/operator/helm/README.md)
### Changes
@@ -6507,7 +6507,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.30)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.30/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.30/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.30/charts/operator/helm/README.md)
### Changes
@@ -6542,7 +6542,7 @@ feat: automatically resolve go.mod & go.sum conflicts in backport workflow [#298
- [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@v0.0.26)
- [Helm Chart Reference](https://github.com/vdaas/vald/blob/v0.0.26/charts/vald/README.md)
-- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.26/charts/vald-helm-operator/README.md)
+- [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/v0.0.26/charts/operator/helm/README.md)
### Changes
diff --git a/content/docs/tutorial/get-started-with-faiss-agent.md b/content/docs/tutorial/get-started-with-faiss-agent.md
index f866123a6..51dbd5058 100644
--- a/content/docs/tutorial/get-started-with-faiss-agent.md
+++ b/content/docs/tutorial/get-started-with-faiss-agent.md
@@ -1,6 +1,6 @@
---
title: "Get Started With Faiss Agent_tutorial"
-date: 2024-10-16T16:03:40+09:00
+date: 2026-08-12T01:33:11Z
draft: false
weight: 200
description: Running Vald cluster with faiss Agent on Kubernetes and execute client codes
@@ -200,9 +200,7 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
The detailed explanation of example code is here
This will execute 6 steps.
-
1. init
-
- Import packages
example code
@@ -228,7 +226,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
- Set variables
-
- The constant number of training datasets and test datasets.
example code
@@ -269,7 +266,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. load
-
- Loading from Fashion-MNIST dataset and set id for each vector that is loaded. This step will return the training dataset, test dataset, and ids list of ids when loading is completed with success.
example code
@@ -300,7 +296,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Insert and Index
-
- Insert and Indexing 400 training datasets to the Vald agent.
example code
@@ -338,7 +333,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Search
-
- Search 10 neighbor vectors for each 20 test datasets and return a list of the neighbor vectors.
- When getting approximate vectors, the Vald client sends search config and vector to the server via gRPC.
@@ -369,7 +363,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Remove
-
- Remove 400 indexed training datasets from the Vald agent.
example code
diff --git a/content/docs/tutorial/get-started.md b/content/docs/tutorial/get-started.md
index 7110d2ec4..9a41e343c 100644
--- a/content/docs/tutorial/get-started.md
+++ b/content/docs/tutorial/get-started.md
@@ -1,6 +1,6 @@
---
title: "Get Started_tutorial"
-date: 2024-10-16T16:03:40+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 100
description: Running Vald cluster with NGT Agent on Kubernetes and execute client codes
@@ -255,9 +255,7 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
The detailed explanation of example code is here
This will execute 6 steps.
-
1. init
-
- Import packages
example code
@@ -283,7 +281,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
- Set variables
-
- The constant number of training datasets and test datasets.
example code
@@ -324,7 +321,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. load
-
- Loading from Fashion-MNIST dataset and set id for each vector that is loaded. This step will return the training dataset, test dataset, and ids list of ids when loading is completed with success.
example code
@@ -355,7 +351,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Insert and Index
-
- Insert and Indexing 400 training datasets to the Vald agent.
example code
@@ -393,7 +388,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Search
-
- Search 10 neighbor vectors for each 20 test datasets and return a list of the neighbor vectors.
- When getting approximate vectors, the Vald client sends search config and vector to the server via gRPC.
@@ -424,7 +418,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Remove
-
- Remove 200 indexed training datasets from the Vald agent.
example code
@@ -447,7 +440,6 @@ If you are interested, please refer to [SDKs](/docs/user-guides/sdks).
1. Flush
-
- Remove all remaining training datasets from the Vald agent.
example code
diff --git a/content/docs/tutorial/vald-agent-standalone-on-docker.md b/content/docs/tutorial/vald-agent-standalone-on-docker.md
index be2eec7a4..a79cce618 100644
--- a/content/docs/tutorial/vald-agent-standalone-on-docker.md
+++ b/content/docs/tutorial/vald-agent-standalone-on-docker.md
@@ -1,6 +1,6 @@
---
title: "Vald Agent Standalone on Docker_tutorial"
-date: 2024-02-15T17:10:12+09:00
+date: 2026-08-12T01:33:10Z
draft: false
weight: 400
description: Running Vald Agent on Docker and execute client codes
@@ -142,7 +142,6 @@ This chapter will use NGT for the core engine of Vald Agent.
To deploy Vald agent on docker with `config.yaml`, you can run the below command.
Note:
-
- Please check whether there is `config.yaml` file and `backup` directory in your current directory.
```bash
diff --git a/content/docs/tutorial/vald-agent-standalone-on-k8s.md b/content/docs/tutorial/vald-agent-standalone-on-k8s.md
index 168a662a6..bf9e2b0e7 100644
--- a/content/docs/tutorial/vald-agent-standalone-on-k8s.md
+++ b/content/docs/tutorial/vald-agent-standalone-on-k8s.md
@@ -1,6 +1,6 @@
---
title: "Vald Agent Standalone on K8s_tutorial"
-date: 2025-09-02T04:53:43Z
+date: 2026-08-12T01:33:11Z
draft: false
weight: 300
description: Running only Vald Agent on Kubernetes and execute client codes
@@ -78,7 +78,7 @@ brew install hdf5
## Deploy Vald Agent Standalone on Kubernetes Cluster
This chapter will show you how to deploy a standalone Vald Agent using Helm and run it on your Kubernetes cluster.
-This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perform vector insertion operation, indexing, and searching operation.
+This chapter uses [NGT](https://github.com/NGT-labs/NGT) as Vald Agent to perform vector insertion operation, indexing, and searching operation.
1. Clone the repository
@@ -158,9 +158,7 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
The detailed explanation of example code is here
This will execute 6 steps.
-
1. init
-
- Import packages
example code
@@ -187,7 +185,6 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
- Set variables
-
- The constant number of training datasets and test datasets.
example code
@@ -228,7 +225,6 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
1. load
-
- Loading from Fashion-MNIST dataset and set id for each vector that is loaded. This step will return the training dataset, test dataset, and ids list of ids when loading is completed with success.
example code
@@ -258,7 +254,6 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
1. Insert and Index
-
- Insert and Indexing 400 training datasets to the Vald agent.
example code
@@ -314,7 +309,6 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
1. Search
-
- Search 10 neighbor vectors for each 20 test datasets and return a list of neighbor vectors.
- When getting approximate vectors, the Vald client sends search config and vector to the server via gRPC.
@@ -345,7 +339,6 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
1. Remove
-
- Remove indexed 400 training datasets from the Vald agent.
example code
diff --git a/content/docs/usecase/usage-example.md b/content/docs/usecase/usage-example.md
index 769f43b8a..e7263d842 100644
--- a/content/docs/usecase/usage-example.md
+++ b/content/docs/usecase/usage-example.md
@@ -1,6 +1,6 @@
---
title: "Usage Example_usecase"
-date: 2024-01-10T18:16:44+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 0
description: ""
@@ -12,7 +12,7 @@ menu:
# Use cases
This document will introduce you to the example of what Vald can do.
-Vald is a highly scalable distributed fast approximate nearest neighbor dense vector search engine, which uses [NGT](https://github.com/yahoojapan/NGT) as the core engine of Vald, and Vald manages to integrate with Kubernetes.
+Vald is a highly scalable distributed fast approximate nearest neighbor dense vector search engine, which uses [NGT](https://github.com/NGT-labs/NGT) as the core engine of Vald, and Vald manages to integrate with Kubernetes.
You cannot generally search your unstructured data using the inverted index, like images and videos.
Applying a model like BERT or VGG can convert your unstructured data into vectors.
diff --git a/content/docs/user-guides/client-api-config.md b/content/docs/user-guides/client-api-config.md
index 798348264..cf8850720 100644
--- a/content/docs/user-guides/client-api-config.md
+++ b/content/docs/user-guides/client-api-config.md
@@ -1,6 +1,6 @@
---
title: "Client Api Config_user Guides"
-date: 2024-10-16T16:03:40+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 1000
description: Shows more detailed explanation about APIs configuration
@@ -387,20 +387,17 @@ When `timestamp` is not set, the current time will be used.
Vald provides four types of search services.
1. Search
-
- `Search` is the `ANN(Approximate Nearest Neighbor)` search with query vector.
It is a fast search even though large dimension vector.
The search duration is quick but less accurate than `LinearSearch`.
The search algorithm depends on each core algorithm.
1. SearchById
-
- `SearchById` is the `ANN(Approximate Nearest Neighbor)` search with the stored vector's ID.
The ID should already exist in the NGT indexes before the search process.
The search algorithm is the same as `Search`.
1. LinearSearch
-
- `LinearSearch` is the most general search algorithm with a query vector.
It searches all indexed vectors and calculates the distance between the query.
It returns accurate results but requires more processing time than `Search` (ANN search) as it needs to calculate from all indexed vectors instead of only a subset of indexed vectors.
diff --git a/content/docs/user-guides/configuration.md b/content/docs/user-guides/configuration.md
index a322ff6b7..881ea14e2 100644
--- a/content/docs/user-guides/configuration.md
+++ b/content/docs/user-guides/configuration.md
@@ -1,6 +1,6 @@
---
title: "Configuration_user Guides"
-date: 2024-08-08T00:23:47+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 100
description: Applies basic configuration for running Vald cluster
@@ -155,7 +155,7 @@ Please refer to [the Vald operation guide](/docs/user-guides/configuration) for
#### NGT
-Vald Agent NGT uses [yahoojapan/NGT][yj-ngt] as a core library for searching vectors.
+Vald Agent NGT uses [NGT-labs/NGT][yj-ngt] as a core library for searching vectors.
The behaviors of NGT can be configured by setting `agent.ngt` field object.
The important parameters are the followings:
@@ -408,7 +408,7 @@ For further details, there are references to the Helm values in the Vald GitHub
[vald-helm-chart]: https://github.com/vdaas/vald/tree/main/charts/vald
-[vald-helm-operator-chart]: https://github.com/vdaas/vald/tree/main/charts/vald-helm-operator
+[vald-helm-operator-chart]: https://github.com/vdaas/vald/tree/main/charts/operator/helm
[vald-apis-docs]: https://github.com/vdaas/vald/tree/main/apis/docs
[vald-swagger-specs]: https://github.com/vdaas/vald/tree/main/apis/swagger
[google-pprof]: https://github.com/google/pprof
@@ -416,7 +416,7 @@ For further details, there are references to the Helm values in the Vald GitHub
[kubernetes-liveness-readiness]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
[kubernetes-affinity-antiaffinity]: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
[kubernetes-topology-spread-constraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
-[yj-ngt]: https://github.com/yahoojapan/NGT
-[yj-ngt-wiki]: https://github.com/yahoojapan/NGT/wiki
+[yj-ngt]: https://github.com/NGT-labs/NGT
+[yj-ngt-wiki]: https://github.com/NGT-labs/NGT/wiki
[faiss]: https://github.com/facebookresearch/faiss
[faiss-wiki]: https://github.com/facebookresearch/faiss/wiki
diff --git a/content/docs/user-guides/deployment.md b/content/docs/user-guides/deployment.md
index 53a60beff..6481ca384 100644
--- a/content/docs/user-guides/deployment.md
+++ b/content/docs/user-guides/deployment.md
@@ -1,6 +1,6 @@
---
title: "Deployment_user Guides"
-date: 2024-08-08T00:23:47+09:00
+date: 2026-08-12T01:33:13Z
draft: false
weight: 600
description: How to launch Vald cluster on your Kubernetes cluster
@@ -14,7 +14,6 @@ menu:
There are two major ways for the deployment of the Vald cluster ways: Using the Helm command with `values.yaml` or without Helm command using operator called `vald-helm-operator`.
- Using Helm command with `values.yaml`
-
- Easy to deploy
- Allow editing Vald configuration values when the user executes Helm command with inlining.
- Need Helm command when applying configuration
@@ -257,7 +256,7 @@ spec:
-For more details of the configuration of vald-helm-operator-release, please refer to [here](https://github.com/vdaas/vald/tree/main/charts/vald-helm-operator#configuration).
+For more details of the configuration of `vald-helm-operator-release`, please refer to [here](https://github.com/vdaas/vald/tree/main/charts/operator/helm#configuration).
After setting `vr.yaml` (and `vhor.yaml`), you can deploy by the following steps.
diff --git a/content/docs/user-guides/operations.md b/content/docs/user-guides/operations.md
index 6699dbd55..c4eb9583f 100644
--- a/content/docs/user-guides/operations.md
+++ b/content/docs/user-guides/operations.md
@@ -1,6 +1,6 @@
---
title: "Operations_user Guides"
-date: 2024-02-15T17:10:15+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 700
description: Describes the basic operation for the Vald cluster
@@ -128,8 +128,8 @@ VERSION=v1.4.1
```
```bash
-kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/${VERSION}/charts/vald-helm-operator/crds/valdrelease.yaml && \
-kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/${VERSION}/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml
+kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/${VERSION}/charts/operator/helm/crds/valdrelease.yaml && \
+kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/${VERSION}/charts/operator/helm/crds/valdhelmoperatorrelease.yaml
```
After upgrading CRDs, please upgrade the operator.
@@ -146,7 +146,7 @@ The operator will automatically detect the changes and update the deployed Vald
- [CHANGELOG][changelog]
[vald-helm-chart]: https://github.com/vdaas/vald/tree/main/charts/vald
-[vald-helm-operator-chart]: https://github.com/vdaas/vald/tree/main/charts/vald-helm-operator
+[vald-helm-operator-chart]: https://github.com/vdaas/vald/tree/main/charts/operator/helm
[changelog]: https://vald.vdaas.org/docs/release/changelog/
[pod-priority-preemption]: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
[resource-quota]: https://kubernetes.io/docs/concepts/policy/resource-quotas/
diff --git a/content/docs/user-guides/read-replica-and-rotator.md b/content/docs/user-guides/read-replica-and-rotator.md
index a18fc151d..ddd65c180 100644
--- a/content/docs/user-guides/read-replica-and-rotator.md
+++ b/content/docs/user-guides/read-replica-and-rotator.md
@@ -1,6 +1,6 @@
---
title: "Read Replica and Rotator_user Guides"
-date: 2024-05-21T13:22:43+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 1500
description: How to improve search request speed
@@ -30,19 +30,19 @@ The read replica is managed with a separate chart from the Vald cluster and is d
```yaml
agent:
ngt:
- export_index_info_to_k8s: true
+ export_index_info_to_k8s: true
readreplica:
- enabled: true
- minReplicas: 1 # if you don't use hpa, this will be the replicas of the Deployment
- maxReplicas: 3
- hpa:
- enabled: true # if you prefer to use hpa
- targetCPUUtilizationPercentage: 80
+ enabled: true
+ minReplicas: 1 # if you don't use hpa, this will be the replicas of the Deployment
+ maxReplicas: 3
+ hpa:
+ enabled: true # if you prefer to use hpa
+ targetCPUUtilizationPercentage: 80
manager:
index:
- operator:
- enabled: true
- rotation_job_concurrency: 2
+ operator:
+ enabled: true
+ rotation_job_concurrency: 2
```
1. Deploy Vald cluster
diff --git a/content/docs/user-guides/upgrade-cluster.md b/content/docs/user-guides/upgrade-cluster.md
index b0f67f083..3aade25c1 100644
--- a/content/docs/user-guides/upgrade-cluster.md
+++ b/content/docs/user-guides/upgrade-cluster.md
@@ -1,6 +1,6 @@
---
title: "Upgrade Cluster_user Guides"
-date: 2024-08-08T00:23:47+09:00
+date: 2026-08-12T01:33:12Z
draft: false
weight: 800
description: Describes hot to upgrade Vald version for the running Vald cluster
@@ -104,7 +104,6 @@ If there is major or minor upgrading, the chart structure may have changed.
```
1. Edit `values.yaml`
-
- We recommend setting a specific version as an image tag.
```yaml
@@ -128,8 +127,8 @@ The upgrading steps are below if you use `vald-helm-operator` for the deployment
1. Upgrade CRDs
```bash
- kubectl replace -f https://raw.githubusercontent.com/vdaas/vald//charts/vald-helm-operator/crds/valdrelease.yaml
- kubectl replace -f https://raw.githubusercontent.com/vdaas/vald//charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml
+ kubectl replace -f https://raw.githubusercontent.com/vdaas/vald//charts/operator/helm/crds/valdrelease.yaml
+ kubectl replace -f https://raw.githubusercontent.com/vdaas/vald//charts/operator/helm/crds/valdhelmoperatorrelease.yaml
```
1. Update `vhor`
@@ -141,7 +140,6 @@ The upgrading steps are below if you use `vald-helm-operator` for the deployment
- Also, you can upgrade manually by editing `vhor.yaml` and applying it.
1. Edit `vr.yaml`
-
- We recommend setting a specific version as an image tag.
```yaml
diff --git a/content/docs/user-guides/vald-operator.md b/content/docs/user-guides/vald-operator.md
new file mode 100644
index 000000000..e220f73bd
--- /dev/null
+++ b/content/docs/user-guides/vald-operator.md
@@ -0,0 +1,388 @@
+---
+title: "Vald Operator_user Guides"
+date: 2026-08-12T01:33:12Z
+draft: false
+weight: 0
+description: ""
+menu:
+ userguides:
+ parent: User Guides
+---
+
+# Vald Operator
+
+The Vald Operator is a Kubernetes controller that manages the lifecycle of Vald clusters through a single custom resource.
+It watches `ValdOperatorRelease` (short name `vor`, API group `vald.vdaas.org/v1`) resources and generates
+[`ValdRelease`](https://github.com/vdaas/vald-helm-operator) (VRS) manifests consumed by the Vald Helm Operator (VHO).
+
+```
+ValdOperatorRelease (vor) ──reconcile──▶ ValdRelease (VRS) × (active infra × clusters)
+ minimal input consumed by vald-helm-operator
+```
+
+The controller _generates_ VRS definitions.
+It does not run Vald itself; a VHO running in the target cluster turns each VRS into Vald pods.
+This separation lets a management cluster emit VRS definitions and distribute them to other clusters.
+
+## Prerequisites
+
+- Go 1.23+
+- Docker 17.03+
+- kubectl 1.11.3+ and access to a Kubernetes 1.11.3+ cluster
+- A working [Vald Helm Operator (VHO)](https://vald.vdaas.org/docs/operator/vald-helm-operator/) in the target cluster
+
+## Deployment
+
+### Build and push the controller image
+
+```sh
+make docker/build/operator/vald
+```
+
+### Install CRDs and deploy the controller
+
+```sh
+make k8s/operator/vald/deploy
+```
+
+### Apply a sample ValdOperatorRelease
+
+```sh
+kubectl apply -f cmd/operator/vald/sample.yaml
+```
+
+### Uninstall
+
+```sh
+kubectl delete -f cmd/operator/vald/sample.yaml
+make k8s/operator/vald/delete
+```
+
+## CRD: ValdOperatorRelease (`vor`)
+
+The goal of the `ValdOperatorRelease` resource is to collapse the large `ValdRelease` configuration surface into what a user must supply.
+There are two input groups:
+
+1. **Infrastructure / node-pool information** — `spec.infrastructure[]`
+2. **Minimal Vald settings** — `spec.vectorEngine.vald`
+
+### Spec example
+
+```yaml
+apiVersion: vald.vdaas.org/v1
+kind: ValdOperatorRelease
+metadata:
+ name: my-vor
+ namespace: vald
+spec:
+ infrastructure:
+ - role: green # arbitrary role label (e.g. green/blue, hot/cold)
+ type: kind # cluster type hint (informational)
+ active: true
+ clusters:
+ - id: "abc-123" # cluster ID (populated by external system)
+ name: "cluster-a" # human-readable cluster name
+ nodePools:
+ general: # gateway / discoverer / manager
+ name: general-pool
+ replicas: 3
+ machineResource:
+ cpu: "4"
+ memory: "16Gi"
+ storage: "100Gi"
+ agent: # optional dedicated agent pool
+ name: agent-pool
+ replicas: 6
+ machineResource:
+ cpu: "8"
+ memory: "32Gi"
+ vectorEngine:
+ name: my-vald
+ vald:
+ defaults:
+ logLevel: warn
+ agent:
+ ngt:
+ dimension: 768
+ distanceType: l2
+ objectType: float
+ creationEdgeSize: 20
+ searchEdgeSize: 10
+ persistentVolume:
+ enabled: true
+ storageClass: standard
+ accessMode: ReadWriteOnce
+ indexer:
+ indexSchedule: "@every 1m"
+ concurrency: 2
+ manager: true
+ indexDuration: 1h
+ saveDuration: 1h
+ gateway:
+ indexReplica: 3
+ serviceType: LoadBalancer
+ ingress:
+ enabled: true
+ host: vald.example.com
+ discoverer:
+ kind: DaemonSet # DaemonSet | Deployment
+ overlay: {} # arbitrary JSON merged onto the generated VRS
+```
+
+### `spec.infrastructure[]`
+
+| Field | Notes |
+| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `role` | Free-form role label (e.g. `hot`, `standby`, `blue`, `green`). Copied to VRS labels. |
+| `type` | Cluster type label. |
+| `active` | When `false`, the entry is skipped during VRS generation. |
+| `clusters[]` | `{ id, name }`. The `id` field is typically filled by an external system; `name` must be set. |
+| `nodePools` | Map keyed by pool type: `general` (required) and `agent` (optional). Each pool carries `name`, `replicas`, and `machineResource{ cpu, memory, storage }`. |
+
+#### Node pool types
+
+| Key | Hosts |
+| --------- | ------------------------------------- |
+| `general` | gateway-lb, discoverer, manager-index |
+| `agent` | `vald-agent` (NGT) |
+
+When no `agent` pool is defined, the `general` pool is used for agent resource sizing and replica count as well.
+
+### `spec.vectorEngine.vald`
+
+| Field | Description |
+| ------------------------ | --------------------------------------------------------------------------------------------------------------- |
+| `defaults.logLevel` | Log level for all Vald components. |
+| `agent.ngt` | NGT settings: `dimension` (required, >= 2), `creationEdgeSize`, `searchEdgeSize`, `distanceType`, `objectType`. |
+| `agent.persistentVolume` | Optional. `{ enabled, storageClass, accessMode }`. Falls back to environment defaults when omitted. |
+| `indexer` | `indexSchedule`, `saveSchedule`, `concurrency`, `manager`, suspend flags, durations. |
+| `gateway` | `indexReplica`, `serviceType`, `ingress{ enabled, host }`. |
+| `discoverer.kind` | `DaemonSet` or `Deployment`. |
+| `overlay` | Arbitrary JSON patch merged onto the generated VRS (Helm-style patch). |
+
+### Status
+
+```yaml
+status:
+ phase: WaitingCreateVrs
+ progress:
+ total: 3
+ completed: 1
+ conditions:
+ - type: WaitingClusterCreate
+ status: "True"
+ reason: Succeeded
+ - type: WaitingCreateVrs
+ status: Unknown
+ reason: Progressing
+```
+
+| Field | Description |
+| -------------------- | --------------------------------------------------------------- |
+| `phase` | The condition type currently being evaluated. |
+| `progress.total` | Total lifecycle phase count. |
+| `progress.completed` | Phases that have reached `True`. |
+| `conditions` | Accumulated `metav1.Condition` array. Phases are never removed. |
+
+## Lifecycle
+
+Reconciliation is modeled as an ordered flow of phases.
+Each phase carries a `Condition` plus an optional `Builder` (creates/updates resources) and `Checker` (reports readiness).
+
+| Phase | Builder | Checker | Purpose |
+| ---------------------- | ------- | ------- | -------------------------------------------------------------------- |
+| `WaitingClusterCreate` | -- | yes | Validate infra config; wait until every cluster has `id` and `name`. |
+| `WaitingCreateVrs` | yes | yes | Build VRS objects and wait until they are ready. |
+| `Completed` | -- | -- | Terminal phase. |
+
+### Accumulating, self-healing conditions
+
+`status.conditions` **accumulates** as phases progress (conditions are never removed), and every reconcile re-evaluates **all** conditions.
+If a `True` condition later breaks (e.g. a generated VRS is deleted), the controller detects it and restarts work from that phase.
+
+```
+Reconcile N: [WaitingClusterCreate=True]
+ → WaitingCreateVrs seeded as Progressing
+
+Reconcile N+1: [WaitingClusterCreate=True, WaitingCreateVrs=Unknown]
+ → VRS created, but Get returns NotFound → stay Progressing
+
+Reconcile N+2: [WaitingClusterCreate=True, WaitingCreateVrs=True]
+ → Completed seeded as Succeeded
+
+--- ValdRelease deleted externally ---
+
+Reconcile N+3: [WaitingClusterCreate=True, WaitingCreateVrs=False]
+ → controller detects break → VRS is recreated → recovers
+```
+
+### Readiness states
+
+| Result | Condition Status | Meaning |
+| ------------- | ---------------- | ----------------------------------------------------------- |
+| `Progressing` | Unknown | The controller is actively working. |
+| `Pending` | Unknown | Waiting for an external event (e.g. cluster ID assignment). |
+| `Succeeded` | True | Phase is complete. |
+| `Failed` | False | Misconfiguration or unrecoverable error. |
+
+## VRS Generation
+
+`VrsBuilder.Build` is a pure function of `(CR, Config, NodePoolCapability)` — it makes no Kubernetes API calls.
+
+1. **Validate** the CR (`infrastructure` non-empty, each cluster has a `name`).
+2. **Iterate `infrastructure[]`**, skipping inactive entries (and, when node-pool matching is enabled, entries with no matching general pool).
+3. **Assemble VRS spec**: defaults, gateway, agent (NGT), manager, discoverer.
+4. **Resolve resources from node pools**: derive replicas and per-component CPU/memory from the agent node pool.
+5. **Apply optional settings**: persistent volume, node affinities.
+6. **Per cluster**: for each `infra.clusters[]`, set name, apply labels, then merge the overlay.
+ One VRS is produced for each cluster, so a single VOR can yield one VRS per target cluster.
+
+### Overlay
+
+`spec.vectorEngine.vald.overlay` is a JSON patch merged onto the generated VRS, layered on top of the default VRS template loaded at startup (`DEFAULT_VRS_PATH`).
+This provides an escape hatch for any VRS field not directly exposed in the VOR spec.
+
+### Resource management
+
+All generated resources have a controller owner reference pointing to the `ValdOperatorRelease` CR, enabling garbage collection when the CR is deleted.
+Every resource is labelled `managed-generation: `.
+On each reconcile, resources owned by the CR but absent from the current build output are pruned (deleted).
+
+## Resource Allocation and Topology
+
+### Agent resource calculation
+
+Agent pods request a fraction of the node's resources so that `AgentPodsPerNode` (default 2) pods fit on one node:
+
+```
+CPU request = nodeCPU * 0.6 / AgentPodsPerNode
+RAM request = nodeRAM * 0.6 / AgentPodsPerNode
+CPU limit = nodeCPU * 0.6
+RAM limit = (not set)
+```
+
+The 0.6 ratio reserves 60% of the node for agent pods; the remaining 40% covers OS, DaemonSets, and system processes.
+Memory limit is intentionally absent because the NGT index uses memory-mapped files and a hard limit would trigger OOM kills.
+
+### Agent pod count
+
+```
+agentPodCount = agentNodeCount * AgentPodsPerNode
+```
+
+`MinReplicas = MaxReplicas = agentPodCount` (agent uses a StatefulSet with no HPA).
+
+### Gateway replica scaling
+
+```
+minReplicas = max(agentPodCount / 2, 1)
+maxReplicas = max(agentPodCount * 2, 1)
+```
+
+### Gateway / discoverer / manager resources
+
+These components use fixed defaults:
+
+| Component | CPU req | RAM req | CPU lim | RAM lim |
+| ------------- | ------- | ------- | ------- | ------- |
+| gateway-lb | 200m | 150Mi | 2000m | 700Mi |
+| discoverer | 200m | 65Mi | 600m | 200Mi |
+| manager-index | 200m | 80Mi | 1000m | 500Mi |
+
+### Topology spread constraints
+
+All components receive a `topologySpreadConstraints` entry to spread pods across nodes:
+
+```yaml
+topologySpreadConstraints:
+ - maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: DoNotSchedule
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component:
+```
+
+## Multi-Cluster Distribution
+
+The same VOR can be distributed across clusters and generates a VRS where a matching node pool exists.
+
+### Node-pool matching
+
+When `REQUIRE_NODEPOOL_MATCH=true`, the controller lists Nodes and resolves a `NodePoolCapability`.
+A VRS is generated when a `general` pool is present.
+Nodes are matched by labels:
+
+```
+/namespace =
+/type = general | agent
+```
+
+`prefix` defaults to empty and can be configured via `NODEPOOL_LABEL_PREFIX`.
+
+When `REQUIRE_NODEPOOL_MATCH=false` (default), the controller skips node listing and treats every infra entry as schedulable.
+
+### Use cases
+
+- **Single cluster**: Deploy VOR once; VRS generates in that cluster.
+- **Multi-cluster same config**: Deploy VOR to all clusters; generate VRS where node-pool labels match.
+- **Blue/green deployments**: Use separate VOR objects with different roles and endpoints.
+- **VRS generation**: Generate VRS manifests in a management cluster and distribute them to workload clusters.
+
+## Configuration
+
+All configuration is loaded once at startup from a YAML config file, following the same convention as every other Vald component.
+See [`cmd/operator/vald/sample.yaml`](https://github.com/vdaas/vald/blob/main/cmd/operator/vald/sample.yaml) for a complete example; when deploying via the Helm chart, every key is exposed through `charts/operator/vald/values.yaml`.
+
+The reconciler-facing settings live under the `operator` key:
+
+| Config Key | Default | Description |
+| ---------------------------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------- |
+| `operator.vrs.default_vrs_path` | `/opt/valdoperatorrelease/config/vrs.yaml` | Default VRS template merged with the overlay. |
+| `operator.vrs.log_level` | `warn` | Log level passed through to the generated VRS. |
+| `operator.node_pool.require_match` | `false` | Only generate VRS where matching node pools exist. |
+| `operator.node_pool.label_prefix` | `""` | Prefix for the `namespace`/`type`/`role` node labels. |
+| `operator.node_pool.agent_pods_per_node` | `2` | Agent pods packed per node when computing replicas. |
+| `operator.persistent_volume.default_storage_class` | `standard` | PV storage class fallback. |
+| `operator.persistent_volume.default_access_mode` | `ReadWriteOnce` | PV access mode fallback. |
+| `operator.persistent_volume.buffer_ratio` | `1.5` | PV size = `max(memoryRequest * ratio, min)`. |
+| `operator.persistent_volume.min_size_bytes` | `1073741824` | Minimum PV size in bytes. |
+| `operator.networking.enable_ingress` | `true` | Enable gateway ingress generation. |
+| `operator.networking.gateway_ingress_annotations` | `{}` | Annotations applied to the gateway ingress. |
+| `operator.networking.gateway_service_type` | `NodePort` | Gateway service type (`NodePort` / `ClusterIP` / `LoadBalancer`). |
+| `operator.networking.discoverer_daemonset_max_surge` | `30%` | Discoverer DaemonSet rolling-update `maxSurge`. |
+| `operator.networking.discoverer_daemonset_max_unavailable` | `0%` | Discoverer DaemonSet rolling-update `maxUnavailable`. |
+
+Controller-level settings (leader election, `requeue` intervals, reconcile concurrency, watched namespaces) live under `operator.controller`, and server/observability settings (`server_config`, `observability`) follow the standard Vald component layout.
+
+## Development
+
+### Common tasks
+
+```sh
+# Run unit tests
+make test/operator/vald
+
+# Regenerate k8s manifests after changing charts/operator/vald
+make k8s/manifest/operator/vald/update
+
+# Lint
+make lint
+
+# Build and push the controller image
+make docker/build/operator/vald
+
+# Deploy the controller to the current cluster
+make k8s/operator/vald/deploy
+```
+
+Run `make help` for the full list of targets.
+
+## Further Reading
+
+| Document | Description |
+| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
+| [Design Overview](vald-operator/design) | Controller architecture, CRD spec, reconcile lifecycle, and environment-variable reference. |
+| [Controller Specification](vald-operator/controller-spec) | Detailed reconcile model, desired-state model, and resource-management rules. |
+| [Resource and Topology Strategy](vald-operator/resource-and-topology) | Agent resource calculation, replica scaling formulas, and topology spread constraints. |
+| [Test Strategy](vald-operator/test-strategy) | Test layers, golden file tests, and coverage philosophy. |
diff --git a/content/docs/user-guides/vald-operator/_index.md b/content/docs/user-guides/vald-operator/_index.md
new file mode 100644
index 000000000..45872b734
--- /dev/null
+++ b/content/docs/user-guides/vald-operator/_index.md
@@ -0,0 +1,9 @@
+---
+title: "Content Placeholder"
+draft: false
+build:
+ render: never
+ list: never
+ publishResources: false
+---
+
diff --git a/content/docs/user-guides/vald-operator/controller-spec.md b/content/docs/user-guides/vald-operator/controller-spec.md
new file mode 100644
index 000000000..199abc306
--- /dev/null
+++ b/content/docs/user-guides/vald-operator/controller-spec.md
@@ -0,0 +1,346 @@
+---
+title: "Controller Spec_user Guides/Vald Operator"
+date: 2026-08-12T01:33:12Z
+draft: false
+weight: 0
+description: ""
+menu:
+ valdoperator:
+ parent: Vald Operator
+---
+
+# ValdOperatorRelease Controller Specification
+
+## Overview
+
+The ValdOperatorRelease controller manages the lifecycle of [ValdRelease](https://vald.vdaas.org) resources
+on a Kubernetes cluster. Users describe their desired Vald configuration via a single `ValdOperatorRelease`
+CR; the controller generates and maintains the corresponding `ValdRelease` objects, adjusting them
+whenever the CR changes.
+
+```text
+User applies ValdOperatorRelease CR
+ │
+ ▼
+┌───────────────────────┐
+│ ValdOperatorRelease │
+│ Controller │
+│ │
+│ 1. Check infrastructure│
+│ 2. Build ValdRelease │
+│ 3. Create / update │
+│ 4. Prune stale VRS │
+└───────────────────────┘
+ │
+ ▼
+ ValdRelease CR(s)
+ (consumed by VHO)
+```
+
+ValdRelease objects are consumed by the [Vald Helm Operator (VHO)](https://vald.vdaas.org/docs/operator/vald-helm-operator/),
+which deploys the actual Vald components.
+
+---
+
+## CRD: ValdOperatorRelease (`vor`)
+
+### Spec
+
+```yaml
+spec:
+ infrastructure:
+ - role: green # arbitrary role label (e.g. green/blue, hot/cold)
+ type: kind # cluster type hint (informational)
+ active: true # whether this infra entry is currently active
+ clusters:
+ - id: "abc-123" # cluster ID (populated by external system)
+ name: "cluster-a" # human-readable cluster name
+ nodePools:
+ general: # NodePoolTypeGeneral — gateway/discoverer/manager
+ name: general-pool
+ replicas: 3
+ machineResource:
+ cpu: "4"
+ memory: "16Gi"
+ storage: "100Gi"
+ agent: # NodePoolTypeValdAgent — optional dedicated agent pool
+ name: agent-pool
+ replicas: 6
+ machineResource:
+ cpu: "8"
+ memory: "32Gi"
+ vectorEngine:
+ name: my-vald
+ vald:
+ defaults:
+ logLevel: warn
+ agent:
+ ngt:
+ dimension: 768
+ distanceType: l2
+ objectType: float
+ creationEdgeSize: 20
+ searchEdgeSize: 10
+ persistentVolume: # optional
+ enabled: true
+ storageClass: standard # falls back to DEFAULT_STORAGE_CLASS
+ accessMode: ReadWriteOnce # falls back to DEFAULT_ACCESS_MODE
+ indexer:
+ indexSchedule: "@every 1m"
+ concurrency: 2
+ manager: true
+ indexDuration: 1h
+ saveDuration: 1h
+ gateway:
+ indexReplica: 3
+ serviceType: LoadBalancer
+ ingress: # optional
+ enabled: true
+ host: vald.example.com
+ discoverer:
+ kind: DaemonSet # DaemonSet | Deployment
+ overlay: {} # arbitrary JSON merged last (Helm-style patch)
+```
+
+#### `infrastructure[].clusters`
+
+| Field | Required | Description |
+| ------ | ---------------------------- | ----------------------------------------------------------------- |
+| `id` | populated by external system | Cluster identifier. Empty while the cluster is being provisioned. |
+| `name` | yes | Human-readable name used to derive the ValdRelease object name. |
+
+#### `infrastructure[].nodePools`
+
+Two pool types are recognized:
+
+| Key | Constant | Hosts |
+| --------- | ----------------------- | ------------------------------------- |
+| `general` | `NodePoolTypeGeneral` | gateway-lb, discoverer, manager-index |
+| `agent` | `NodePoolTypeValdAgent` | vald-agent (NGT) |
+
+When no `agent` pool is defined, the `general` pool is used for agent resource
+sizing and replica count as well. See [Resource Allocation and Topology](resource-and-topology)
+for the sizing formulas.
+
+### Status
+
+```yaml
+status:
+ phase: WaitingCreateVrs # type of the condition currently being processed
+ progress:
+ total: 3 # total number of lifecycle phases
+ completed: 1 # number of phases that have reached True
+ conditions:
+ - type: WaitingClusterCreate
+ status: "True"
+ reason: Succeeded
+ message: "Waiting for Cluster Creation."
+ lastTransitionTime: "2025-01-01T00:00:00Z"
+ - type: WaitingCreateVrs
+ status: Unknown
+ reason: Progressing
+ message: "Waiting for VRS creation."
+ lastTransitionTime: "2025-01-01T00:00:01Z"
+```
+
+| Field | Description |
+| -------------------- | --------------------------------------------------------------------------------------------------------- |
+| `phase` | The `type` of the condition currently being evaluated. Updated on every reconcile. |
+| `progress.total` | Total lifecycle phase count. Set on every reconcile from the lifecycle definition. |
+| `progress.completed` | Count of phases that have transitioned to `True`. Updated when a new phase is seeded. |
+| `conditions` | Accumulated standard `metav1.Condition` array. Phases are never removed; each phase appears at most once. |
+
+#### kubectl columns
+
+```text
+NAME PHASE PROGRESS STATUS AGE
+my-vor WaitingCreateVrs 3 True 5m
+```
+
+> **Note**: The `STATUS` column shows `conditions[0].status`, which is always the
+> first phase (`WaitingClusterCreate`). This reflects whether cluster provisioning
+> has completed, not the overall readiness. Use `PHASE` for current processing state.
+
+---
+
+## Lifecycle Phases
+
+The controller defines three phases in order:
+
+| Order | Condition Type | Desired | Description |
+| ----- | ---------------------- | ------------------ | -------------------------------------------------------------------------------------- |
+| 0 | `WaitingClusterCreate` | `desired.Prop` | Validates that all clusters in `spec.infrastructure` have non-empty `id` and `name`. |
+| 1 | `WaitingCreateVrs` | `desired.Resource` | Builds and creates `ValdRelease` objects; waits for them to exist in the API server. |
+| 2 | `Completed` | `nil` | Terminal phase. No desired-state check; automatically marked `Succeeded` when reached. |
+
+---
+
+## Reconciliation Model
+
+### Conditions Accumulation
+
+Conditions are **never removed** from `Status.Conditions`. As phases progress, entries
+are appended to the array. Every reconcile loop re-evaluates **all** accumulated conditions.
+
+This provides self-healing: if a previously `True` condition later breaks (e.g. a
+`ValdRelease` is deleted, or `spec.infrastructure` is modified), the controller detects
+it on the next reconcile and halts at that phase until it recovers.
+
+```text
+Reconcile N: [WaitingClusterCreate=True]
+ → WaitingCreateVrs seeded as Progressing
+
+Reconcile N+1: [WaitingClusterCreate=True, WaitingCreateVrs=Unknown]
+ → VRS created, but Get returns NotFound → stay Progressing
+
+Reconcile N+2: [WaitingClusterCreate=True, WaitingCreateVrs=True]
+ → Completed seeded as Succeeded
+
+--- ValdRelease deleted externally ---
+
+Reconcile N+3: [WaitingClusterCreate=True, WaitingCreateVrs=False, Completed=True]
+ → WaitingCreateVrs fails → controller stops, returns error → requeued
+ → VRS is recreated, WaitingCreateVrs recovers to True on next pass
+```
+
+### Reconcile Loop (simplified)
+
+```go
+// 1. First reconcile: no conditions yet → seed the first phase
+if len(status.Conditions) == 0 {
+ seed(phases[0], Progressing)
+ return
+}
+
+// 2. Re-evaluate every accumulated condition
+for _, cond := range status.Conditions {
+ phase := phases.GetByType(cond.Type)
+ if phase.Desired == nil { continue }
+
+ createOrUpdateResources(phase) // idempotent
+ result := phase.Desired.IsReady(ctx) // returns desired.Result
+ updateCondition(cond.Type, result)
+
+ if result != Succeeded {
+ return error // halt; controller-runtime requeues
+ }
+}
+
+// 3. If all known phases passed, seed the next one
+if next := phases.GetNext(); next exists {
+ seed(next, Progressing or Succeeded)
+}
+```
+
+### Phase Seeding
+
+When a new phase is seeded:
+
+- `Desired == nil` (e.g. `Completed`): seeded with `Succeeded` immediately.
+- `Desired != nil`: seeded with `Progressing`; evaluated on the next reconcile.
+
+---
+
+## Desired State Model
+
+Each lifecycle phase optionally holds a `Desired` implementation that answers two questions:
+
+1. **`Build(ctx)`** — what Kubernetes resources should exist?
+2. **`IsReady(ctx)`** — are those resources in the expected state?
+
+### `desired.Result`
+
+`IsReady` returns a `desired.Result` which maps directly to a `metav1.Condition`:
+
+| Constructor | `Status` | `Reason` | Meaning |
+| ------------------ | --------- | ------------- | -------------------------------------------------------------------------- |
+| `Progressing(msg)` | `Unknown` | `Progressing` | Controller is actively working (e.g. building resources). |
+| `Pending(msg)` | `Unknown` | `Pending` | Waiting for an external event (e.g. external system setting `cluster.id`). |
+| `Succeeded()` | `True` | `Succeeded` | Phase is complete. |
+| `Failed(err)` | `False` | `Failed` | Unrecoverable error (e.g. missing required configuration). |
+
+**`Pending` vs `Failed`**
+
+`Pending` indicates an expected transient state — the system is waiting for something
+outside its control. `Failed` indicates a configuration error that requires human intervention.
+
+Example — `WaitingClusterCreate`:
+
+| Condition | Result |
+| --------------------------------- | ---------------------------------------------------------------------- |
+| `spec.infrastructure` is empty | `Failed` — required field, user must fix |
+| `infra.clusters` is empty | `Failed` — required field, user must fix |
+| `cluster.id == ""` | `Pending` — external system has started but has not assigned an ID yet |
+| `cluster.name == ""` | `Pending` — same reason |
+| all clusters have `id` and `name` | `Succeeded` |
+
+### `desired.Prop`
+
+Used for pure in-memory checks (no Kubernetes API calls). Holds a `Check func() Result`.
+`Build` is a no-op.
+
+### `desired.Resource`
+
+Used when checking Kubernetes resources via the API server. Holds a `Builder` (which produces
+the list of expected objects) and a `Client`. `Build` calls the builder and stores the list;
+`IsReady` iterates the list and calls `client.Get` for each object.
+
+| Get result | `IsReady` returns |
+| ------------------------------- | --------------------------------------------- |
+| `NotFound` | `Progressing("")` — resources not created yet |
+| other error | `Failed(err)` |
+| found, `Check` returns non-True | returned as-is |
+| all found and passing | `Succeeded()` |
+
+---
+
+## Resource Management
+
+### NodePool Match (optional)
+
+When the environment variable `REQUIRE_NODEPOOL_MATCH=true` is set, the controller
+only generates `ValdRelease` objects for infra entries that have matching Kubernetes
+`Node` objects. Nodes are matched by labels:
+
+```text
+/namespace =
+/type = general | agent
+```
+
+`prefix` defaults to empty (bare `namespace`/`type` keys) and can be configured via
+`NODEPOOL_LABEL_PREFIX`.
+
+### Generation Tracking
+
+Every created/updated resource is labelled `managed-generation: `.
+On each reconcile, resources owned by the `ValdOperatorRelease` CR but absent from the current
+build output are **pruned** (deleted).
+
+### Owner References
+
+All generated resources have a controller owner reference pointing to the `ValdOperatorRelease` CR,
+enabling garbage collection when the CR is deleted.
+
+---
+
+## Configuration
+
+| Environment Variable | Default | Description |
+| ------------------------ | ------- | -------------------------------------------------- |
+| `REQUIRE_NODEPOOL_MATCH` | `false` | Only generate VRS when matching Node labels exist. |
+| `NODEPOOL_LABEL_PREFIX` | `""` | Prefix for node pool label keys. |
+
+See [design](design#configuration-environment-variables) for the full
+environment-variable reference (PV sizing, ingress, gateway service type, discoverer
+DaemonSet strategy, etc.).
+
+---
+
+## Open Items
+
+- **Requeue behavior**: Pending/Progressing conditions currently return an `error`, causing
+ exponential back-off and noisy logs. These should return `ctrl.Result{RequeueAfter: duration}`
+ instead. The duration should be configurable.
+
+- **`STATUS` printcolumn**: Shows `conditions[0].status` (always the first phase).
+ Should be changed to reflect the current overall state more meaningfully.
diff --git a/content/docs/user-guides/vald-operator/design.md b/content/docs/user-guides/vald-operator/design.md
new file mode 100644
index 000000000..1c5fbd4ad
--- /dev/null
+++ b/content/docs/user-guides/vald-operator/design.md
@@ -0,0 +1,204 @@
+---
+title: "Design_user Guides/Vald Operator"
+date: 2026-08-12T01:33:12Z
+draft: false
+weight: 0
+description: ""
+menu:
+ valdoperator:
+ parent: Vald Operator
+---
+
+# Design Overview
+
+This document explains what the `valdoperatorrelease` controller does and how it works.
+It is grounded in the current code; see the referenced files for the source of truth.
+
+## What it is
+
+A Kubernetes controller that manages the lifecycle of [Vald](https://vald.vdaas.org/)
+clusters through a single custom resource, `ValdOperatorRelease` (short name `vor`,
+API group `vald.vdaas.org/v1`).
+
+From a small, high-level input the controller generates one or more
+[`ValdRelease`](https://github.com/vdaas/vald-helm-operator) (VRS) resources — the
+manifests that the Vald Helm Operator (VHO) reconciles into a running Vald cluster.
+
+```
+ValdOperatorRelease (vor) ──reconcile──▶ ValdRelease (VRS) × (active infra × clusters)
+ minimal input consumed by vald-helm-operator
+```
+
+The controller only _generates_ VRS definitions. It does not run Vald itself; a VHO
+running in the target cluster turns each VRS into Vald pods. This separation lets a
+management cluster emit VRS definitions and distribute them to other clusters (for
+example via an external workflow engine).
+
+## The `ValdOperatorRelease` (MVRS) resource
+
+The goal of MVRS is to collapse the large `ValdRelease` configuration surface into the
+minimum a user must supply. There are two input groups.
+
+1. **Infrastructure / node-pool information** — `spec.infrastructure[]`
+2. **Minimal Vald settings** — `spec.vectorEngine.vald`
+
+Source of truth: `internal/k8s/vald/operator/api/v1/valdoperatorrelease_types.go`.
+
+### `spec.infrastructure[]`
+
+A list of infrastructure entries. Each entry produces VRS objects for its clusters.
+
+| Field | Notes |
+| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `role` | Free-form role label (e.g. `hot`, `standby`, `blue`, `green`). Copied to VRS labels. |
+| `type` | Cluster type label. |
+| `active` | When `false`, the entry is skipped during VRS generation. |
+| `clusters[]` | `{ id, name }`. The `id` field is typically filled in by an external system once the target cluster exists; `name` must be set. |
+| `nodePools` | Map keyed by pool type: `general` (required) and `agent` (optional). Each pool carries `name`, `replicas`, and `machineResource{ cpu, memory, storage }`. |
+
+The `machineResource` values drive per-component resource and replica calculations for
+the generated VRS.
+
+### `spec.vectorEngine.vald`
+
+The minimal Vald configuration reflected into each VRS:
+
+- `defaults.logLevel`
+- `agent.ngt` — `dimension` (required, ≥2), `creationEdgeSize`, `searchEdgeSize`, `distanceType`, `objectType`
+- `agent.persistentVolume` — `{ enabled, storageClass, accessMode }` (storageClass/accessMode fall back to env defaults when omitted)
+- `indexer` — `indexSchedule`, `saveSchedule`, `concurrency`, `manager`, suspend flags, durations
+- `gateway` — `indexReplica`, `serviceType`, `ingress{ enabled, host }`
+- `discoverer.kind` — `DaemonSet` or `Deployment`
+- `overlay` — an arbitrary JSON patch merged onto the generated VRS (see _Overlay_ below)
+
+## Lifecycle
+
+Reconciliation is modeled as an ordered flow of phases. Each phase carries a `Condition`
+plus an optional `Builder` (creates/updates resources) and `Checker` (reports readiness).
+
+Phases (`pkg/operator/vald/service/phase.go`):
+
+| Phase (`status.phase`) | Builder | Checker | Purpose |
+| ---------------------- | ------- | ------- | -------------------------------------------------------------------- |
+| `WaitingClusterCreate` | – | yes | Validate infra config; wait until every cluster has `id` and `name`. |
+| `WaitingCreateVrs` | yes | yes | Build the VRS objects and wait until they are ready. |
+| `Completed` | – | – | Terminal phase. |
+
+### Accumulating, self-healing conditions
+
+`status.conditions` **accumulates** as phases progress (conditions are never removed),
+and every reconcile re-evaluates **all** conditions. This is intentional: if a
+previously-`True` condition later breaks (e.g. a generated VRS is deleted, or the spec
+changes), the controller detects it and restarts work from that phase. `status.phase`
+tracks the condition currently being processed.
+
+See `pkg/operator/vald/service/reconciler.go` (`reconcileValdOperatorRelease` /
+`reconcilePhase`) and `pkg/operator/vald/service/phase.go`.
+
+### Readiness result states
+
+A phase check returns one of four `result` states
+(`pkg/operator/vald/service/phase.go`):
+
+| Result | Condition status | Meaning |
+| ----------------- | --------------------- | ---------------------------------------------------------------------------- |
+| `Progressing("")` | Unknown / Progressing | The controller is actively working. |
+| `Pending("msg")` | Unknown / Pending | Waiting on something external (e.g. external system assigning a cluster ID). |
+| `Succeeded()` | True / Succeeded | Done. |
+| `Failed(err)` | False / Failed | Misconfiguration or unrecoverable error. |
+
+For the cluster-create check: a missing `cluster.id`/`cluster.name` yields **Pending**
+(external system not done yet), while empty `clusters` or empty `infrastructure` yields
+**Failed** (misconfiguration). See `pkg/operator/vald/service/reconciler.go`.
+
+## VRS generation flow
+
+Implemented in `pkg/operator/vald/service/builder.go`. `vrsBuilder.Build` is a pure
+function of `(CR, Config, Capability)` — it makes no Kubernetes API calls.
+
+1. **Validate** the CR (`infrastructure` non-empty, each cluster has a `name`).
+2. **Iterate `infrastructure[]`**, skipping entries where `active == false` (and, when
+ node-pool matching is enabled, entries with no matching general pool).
+3. **Assemble the VRS spec** from the CR (all in `pkg/operator/vald/service/builder.go`):
+ - `buildDefaults` — log level
+ - `buildGateway` — `indexReplica`, service type, ingress
+ - `buildAgent` — NGT settings
+ - `buildManager` — Manager mode when `indexer.manager == true`, otherwise Creator/Saver mode
+ - `buildDiscoverer` — kind + namespaced RBAC names
+4. **Resolve resources from node pools** — `SetScaledResources` derives replicas and
+ per-component CPU/memory from the resolved agent node pool. The general-pool fallback
+ rule lives in `resolveAgentNodePool` (`pkg/operator/vald/service/rules.go`).
+5. **Optional settings** — persistent volume and node affinities (both in `builder.go`).
+6. **Per cluster** — for each `infra.clusters[]`, set `name = -`
+ (truncated to 63 chars), apply labels (`namespace`, `type`, `role`), then merge the
+ overlay. One VRS is produced per cluster, so a single MVRS can yield many VRS objects.
+
+### Applying generated resources (`ResourceSyncer`)
+
+The controller delegates the write side to `resource.Syncer`
+(`internal/k8s/resource/syncer.go`):
+
+- `Build` the desired objects, then `CreateOrUpdate` each with an owner reference and a
+ `managed-generation` label set to the owner's `.metadata.generation`.
+- **Prune**: list owned resources of the same kind and delete any that the current
+ `Build` no longer produces (stale generations).
+
+### Overlay
+
+`spec.vectorEngine.vald.overlay` is merged onto the generated VRS on top of the default
+VRS template loaded at startup (`DEFAULT_VRS_PATH`). The merge uses `internal/config.Merge`
+(reflection-based deep merge, later elements override earlier). See `mergeOverlay` in
+`pkg/operator/vald/service/builder.go`.
+
+## Multi-cluster distribution and node-pool matching
+
+The same MVRS can be distributed to multiple clusters, generating a VRS only where a
+matching node pool exists.
+
+- With `REQUIRE_NODEPOOL_MATCH=true`, the controller lists Nodes and resolves a
+ `NodePoolCapability`; a VRS is generated only when a `general` pool is present
+ (`pkg/operator/vald/service/capability.go`).
+- Node match is by labels `namespace=` and `type=general` (required);
+ `type=agent` is optional — when present, agent pods are scheduled onto `type=agent`,
+ otherwise they fall back to `type=general`.
+- Label keys default to `namespace` / `type`; set `NODEPOOL_LABEL_PREFIX`
+ (e.g. `vald.vdaas.org`) to namespace them.
+- With `REQUIRE_NODEPOOL_MATCH=false` (default) the controller skips node listing and
+ treats every infra entry as schedulable (`AlwaysAvailable`).
+
+## Configuration (environment variables)
+
+Loaded once at startup into `config.Config` (`pkg/operator/vald/config/config.go`).
+
+| Env var | Default | Purpose |
+| ------------------------------- | ------------------------------------------ | ----------------------------------------------------------------- |
+| `DEFAULT_VRS_PATH` | `/opt/valdoperatorrelease/config/vrs.yaml` | Default VRS template merged with the overlay. |
+| `REQUIRE_NODEPOOL_MATCH` | `false` | Only generate VRS where matching node pools exist. |
+| `NODEPOOL_LABEL_PREFIX` | `""` | Prefix for the `namespace`/`type`/`role` node labels. |
+| `AGENT_PODS_PER_NODE` | `2` | Agent pods packed per node when computing replicas. |
+| `DEFAULT_STORAGE_CLASS` | `standard` | PV storage class fallback. |
+| `DEFAULT_ACCESS_MODE` | `ReadWriteOnce` | PV access mode fallback. |
+| `PV_BUFFER_RATIO` | `1.5` | PV size = `max(memoryRequest * ratio, min)`. |
+| `PV_MIN_SIZE_BYTES` | `1073741824` | Minimum PV size in bytes. |
+| `ENABLE_INGRESS` | `true` | Enable gateway ingress generation. |
+| `GATEWAY_INGRESS_ANNOTATIONS` | `""` | YAML map of annotations applied to the gateway ingress. |
+| `GATEWAY_SERVICE_TYPE` | `NodePort` | Gateway service type (`NodePort` / `ClusterIP` / `LoadBalancer`). |
+| `VRS_LOG_LEVEL` | `warn` | Log level passed through to the generated VRS. |
+| `DISCOVERER_DS_MAX_SURGE` | `30%` | Discoverer DaemonSet rolling-update `maxSurge`. |
+| `DISCOVERER_DS_MAX_UNAVAILABLE` | `0%` | Discoverer DaemonSet rolling-update `maxUnavailable`. |
+
+## Source map
+
+| Concern | Location |
+| ---------------------- | --------------------------------------------- |
+| CRD types | `internal/k8s/vald/operator/api/v1/` |
+| Reconciler | `pkg/operator/vald/service/reconciler.go` |
+| Resource apply / prune | `internal/k8s/resource/syncer.go` |
+| Phase / conditions | `pkg/operator/vald/service/phase.go` |
+| Node-pool rules | `pkg/operator/vald/service/rules.go` |
+| VRS builder | `pkg/operator/vald/service/builder.go` |
+| Node-pool capability | `pkg/operator/vald/service/capability.go` |
+| VRS API model | `internal/k8s/vald/operator/api/valdrelease/` |
+| Config / env | `pkg/operator/vald/config/config.go` |
+| Entry point | `cmd/operator/vald/main.go` |
+| Manifests / CRDs | `k8s/operator/vald/` |
diff --git a/content/docs/user-guides/vald-operator/resource-and-topology.md b/content/docs/user-guides/vald-operator/resource-and-topology.md
new file mode 100644
index 000000000..34372ab39
--- /dev/null
+++ b/content/docs/user-guides/vald-operator/resource-and-topology.md
@@ -0,0 +1,110 @@
+---
+title: "Resource and Topology_user Guides/Vald Operator"
+date: 2026-08-12T01:33:12Z
+draft: false
+weight: 0
+description: ""
+menu:
+ valdoperator:
+ parent: Vald Operator
+---
+
+# Resource Allocation and Topology Strategy
+
+## Background
+
+Each `ValdOperatorRelease` CR describes one or more node pools. A "general" pool hosts the
+gateway, discoverer, and manager components. An optional "agent" (ValdAgent) pool
+hosts the NGT vector index pods.
+
+When there is no dedicated agent pool the controller falls back to the general pool
+for agent placement (via `effectiveNodePoolType`). Before this fix that fallback was
+not applied to resource and replica sizing, producing zero-replica agent deployments
+in no-agent-pool configurations.
+
+## Node Pool Fallback for Agent Resources
+
+The agent node-pool selection rule lives in
+`pkg/operator/vald/service/rules.go` (`resolveAgentNodePool`) and is called directly by
+the builder. This keeps `vrsBuilder.Build` a pure function of `(CR, Config, Capability)`:
+
+```go
+// pkg/operator/vald/service/builder.go
+agentPool := resolveAgentNodePool(infra)
+row.SetScaledResources(agentPool.NodeCount, agentPool.MachineResource, resourceParams)
+```
+
+`ResolveAgentNodePool` returns the dedicated `agent` pool when present, and otherwise
+falls back to the `general` pool for both replica count and machine resources — so a
+config with no agent pool no longer produces zero-replica agent deployments.
+
+`effectiveNodePoolType` (`pkg/operator/vald/service/builder.go`) applies the same fallback
+to NodeSelector/Tolerations, so placement and resource sizing stay consistent.
+`resourceParams` carries `AgentPodsPerNode` and the discoverer DaemonSet rolling-update
+values from `Config`.
+
+## Agent Resource Calculation
+
+Agent pods request a fraction of the node's resources so that
+`AgentPodsPerNode` (default 2) pods fit on one node:
+
+```
+CPU request = nodeCPU × AgentResourceRatio / AgentPodsPerNode
+RAM request = nodeRAM × AgentResourceRatio / AgentPodsPerNode
+CPU limit = nodeCPU × AgentResourceRatio (all pods on this node share the limit)
+RAM limit = (not set)
+```
+
+`AgentResourceRatio = 0.6` — 60% of the node is reserved for agent pods combined; the
+remaining 40% covers OS, DaemonSets, and other system processes.
+
+Memory limit is intentionally absent: the NGT index grows on disk after startup and
+is then mmap'd into address space. A hard memory limit would trigger OOM kills as the
+index expands.
+
+## Agent Pod Count
+
+```
+agentPodCount = agentNodeCount × AgentPodsPerNode
+```
+
+`MinReplicas = MaxReplicas = agentPodCount` (agent uses a StatefulSet with no HPA).
+
+## Gateway Replica Scaling
+
+Gateway replicas track agent replica count with an HPA range:
+
+```
+minReplicas = max(agentPodCount / 2, 1)
+maxReplicas = max(agentPodCount × 2, 1)
+```
+
+## Gateway / Discoverer / Manager Resources
+
+These components are not node-resource-dependent; they run against vald upstream
+defaults and are unaffected by node pool sizing:
+
+| Component | CPU req | RAM req | CPU lim | RAM lim |
+| ------------- | ------- | ------- | ------- | ------- |
+| gateway-lb | 200m | 150Mi | 2000m | 700Mi |
+| discoverer | 200m | 65Mi | 600m | 200Mi |
+| manager-index | 200m | 80Mi | 1000m | 500Mi |
+
+## Topology Spread Constraints
+
+All four components receive a `topologySpreadConstraints` entry so Kubernetes
+spreads pods across nodes rather than relying on implicit scheduler behaviour:
+
+```yaml
+topologySpreadConstraints:
+ - maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: DoNotSchedule
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component:
+```
+
+`maxSkew: 1` with `DoNotSchedule` ensures at most one extra pod per node compared
+to the least-loaded node. This replaces the previous approach of inflating resource
+requests to crowd out extra pods, which was fragile and hard to reason about.
diff --git a/content/docs/user-guides/vald-operator/test-strategy.md b/content/docs/user-guides/vald-operator/test-strategy.md
new file mode 100644
index 000000000..5f404ee5c
--- /dev/null
+++ b/content/docs/user-guides/vald-operator/test-strategy.md
@@ -0,0 +1,60 @@
+---
+title: "Test Strategy_user Guides/Vald Operator"
+date: 2026-08-12T01:33:12Z
+draft: false
+weight: 0
+description: ""
+menu:
+ valdoperator:
+ parent: Vald Operator
+---
+
+# Test Strategy
+
+## Background
+
+The controller uses a single test style: plain `testing` + testify unit tests.
+All behavior is covered at the unit level — there are no integration tests or envtest
+dependencies.
+
+## Test layers
+
+### Unit tests (`testing` + testify)
+
+Cover pure Go logic — anything that does not depend on a live Kubernetes API server.
+
+| Package | Under test |
+| ---------------------------------------- | ------------------------------------------------------------------------------------ |
+| `pkg/operator/vald/service` (builder) | `validate()`, component builders, `Build()`, `mergeOverlay` (golden file) |
+| `pkg/operator/vald/service` (capability) | `AlwaysAvailable`, `ResolveNodePoolCapability` |
+| `pkg/operator/vald/service` (rules) | `resolveAgentNodePool` fallback logic |
+| `pkg/operator/vald/service` (reconciler) | Reconcile loop, phase transitions, status updates (client faked via interface mocks) |
+| `pkg/operator/vald/service` (operator) | `New`, `Operator.Start` cancellation |
+| `pkg/operator/vald/config` | Config loading and defaults |
+
+## What is intentionally not unit-tested, and why
+
+- **`zz_generated.deepcopy.go`** — generated code; not hand-written, so out of scope.
+ It lowers the raw `go test -cover` number without being a real gap.
+- **`reconcilePhase` Kubernetes side-effects** — `CreateOrUpdate` / `Prune` against a real
+ API server are not exercised in unit tests. The reconciler tests fake the client, so
+ the unit suite validates the phase logic, not the wire protocol. E2E tests cover the
+ full reconcile against a real cluster.
+
+## Golden file test
+
+`TestVrsBuilder_Build` compares the first item of the generated `ValdRelease` list
+against `testdata/vrs.golden.yaml`. The golden file is updated when the test is run with
+`-update`, so intentional changes must be reviewed as part of the diff.
+
+## Coverage philosophy
+
+We prioritize unit coverage of hand-written logic, excluding generated code. The overall
+`go test -cover` number looks low because generated code drags it down; per-function, the
+main paths of the hand-written code are covered.
+
+## Framework choice
+
+| Use | Framework | Reason |
+| ---------- | ------------------- | ------------------------------------------------ |
+| Unit tests | `testing` + testify | Standard, minimal deps, easy table-driven tests. |
diff --git a/stage b/stage
index f06b29b22..fe9c2e5de 160000
--- a/stage
+++ b/stage
@@ -1 +1 @@
-Subproject commit f06b29b227f7aaf2fa876f867d54fd95cd09b9fc
+Subproject commit fe9c2e5de9b55c75022664c1306d5931964ed218