diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a2bdc90026..606b4d0781 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,7 +1,7 @@ { "name": "Vald", "image": "vdaas/vald-dev-container:nightly", - "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], + "runArgs": ["--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"], "settings": { "terminal.integrated.shell.linux": "/bin/bash", diff --git a/.github/workflows/reviewdog-markdown.yml b/.github/workflows/reviewdog-markdown.yml index 636ad5a2e6..2cc69792d1 100644 --- a/.github/workflows/reviewdog-markdown.yml +++ b/.github/workflows/reviewdog-markdown.yml @@ -22,8 +22,8 @@ on: - "CHANGELOG.md" jobs: - languagetool: - name: runner / LanguageTool + languagetool_apis_charts: + name: runner / LanguageTool / apis & charts runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -35,7 +35,25 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review - patterns: "**/*.md **/*.md.gotmpl !**/CHANGELOG.md" + patterns: "apis/**/*.md apis/**/*.md.gotmpl charts/**/*.md !charts/vald/README.md" + level: warning + language: en-US + disabled_rules: "DOUBLE_PUNCTUATION,WORD_CONTAINS_UNDERSCORE,ARROWS,CURRENCY,DASH_RULE,EN_QUOTES" + disabled_categories: "TYPOS,TYPOGRAPHY,STYLE,CASING" + languagetool_docs: + name: runner / LanguageTool / Docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: set git config + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: LanguageTool + uses: reviewdog/action-languagetool@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + reporter: github-pr-review + patterns: "**/*.md **/*.md.gotmpl !**/CHANGELOG.md !apis/** !charts/**" level: warning language: en-US disabled_rules: "DOUBLE_PUNCTUATION,WORD_CONTAINS_UNDERSCORE,ARROWS,CURRENCY,DASH_RULE,EN_QUOTES" diff --git a/CHANGELOG.md b/CHANGELOG.md index efe16d65c9..84ab14abd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,20 +56,24 @@ ### Documents + - [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) ### Changes -πŸ› Bugfix -- Bugfix Circuit Breaker half-open error handling [#1811](https://github.com/vdaas/vald/pull/1811) - -πŸ“ Document fix -- Fix dead link [#1807](https://github.com/vdaas/vald/pull/1807) - -:arrow_up: Dependencies -- Update go modules and add small test for strings [#1812](https://github.com/vdaas/vald/pull/1812) +πŸ› Bugfix + +- Bugfix Circuit Breaker half-open error handling [#1811](https://github.com/vdaas/vald/pull/1811) + +πŸ“ Document fix + +- Fix dead link [#1807](https://github.com/vdaas/vald/pull/1807) + +:arrow_up: Dependencies + +- Update go modules and add small test for strings [#1812](https://github.com/vdaas/vald/pull/1812) ## v1.6.2 @@ -127,22 +131,26 @@ ### Documents + - [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) ### Changes -πŸ› Bugfix -- Bugfix success handling in the half-open and add flow control [#1805](https://github.com/vdaas/vald/pull/1805) -- Fix string concat buffer overflow [#1806](https://github.com/vdaas/vald/pull/1806) - -:white_check_mark: Test -- Implement pkg/agent/handler createAndSaveIndex test case [#1794](https://github.com/vdaas/vald/pull/1794) - -:pencil: Document -- Add cluster role document [#1796](https://github.com/vdaas/vald/pull/1796) -- Fix document format [#1804](https://github.com/vdaas/vald/pull/1804) +πŸ› Bugfix + +- Bugfix success handling in the half-open and add flow control [#1805](https://github.com/vdaas/vald/pull/1805) +- Fix string concat buffer overflow [#1806](https://github.com/vdaas/vald/pull/1806) + +:white_check_mark: Test + +- Implement pkg/agent/handler createAndSaveIndex test case [#1794](https://github.com/vdaas/vald/pull/1794) + +:pencil: Document + +- Add cluster role document [#1796](https://github.com/vdaas/vald/pull/1796) +- Fix document format [#1804](https://github.com/vdaas/vald/pull/1804) ## v1.6.1 @@ -200,17 +208,20 @@ ### Documents + - [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) ### Changes -πŸ› Bugfix -- fix metrics bug [#1800](https://github.com/vdaas/vald/pull/1800) - -:white_check_mark: Test -- Add test for attributesFromError method [#1801](https://github.com/vdaas/vald/pull/1801) +πŸ› Bugfix + +- fix metrics bug [#1800](https://github.com/vdaas/vald/pull/1800) + +:white_check_mark: Test + +- Add test for attributesFromError method [#1801](https://github.com/vdaas/vald/pull/1801) ## v1.6.0 @@ -268,53 +279,60 @@ ### Documents + - [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) ### Changes -### Description: - -:sparkles: New feature + +### Description: + +:sparkles: New feature + - Introduce opentelemetry [#1778](https://github.com/vdaas/vald/pull/1778) - Change opencensus tracing to opentelemetry tracing [#1767](https://github.com/vdaas/vald/pull/1767) -- Add circuit breaker implementation [#1738](https://github.com/vdaas/vald/pull/1738) - -⬆️ Dependency update +- Add circuit breaker implementation [#1738](https://github.com/vdaas/vald/pull/1738) + +⬆️ Dependency update + - Deleted deprecated dependency for OTEL [#1795](https://github.com/vdaas/vald/pull/1795) -- Delete stackdriver dependencies [#1761](https://github.com/vdaas/vald/pull/1761) - -πŸ› Bug fix +- Delete stackdriver dependencies [#1761](https://github.com/vdaas/vald/pull/1761) + +πŸ› Bug fix + - Fix fossa workflow bug [#1787](https://github.com/vdaas/vald/pull/1787) -- Fix failed github workflow [#1745](https://github.com/vdaas/vald/pull/1745) +- Fix failed github workflow [#1745](https://github.com/vdaas/vald/pull/1745) - Add safe directory configuration [#1748](https://github.com/vdaas/vald/pull/1748) - -:recycle: Refactor -- Refactor internal package (net, file, logger) [#1768](https://github.com/vdaas/vald/pull/1768) + +:recycle: Refactor + +- Refactor internal package (net, file, logger) [#1768](https://github.com/vdaas/vald/pull/1768) - :recycle: Set default image tag as latest [#1766](https://github.com/vdaas/vald/pull/1766) - Upgrade ubuntu version [#1743](https://github.com/vdaas/vald/pull/1743) -- Deleted vald_ prefix of dashboard [#1785](https://github.com/vdaas/vald/pull/1785) +- Deleted vald\_ prefix of dashboard [#1785](https://github.com/vdaas/vald/pull/1785) - Use gotestfmt instead of tparse [#1788](https://github.com/vdaas/vald/pull/1788) - -βœ… Test + +βœ… Test + - Implement agent handler saveIndex test case [#1731](https://github.com/vdaas/vald/pull/1731) - Ignore gorules test [#1790](https://github.com/vdaas/vald/pull/1790) -- Fix chaos test [#1757](https://github.com/vdaas/vald/pull/1757) +- Fix chaos test [#1757](https://github.com/vdaas/vald/pull/1757) - Implement agent handler createIndex test case [#1710](https://github.com/vdaas/vald/pull/1710) -- Implement agent handler indexInfo test case [#1708](https://github.com/vdaas/vald/pull/1708) - -πŸ“ Document +- Implement agent handler indexInfo test case [#1708](https://github.com/vdaas/vald/pull/1708) + +πŸ“ Document + - Update testing guideline & template [#1791](https://github.com/vdaas/vald/pull/1791) - Add Client API Config document [#1783](https://github.com/vdaas/vald/pull/1783) - Add backup configuration document [#1754](https://github.com/vdaas/vald/pull/1754) - Add upgrade document [#1777](https://github.com/vdaas/vald/pull/1777) - Update document by feedback [#1773](https://github.com/vdaas/vald/pull/1733) -- Add filter config document [#1755](https://github.com/vdaas/vald/pull/1755) +- Add filter config document [#1755](https://github.com/vdaas/vald/pull/1755) - Add deployment document [#1758](https://github.com/vdaas/vald/pull/1758) -- Update the images of agent page [#1753](https://github.com/vdaas/vald/pull/1753) +- Update the images of agent page [#1753](https://github.com/vdaas/vald/pull/1753) - Update config document [#1751](https://github.com/vdaas/vald/pull/1751) - ## v1.5.6 ### Docker images @@ -371,29 +389,29 @@ ### Documents + - [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) ### Changes -✨ Feature - -- Add distance type [#1732](https://github.com/vdaas/vald/pull/1732) -- Add vald-helm-operator E2E [#1722](https://github.com/vdaas/vald/pull/1722) - - -⬆️ update dependencies -- Delete tensorflow [#1723](https://github.com/vdaas/vald/pull/1723) -- Update deps [#1724](https://github.com/vdaas/vald/pull/1724) - -✏️ Documents - -- Add capacity planning document [#1714](https://github.com/vdaas/vald/pull/1714) -- Update filter gateway document [#1721](https://github.com/vdaas/vald/pull/1721) -- Fix capacity planning doc [#1736](https://github.com/vdaas/vald/pull/1736) -- Fix file name of capacity planning document [#1737](https://github.com/vdaas/vald/pull/1737) - +✨ Feature + +- Add distance type [#1732](https://github.com/vdaas/vald/pull/1732) +- Add vald-helm-operator E2E [#1722](https://github.com/vdaas/vald/pull/1722) + +⬆️ update dependencies + +- Delete tensorflow [#1723](https://github.com/vdaas/vald/pull/1723) +- Update deps [#1724](https://github.com/vdaas/vald/pull/1724) + +✏️ Documents + +- Add capacity planning document [#1714](https://github.com/vdaas/vald/pull/1714) +- Update filter gateway document [#1721](https://github.com/vdaas/vald/pull/1721) +- Fix capacity planning doc [#1736](https://github.com/vdaas/vald/pull/1736) +- Fix file name of capacity planning document [#1737](https://github.com/vdaas/vald/pull/1737) ## v1.5.5 @@ -451,41 +469,42 @@ ### Documents + - [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) ### Changes -♻️ Refactor - -- Make format [#1717](https://github.com/vdaas/vald/pull/1717) -- Remove unnecessary import path on pkg test [#1712](https://github.com/vdaas/vald/pull/1712) -- Fix to get only backoff metrics of discover RPC [#1706](https://github.com/vdaas/vald/pull/1706) - -πŸ› Bugfix - -- Return uuid when exits rpc called [#1709](https://github.com/vdaas/vald/pull/1709) - -✏️ Documents - -- Add textlint for document [#1715](https://github.com/vdaas/vald/pull/1715) -- Modified design of troubleshooting image [#1705](https://github.com/vdaas/vald/pull/1705) -- Update tutorial images [#1704](https://github.com/vdaas/vald/pull/1704) -- Add troubleshooting flow chart document [#1688](https://github.com/vdaas/vald/pull/1688) -- Update data-flow docs for new images and using remove instead of delete [#1693](https://github.com/vdaas/vald/pull/1693) - -:white_check_mark: Test - -- Implement agent handler getObject test case [#1707](https://github.com/vdaas/vald/pull/1707) -- Implement stream insert test case [#1697](https://github.com/vdaas/vald/pull/1697) -- Implement upsert test cases [#1685](https://github.com/vdaas/vald/pull/1685) - -⬆️ Update dependencies - -- Update deps [#1719](https://github.com/vdaas/vald/pull/1719) -- Update deps [#1702](https://github.com/vdaas/vald/pull/1702) -- Automatically update k8s manifests [#1701](https://github.com/vdaas/vald/pull/1701) +♻️ Refactor + +- Make format [#1717](https://github.com/vdaas/vald/pull/1717) +- Remove unnecessary import path on pkg test [#1712](https://github.com/vdaas/vald/pull/1712) +- Fix to get only backoff metrics of discover RPC [#1706](https://github.com/vdaas/vald/pull/1706) + +πŸ› Bugfix + +- Return uuid when exits rpc called [#1709](https://github.com/vdaas/vald/pull/1709) + +✏️ Documents + +- Add textlint for document [#1715](https://github.com/vdaas/vald/pull/1715) +- Modified design of troubleshooting image [#1705](https://github.com/vdaas/vald/pull/1705) +- Update tutorial images [#1704](https://github.com/vdaas/vald/pull/1704) +- Add troubleshooting flow chart document [#1688](https://github.com/vdaas/vald/pull/1688) +- Update data-flow docs for new images and using remove instead of delete [#1693](https://github.com/vdaas/vald/pull/1693) + +:white_check_mark: Test + +- Implement agent handler getObject test case [#1707](https://github.com/vdaas/vald/pull/1707) +- Implement stream insert test case [#1697](https://github.com/vdaas/vald/pull/1697) +- Implement upsert test cases [#1685](https://github.com/vdaas/vald/pull/1685) + +⬆️ Update dependencies + +- Update deps [#1719](https://github.com/vdaas/vald/pull/1719) +- Update deps [#1702](https://github.com/vdaas/vald/pull/1702) +- Automatically update k8s manifests [#1701](https://github.com/vdaas/vald/pull/1701) ## v1.5.4 @@ -543,40 +562,40 @@ ### Documents + - [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) ### Changes -✨ New features - -- Add backoff metrics panel [#1694](https://github.com/vdaas/vald/pull/1694) -- Add backoff metrics for grpc [#1684](https://github.com/vdaas/vald/pull/1684) -- Setup jaeger operator [#1682](https://github.com/vdaas/vald/pull/1682) - - -⬆️ update dependencies - -- Update deps [#1695](https://github.com/vdaas/vald/pull/1695) -- Update deps [#1699](https://github.com/vdaas/vald/pull/1699) - -♻️ Refactor - -- Split agent pkg handler implementation [#1690](https://github.com/vdaas/vald/pull/1690) -- Refactor pkg test helper functions [#1678](https://github.com/vdaas/vald/pull/1678) - -πŸ› Bugfix - -- Fix error handling in readyForUpdate and return NotFound error when delete fails in multiUpdate [#1681](https://github.com/vdaas/vald/pull/1681) -- Fix race error of server package [#1689](https://github.com/vdaas/vald/pull/1689) - -✏️ Documents - -- Add API status code description [#1679](https://github.com/vdaas/vald/pull/1679) -- Modified data flow images [#1687](https://github.com/vdaas/vald/pull/1687) -- Correspond to update omission [#1686](https://github.com/vdaas/vald/pull/1686) -- Renew basic architecture image [#1680](https://github.com/vdaas/vald/pull/1680) +✨ New features + +- Add backoff metrics panel [#1694](https://github.com/vdaas/vald/pull/1694) +- Add backoff metrics for grpc [#1684](https://github.com/vdaas/vald/pull/1684) +- Setup jaeger operator [#1682](https://github.com/vdaas/vald/pull/1682) + +⬆️ update dependencies + +- Update deps [#1695](https://github.com/vdaas/vald/pull/1695) +- Update deps [#1699](https://github.com/vdaas/vald/pull/1699) + +♻️ Refactor + +- Split agent pkg handler implementation [#1690](https://github.com/vdaas/vald/pull/1690) +- Refactor pkg test helper functions [#1678](https://github.com/vdaas/vald/pull/1678) + +πŸ› Bugfix + +- Fix error handling in readyForUpdate and return NotFound error when delete fails in multiUpdate [#1681](https://github.com/vdaas/vald/pull/1681) +- Fix race error of server package [#1689](https://github.com/vdaas/vald/pull/1689) + +✏️ Documents + +- Add API status code description [#1679](https://github.com/vdaas/vald/pull/1679) +- Modified data flow images [#1687](https://github.com/vdaas/vald/pull/1687) +- Correspond to update omission [#1686](https://github.com/vdaas/vald/pull/1686) +- Renew basic architecture image [#1680](https://github.com/vdaas/vald/pull/1680) ## v1.5.3 @@ -634,44 +653,53 @@ ### Documents + - [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) ### Changes -:sparkles: Feature -- add invalid id argument handling [#1667](https://github.com/vdaas/vald/pull/1667) - -:bug: Bugfix -- fix update bug [#1660](https://github.com/vdaas/vald/pull/1660) -- fix typo argument in Makefile and Makefile.d/function.mk [#1673](https://github.com/vdaas/vald/pull/1673) - -:green_heart: CI -- fix chaos test temporarily [#1665](https://github.com/vdaas/vald/pull/1665) - -:memo: Document -- add search config details document [#1661](https://github.com/vdaas/vald/pull/1661) - -:white_check_mark: Test -- implement pkg handler exists test cases [#1628](https://github.com/vdaas/vald/pull/1628) -- implement multi insert test case for pkg agent handler [#1612](https://github.com/vdaas/vald/pull/1612) -- create investigation test of max dim for NGT [#1633](https://github.com/vdaas/vald/pull/1633) -- implement pkg handler remove test cases [#1644](https://github.com/vdaas/vald/pull/1644) -- add e2e test for maxDimensionTest [#1650](https://github.com/vdaas/vald/pull/1650) -- implement update handler test cases [#1657](https://github.com/vdaas/vald/pull/1657) - -:arrow_up: Update dependencies -- update manifests version [#1642](https://github.com/vdaas/vald/pull/1642) -- update go module [#1643](https://github.com/vdaas/vald/pull/1643) -- fix go tool installation [#1649](https://github.com/vdaas/vald/pull/1649) -- update kind version [#1668](https://github.com/vdaas/vald/pull/1668) - -:art: Design -- update dataflow image [#1647](https://github.com/vdaas/vald/pull/1647) - -:lock: Security -- fix CWE-285 [#1654](https://github.com/vdaas/vald/pull/1654) +:sparkles: Feature + +- add invalid id argument handling [#1667](https://github.com/vdaas/vald/pull/1667) + +:bug: Bugfix + +- fix update bug [#1660](https://github.com/vdaas/vald/pull/1660) +- fix typo argument in Makefile and Makefile.d/function.mk [#1673](https://github.com/vdaas/vald/pull/1673) + +:green_heart: CI + +- fix chaos test temporarily [#1665](https://github.com/vdaas/vald/pull/1665) + +:memo: Document + +- add search config details document [#1661](https://github.com/vdaas/vald/pull/1661) + +:white_check_mark: Test + +- implement pkg handler exists test cases [#1628](https://github.com/vdaas/vald/pull/1628) +- implement multi insert test case for pkg agent handler [#1612](https://github.com/vdaas/vald/pull/1612) +- create investigation test of max dim for NGT [#1633](https://github.com/vdaas/vald/pull/1633) +- implement pkg handler remove test cases [#1644](https://github.com/vdaas/vald/pull/1644) +- add e2e test for maxDimensionTest [#1650](https://github.com/vdaas/vald/pull/1650) +- implement update handler test cases [#1657](https://github.com/vdaas/vald/pull/1657) + +:arrow_up: Update dependencies + +- update manifests version [#1642](https://github.com/vdaas/vald/pull/1642) +- update go module [#1643](https://github.com/vdaas/vald/pull/1643) +- fix go tool installation [#1649](https://github.com/vdaas/vald/pull/1649) +- update kind version [#1668](https://github.com/vdaas/vald/pull/1668) + +:art: Design + +- update dataflow image [#1647](https://github.com/vdaas/vald/pull/1647) + +:lock: Security + +- fix CWE-285 [#1654](https://github.com/vdaas/vald/pull/1654) ## v1.5.2 @@ -729,41 +757,49 @@ ### Documents + - [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) ### Changes -:arrow_up: update dependencies -- update libs version (#1636) -- update libs version (#1632) - -:sparkles: feature -- use ReadWriteOncePod instead of ReadWriteOnce and remove initializer (#1627) - -:recycle: refactor -- refactor: improve memory high usage of vald-agent (#1617) - -:lock: security -- security: fix vulnerability problem of helm operator (#1625) -- [Security] Fix vulnerability problem of helm operator (#1611) -- security fix Vulnerability due to usage of old golang.org/x:net in example depentency (#1641) - -:green_heart: ci -- ci: Fix CodeQL warning (#1629) -- fix fails actions job & update version (#1620) -- [CI] Allow e2e deploy action jobs to run in parallel (#1616) - -:white_check_mark: test -- fix superfluous response.WriteHeader call (#1631) -- implement search-by-id pkg test (#1624) - -:memo: document -- document: update formats (#1634) -- docs: add dotdc as a contributor for doc (#1623) -- doc: fixed architecture link in get-started.md (#1619) -- add FAQ and Troubleshooting document (#1591) +:arrow_up: update dependencies + +- update libs version (#1636) +- update libs version (#1632) + +:sparkles: feature + +- use ReadWriteOncePod instead of ReadWriteOnce and remove initializer (#1627) + +:recycle: refactor + +- refactor: improve memory high usage of vald-agent (#1617) + +:lock: security + +- security: fix vulnerability problem of helm operator (#1625) +- [Security] Fix vulnerability problem of helm operator (#1611) +- security fix Vulnerability due to usage of old golang.org/x:net in example depentency (#1641) + +:green_heart: ci + +- ci: Fix CodeQL warning (#1629) +- fix fails actions job & update version (#1620) +- [CI] Allow e2e deploy action jobs to run in parallel (#1616) + +:white_check_mark: test + +- fix superfluous response.WriteHeader call (#1631) +- implement search-by-id pkg test (#1624) + +:memo: document + +- document: update formats (#1634) +- docs: add dotdc as a contributor for doc (#1623) +- doc: fixed architecture link in get-started.md (#1619) +- add FAQ and Troubleshooting document (#1591) ## v1.5.1 @@ -821,34 +857,35 @@ ### Documents + - [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) ### Changes -:arrow_up: update dependencies - -- Upgrade pyroscope version (#1605) - -:bug: bugfix - -- bugfix internal/file and add CreateTemp function and resolve go module failure (#1608) - -:white_check_mark: Test - -- fix search handler test (#1613) -- fix fails test of e2e chaos (#1603) -- Implement pkg ngt handler insert test (#1552) -- implement agent ngt handler search test (#1557) - -:memo: document - -- add vald users (#1601) -- update brand guidelines pdf (#1600) -- fix file name of search api (#1599) -- [ImgBot] Optimize images (#1598) -- cleanup document images (#1595) +:arrow_up: update dependencies + +- Upgrade pyroscope version (#1605) + +:bug: bugfix + +- bugfix internal/file and add CreateTemp function and resolve go module failure (#1608) + +:white_check_mark: Test + +- fix search handler test (#1613) +- fix fails test of e2e chaos (#1603) +- Implement pkg ngt handler insert test (#1552) +- implement agent ngt handler search test (#1557) + +:memo: document + +- add vald users (#1601) +- update brand guidelines pdf (#1600) +- fix file name of search api (#1599) +- [ImgBot] Optimize images (#1598) +- cleanup document images (#1595) ## v1.5.0 @@ -906,40 +943,46 @@ ### Documents + - [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) ### Changes -:sparkles: New features -- Add values yaml for the back up the agent index data (#1566) -- Implement uniform/gaussian distributed random float32/uint8 vector generator (#1573) -- Add min_num in each search service api (#1576) -- Add copy on write (#1578) -- Add example values for using Pyroscope (#1582) - -:recycle: Refactor -- Deleted resource limits of agent ngt and added in memory mode example (#1571) -- Improve string conversion performace (#1577) -- Update dependencies version (#1593) - -:pencil2: Documents -- Add gateway component overview document (#1549) -- Update API docs and fix format (#1568) -- Update dataflow images (#1572) -- Add discoverer component overview document (#1574) -- Add index manager component overview document (#1575) -- Update README (#1584) - -:bug: Bugfix -- Add error handling when there is no data in google cloud storage. (#1556) -- Reviewdog markdown workflow (#1585) -- Fix invalid URL (#1589) - -:white_check_mark: Test -- Implement test for net/grpc codec,logger and server (#1530) -- Update test for go1.17 update & -race test (#1431) +:sparkles: New features + +- Add values yaml for the back up the agent index data (#1566) +- Implement uniform/gaussian distributed random float32/uint8 vector generator (#1573) +- Add min_num in each search service api (#1576) +- Add copy on write (#1578) +- Add example values for using Pyroscope (#1582) + +:recycle: Refactor + +- Deleted resource limits of agent ngt and added in memory mode example (#1571) +- Improve string conversion performace (#1577) +- Update dependencies version (#1593) + +:pencil2: Documents + +- Add gateway component overview document (#1549) +- Update API docs and fix format (#1568) +- Update dataflow images (#1572) +- Add discoverer component overview document (#1574) +- Add index manager component overview document (#1575) +- Update README (#1584) + +:bug: Bugfix + +- Add error handling when there is no data in google cloud storage. (#1556) +- Reviewdog markdown workflow (#1585) +- Fix invalid URL (#1589) + +:white_check_mark: Test + +- Implement test for net/grpc codec,logger and server (#1530) +- Update test for go1.17 update & -race test (#1431) ## v1.4.1 @@ -997,14 +1040,15 @@ ### Documents + - [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) ### Changes -- [bugfix] fix miss param for fp16 (#1563) -- [bugfix] add missing empty dir mount for s3 backup without pvs (#1562) +- [bugfix] fix miss param for fp16 (#1563) +- [bugfix] add missing empty dir mount for s3 backup without pvs (#1562) ## v1.4.0 @@ -1062,63 +1106,70 @@ ### Documents + - [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) ### Changes - -:sparkles: New features -- Add agent minnum field and support fp16 (#1558) -- Add pyroscope manifest running on persistent volume (#1551) -- Add settings for profiling with pyroscope (#1539) -- Add pyroscope manifest (#1520) -- Add linear search handler for gateway-lb / ingress-filter / agent-core-ngt (#1511) -- Add grpc custom codec (#1490) -- Update grpc codes (#1489) -- Add NGT linear search API (#1504) - -:recycle: Refactor -- Delete unsupported library sptag (#1559) -- Improved search operation (#1546) -- Add description timeout of search config (#1541) -- Update dependencies version (#1538) -- Happy new year (#1525) -- Update libs version (#1524) -- Add the missing go.sum (#1517) -- Update license headers / Format codes (#1514) -- Add .gitattributes (#1512) -- Update get started with using kubernetes ingress (#1510) -- Fix command template (#1508) -- Update dependencies version (#1501) -- modify .pb.go & swagger (#1493) -- Add reshape vector proto, remove meta/backup proto (#1492) - -:pencil2: Documents -- Add agent component overview document (#1544) -- Add build api proto document (#1540) -- Add remove/object api document (#1536) -- Add search api document (#1534) -- Add upsert api document (#1533) -- Add update api document (#1529) -- Add insert api document (#1516) - -:bug: Bugfix -- Fix vulnerability problem of helm-operator (#1535) - - -:white_check_mark: Test -- Implement internal/net/grpc metrics & proto & types test (#1507) -- Implement and modify internal/io tests (#1509) -- Implement internal/net net.go&dialer.go test (#1505) -- Implement internal/net/grpc/credentials and health test (#1502) -- Implement internal/net/control test (#1500) -- Remove unsupported feature from public document (#1497) - -:tada: Cellebration! -- Add liusy182 as a contributor for example (#1519) -- Add zchee as a contributor for a11y (#1513) + + +:sparkles: New features + +- Add agent minnum field and support fp16 (#1558) +- Add pyroscope manifest running on persistent volume (#1551) +- Add settings for profiling with pyroscope (#1539) +- Add pyroscope manifest (#1520) +- Add linear search handler for gateway-lb / ingress-filter / agent-core-ngt (#1511) +- Add grpc custom codec (#1490) +- Update grpc codes (#1489) +- Add NGT linear search API (#1504) + +:recycle: Refactor + +- Delete unsupported library sptag (#1559) +- Improved search operation (#1546) +- Add description timeout of search config (#1541) +- Update dependencies version (#1538) +- Happy new year (#1525) +- Update libs version (#1524) +- Add the missing go.sum (#1517) +- Update license headers / Format codes (#1514) +- Add .gitattributes (#1512) +- Update get started with using kubernetes ingress (#1510) +- Fix command template (#1508) +- Update dependencies version (#1501) +- modify .pb.go & swagger (#1493) +- Add reshape vector proto, remove meta/backup proto (#1492) + +:pencil2: Documents + +- Add agent component overview document (#1544) +- Add build api proto document (#1540) +- Add remove/object api document (#1536) +- Add search api document (#1534) +- Add upsert api document (#1533) +- Add update api document (#1529) +- Add insert api document (#1516) + +:bug: Bugfix + +- Fix vulnerability problem of helm-operator (#1535) + +:white_check_mark: Test + +- Implement internal/net/grpc metrics & proto & types test (#1507) +- Implement and modify internal/io tests (#1509) +- Implement internal/net net.go&dialer.go test (#1505) +- Implement internal/net/grpc/credentials and health test (#1502) +- Implement internal/net/control test (#1500) +- Remove unsupported feature from public document (#1497) + +:tada: Cellebration! + +- Add liusy182 as a contributor for example (#1519) +- Add zchee as a contributor for a11y (#1513) ## v1.3.1 @@ -1176,17 +1227,18 @@ ### Documents + - [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) ### Changes -- Add documentation comments to proto files (#1452) -- Add ngt index count panel to agent grafana dashboard (#1483) -- add grpc keepalive EnforcementPolicy support (#1487) -- fix timing of removeInvalidIndex (#1481) -- [bugfix] add validation to agent service option InitialDelayMaxDuration (#1482) +- Add documentation comments to proto files (#1452) +- Add ngt index count panel to agent grafana dashboard (#1483) +- add grpc keepalive EnforcementPolicy support (#1487) +- fix timing of removeInvalidIndex (#1481) +- [bugfix] add validation to agent service option InitialDelayMaxDuration (#1482) ## v1.3.0 @@ -1244,14 +1296,15 @@ ### Documents + - [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) ### Changes -- add startupProbe support (#1473) -- add label / field selectors for discoverer (#1472) +- add startupProbe support (#1473) +- add label / field selectors for discoverer (#1472) ## v1.2.4 @@ -1309,24 +1362,25 @@ ### Documents + - [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) ### Changes -- update go patch version (#1464) -- [bugfix] sidecar e2e testing (#1465) -- update dependencies version including NGT (#1461) -- fix unlimited gorountine processing in kvsdb (#1458) -- Refactor hack pkg agent e2e benchmark (#1430) -- Remove non-exist components from doc and ci (#1450) -- :recycle: :pencil: add default_pool_size in example yml (#1457) -- reduce memory usage around ngt implementation & refactor agent/lb & auto-generate unit test (#1449) -- Remove rinx from several yamls (#1451) -- Add E2E scenario with SkipStrictExistCheck enabled (#1415) -- fix filter-gateway chart (#1454) -- Implement pkg/agent/core/ngt/service/option test (#1429) +- update go patch version (#1464) +- [bugfix] sidecar e2e testing (#1465) +- update dependencies version including NGT (#1461) +- fix unlimited gorountine processing in kvsdb (#1458) +- Refactor hack pkg agent e2e benchmark (#1430) +- Remove non-exist components from doc and ci (#1450) +- :recycle: :pencil: add default_pool_size in example yml (#1457) +- reduce memory usage around ngt implementation & refactor agent/lb & auto-generate unit test (#1449) +- Remove rinx from several yamls (#1451) +- Add E2E scenario with SkipStrictExistCheck enabled (#1415) +- fix filter-gateway chart (#1454) +- Implement pkg/agent/core/ngt/service/option test (#1429) ## v1.2.3 @@ -1413,20 +1467,21 @@ ### Documents + - [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) ### Changes -- update go module dependencies & update go patch version to 1.17.1 (#1445) -- [bugfix] fix unknown status problems in search operation (#1439) -- Add tools.mk for installing CI tools (#1442) -- Fix icon image path in Chart.yaml (#1441) -- fix(Makefile): :bug: Remove components (#1440) -- Change golangci-lint version to the latest and Fix docker build error (#1435) -- Fix golangci-lint rule (#1380) -- Add vqueue test for Exists and GetVector method (#1425) +- update go module dependencies & update go patch version to 1.17.1 (#1445) +- [bugfix] fix unknown status problems in search operation (#1439) +- Add tools.mk for installing CI tools (#1442) +- Fix icon image path in Chart.yaml (#1441) +- fix(Makefile): :bug: Remove components (#1440) +- Change golangci-lint version to the latest and Fix docker build error (#1435) +- Fix golangci-lint rule (#1380) +- Add vqueue test for Exists and GetVector method (#1425) ## v1.2.2 @@ -1513,26 +1568,27 @@ ### Documents + - [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) ### Changes -- Add stateful PBT for NGT service (#1384) -- add default logger when logger not initialized (#1424) -- feat: :sparkles: Add LB gateway dashboard (#1420) -- chore-deps: :arrow_up: Upgrade OSDK to v1.11.0 (#1422) -- change default epsilon value to 0.1 from 0.0.1 (#1421) -- add go vet for checking cpu compatibility and update deps and refactor small code (#1418) -- Delete insert and delete channel of vqueue (#1400) -- downgrade cloud.google.com/go to resolve runtime panic (#1413) -- [bugfix] resolve errgroup limitation channel close panic (#1412) -- Update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#1409) -- update go version to 1.17 and update go module dependencies (#1404) -- refactor grpc logging and use os.PathSeparator instead of / (#1405) -- Remove schema of security contexts (#1406) -- change security context uid to distroless nonroot uid (#1402) +- Add stateful PBT for NGT service (#1384) +- add default logger when logger not initialized (#1424) +- feat: :sparkles: Add LB gateway dashboard (#1420) +- chore-deps: :arrow_up: Upgrade OSDK to v1.11.0 (#1422) +- change default epsilon value to 0.1 from 0.0.1 (#1421) +- add go vet for checking cpu compatibility and update deps and refactor small code (#1418) +- Delete insert and delete channel of vqueue (#1400) +- downgrade cloud.google.com/go to resolve runtime panic (#1413) +- [bugfix] resolve errgroup limitation channel close panic (#1412) +- Update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#1409) +- update go version to 1.17 and update go module dependencies (#1404) +- refactor grpc logging and use os.PathSeparator instead of / (#1405) +- Remove schema of security contexts (#1406) +- change security context uid to distroless nonroot uid (#1402) ## v1.2.1 @@ -1619,29 +1675,30 @@ ### Documents + - [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) ### Changes -- remove global errgroup from kvsdb goroutine limitation (#1398) -- add google grpc healthz & logger (#1394) -- fix e2e multi apis test code (#1397) -- :pencil: fix command in vald agent standalone on docker (#1393) -- add Makefile & Makefile.d to build kick rule (#1391) -- format codes (#1389) -- [proposal] add golines as vald default formatter (#1337) -- replace gogo protobuf to vt protobuf (#1378) -- refactor gateway request result location aggregation logic & use xxh3 for kvsdb hashing (#1376) -- Add E2E tests for multi-APIs (#1353) -- Add test for the function to get length of vqueue (#1382) -- remove unused path of format/yaml command (#1383) -- [Documentation] fix image filename (#1377) -- Vald moves to a vector search engine that enables more simple and high-speed retrieval. This is the first step of Simple-Vald. (#1365) -- Add e2e-profiling job (#1356) -- fix svg error on dataflow image (#1375) -- remove invalid gateway component reference from chart.NOTES (#1371) +- remove global errgroup from kvsdb goroutine limitation (#1398) +- add google grpc healthz & logger (#1394) +- fix e2e multi apis test code (#1397) +- :pencil: fix command in vald agent standalone on docker (#1393) +- add Makefile & Makefile.d to build kick rule (#1391) +- format codes (#1389) +- [proposal] add golines as vald default formatter (#1337) +- replace gogo protobuf to vt protobuf (#1378) +- refactor gateway request result location aggregation logic & use xxh3 for kvsdb hashing (#1376) +- Add E2E tests for multi-APIs (#1353) +- Add test for the function to get length of vqueue (#1382) +- remove unused path of format/yaml command (#1383) +- [Documentation] fix image filename (#1377) +- Vald moves to a vector search engine that enables more simple and high-speed retrieval. This is the first step of Simple-Vald. (#1365) +- Add e2e-profiling job (#1356) +- fix svg error on dataflow image (#1375) +- remove invalid gateway component reference from chart.NOTES (#1371) ## v1.2.0 @@ -1728,45 +1785,46 @@ ### Documents + - [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) ### Changes -# Release Vald v1.2.0 - - -## Changes: -- fix build failure on arm cpu due to the xxh3 dependency version (#1368) -- Add core algorithm ngt test (#1364) -- add mote accurate directory detection logic for removing (#1366) -- remove meta backup compressor from charts (#1334) -- update go module version (#1363) -- Update architecture overview (#1304) -- Improve internal package tests (#1227) -- fix bug of bulkinsert when error occurs and refactor error message (#1361) -- change initial-index-directory removal logic (#1359) -- ci: :construction_worker: Add gnupg to ci-container (#1362) -- ci: :construction_worker: add condition to trigger importing gpg key (#1360) -- fix: :bug: Fix mount paths when using persistent volume claim template (#1358) -- ci: :construction_worker: Add Upsert operation tests (#1347) -- config: :gear: Use GPG key for signing commits (#1351) -- add time validation for vqueue (#1352) -- chore-deps: :arrow_up: Upgrade tools (#1355) -- comment out backup/meta/compressor build command in Makefile (#1346) -- remove: :heavy_minus_sign: Remove backup, meta components from CI (#1331) -- add line trace logging when log mode is glg and level is debug (#1348) -- update go version to 1.16.6 and update go module dependencies (#1345) -- [bugfix] agent createindex operation's time.Ticker purges too slow & buffer overflow due to the unnecessary error wrapping (#1343) -- [bugfix] change kvsdb and vqueue check order for Exists operation (#1341) -- update go module dependencies (#1336) -- bugfix nil pointer panic in agent's MultiUpsert operation (#1335) -- [bugfix] agent.GetObject API returns old indexed vector problem instead of vqueue's new data (#1333) -- add timestamp handler for agent timestamp controlled update (#1324) -- fix: :bug: Fix typo (#1330) -- remove owner and description info from resource info rich error for each grpc handler (#1327) -- Update documents: configurations (#1289 +# Release Vald v1.2.0 + +## Changes: + +- fix build failure on arm cpu due to the xxh3 dependency version (#1368) +- Add core algorithm ngt test (#1364) +- add mote accurate directory detection logic for removing (#1366) +- remove meta backup compressor from charts (#1334) +- update go module version (#1363) +- Update architecture overview (#1304) +- Improve internal package tests (#1227) +- fix bug of bulkinsert when error occurs and refactor error message (#1361) +- change initial-index-directory removal logic (#1359) +- ci: :construction_worker: Add gnupg to ci-container (#1362) +- ci: :construction_worker: add condition to trigger importing gpg key (#1360) +- fix: :bug: Fix mount paths when using persistent volume claim template (#1358) +- ci: :construction_worker: Add Upsert operation tests (#1347) +- config: :gear: Use GPG key for signing commits (#1351) +- add time validation for vqueue (#1352) +- chore-deps: :arrow_up: Upgrade tools (#1355) +- comment out backup/meta/compressor build command in Makefile (#1346) +- remove: :heavy_minus_sign: Remove backup, meta components from CI (#1331) +- add line trace logging when log mode is glg and level is debug (#1348) +- update go version to 1.16.6 and update go module dependencies (#1345) +- [bugfix] agent createindex operation's time.Ticker purges too slow & buffer overflow due to the unnecessary error wrapping (#1343) +- [bugfix] change kvsdb and vqueue check order for Exists operation (#1341) +- update go module dependencies (#1336) +- bugfix nil pointer panic in agent's MultiUpsert operation (#1335) +- [bugfix] agent.GetObject API returns old indexed vector problem instead of vqueue's new data (#1333) +- add timestamp handler for agent timestamp controlled update (#1324) +- fix: :bug: Fix typo (#1330) +- remove owner and description info from resource info rich error for each grpc handler (#1327) +- Update documents: configurations (#1289 ## v1.1.2 @@ -1853,34 +1911,35 @@ ### Documents + - [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) ### Changes -- bugfix remove api return wrong error of non exsiting replicas (#1318) -- update go modules and update go version to 1.16.5 from 1.16.4 (#1306) -- Implement test for internal/core/alogrithm/ngt/option and refactor (#1251) -- fix build error due to e2e benchmark invalid creating new client (#1221) -- bugfix correct error backoff handling for lb gateway (#1309) -- Apply ruleguard fixes (#1302) -- Add ruleguard rules (#1301) -- bugfix add feature vector duplication checking for LB-GW Upsert operation. (#1303) -- fix fails race condition test (#1299) -- Update dashboards, add operator dashboard and several panels (#1280) -- Add composite actions for E2E tests (#1257) -- add save index wait duration to index-manager for multiple agent index upload delay (#1292) -- Bugfix index count problem of ngt (#1288) -- fix example/helm/values.yaml (#1290) -- Fix time condition of agent & lb gateway (#1285) -- Use gofumpt for format workflow (#1281) -- [bugfix] kvsdb: do not increment the counter if key exists (#1282) -- Revert ":art: Use gofumpt as a default formatter (#1278)" (#1279) -- :art: Use gofumpt as a default formatter (#1278) -- :pencil: fix some wrongs (#1274) -- Refactor E2E tests: split operations into a new package (#1220) -- :bug: Fix the chart: agent-sidecar initContainer mode (#1271) +- bugfix remove api return wrong error of non exsiting replicas (#1318) +- update go modules and update go version to 1.16.5 from 1.16.4 (#1306) +- Implement test for internal/core/alogrithm/ngt/option and refactor (#1251) +- fix build error due to e2e benchmark invalid creating new client (#1221) +- bugfix correct error backoff handling for lb gateway (#1309) +- Apply ruleguard fixes (#1302) +- Add ruleguard rules (#1301) +- bugfix add feature vector duplication checking for LB-GW Upsert operation. (#1303) +- fix fails race condition test (#1299) +- Update dashboards, add operator dashboard and several panels (#1280) +- Add composite actions for E2E tests (#1257) +- add save index wait duration to index-manager for multiple agent index upload delay (#1292) +- Bugfix index count problem of ngt (#1288) +- fix example/helm/values.yaml (#1290) +- Fix time condition of agent & lb gateway (#1285) +- Use gofumpt for format workflow (#1281) +- [bugfix] kvsdb: do not increment the counter if key exists (#1282) +- Revert ":art: Use gofumpt as a default formatter (#1278)" (#1279) +- :art: Use gofumpt as a default formatter (#1278) +- :pencil: fix some wrongs (#1274) +- Refactor E2E tests: split operations into a new package (#1220) +- :bug: Fix the chart: agent-sidecar initContainer mode (#1271) ## v1.1.1 @@ -1967,11 +2026,13 @@ ### Documents + - [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) ### Changes + - [patch] release Vald v1.1.1 ([#1268](https://github.com/vdaas/vald/pull/1268)) - fix copy CI error ([#1269](https://github.com/vdaas/vald/pull/1269)) - bugfix nil internal/net/grpc.Client.Reconnect nil pointer fix ([#1270](https://github.com/vdaas/vald/pull/1270)) @@ -1994,7 +2055,6 @@ - :robot: Automatically update k8s manifests ([#1248](https://github.com/vdaas/vald/pull/1248)) - Fix path to the yq binary ([#1247](https://github.com/vdaas/vald/pull/1247)) - ## v1.1.0 ### Docker images @@ -2080,106 +2140,113 @@ ### Documents + - [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) ### Changes -#### Feature -- add correct grpc status and error handling (#1224) -- Add Cloud Storage mode of Agent Sidecar. (#519) -- Add general info metrics package / Add NGT info metrics (#1195) -- improve internal/info implementation (#1177) -- Add saving flag to index.info payload (#1200) -- Fix mysql and cassandra schema definitions in initialize jobs (#1186) -- Remove values-xxx.yaml from Helm packages (#1107) -- Feature/internal net/use netaddr (#1154) -- Add Nop Logger for empty logger message (#1158) -- Remove arm64 build of filter-ingress-tf (#1153) -- add tensorflow filter (#951) -- Add OpenAPIv3 schema to CRDs (#1068) -- PR for review all logging statements (#1052) - -#### Bugfix -- bugfix gateway search result merging process (#1238) -- remove nil check in Error() method in internal/errors (#1185) -- Bug fix of parallel test and goleak (#1231) -- :rotating_light: Fix linting errors (#1179) -- Fix mutex deadlock when calling error occurred (#1225) -- fix nil pointer panic when err is nil in Is() (#1216) -- Fix typo & missed schema definition (#1156) -- :lock: Fix validation about zip slip (#1150) -- :lock: Fix security issue: Add validation about path of extracted file (#1145) -- fix: nil pointer bug when config is nil and refactor variable name (#1139) -- :bug: Fix gateway service selectors in Helm chart (#1109) -- Bugfix correct error handling for agent apis (#1144) - -#### Document -- separate tutorials into each document and add images (#1230) -- Update Tutotial/Get-Started (#1203) -- Update unit-test-guideline.md (#1213) -- create docs/user-guides/sdks (#1182) -- Fix typo in README. (#1163) - - -#### CI/CD -- Upgrade to GitHub-native Dependabot (#1211) -- Use kubectl create/replace for upgrading CRDs (#1199) -- :wrench: Fix scylla deploy task (#1159) - -#### Test Code -- Add config agent core ngt test (#1219) -- implement pkg/agent/core/ngt/router test & refactor router implementation (#1214) -- Implement pkg/agent/core/ngt/handler/grpc/option test (#1215) -- refactor config error handling (#1190) -- Implement pkg/agent/core/ngt/router/option test (#1206) -- Implement safety bench code (#1171) -- create internal/config/redis test (#1147) -- Implement internal/config/transport test (#1172) -- Add internal/config/sidecar test (#1173) -- Add benchmark for internal/timeutil/time.go (#1086) -- Add internal/config/observability unit test (#1155) -- Add test for internal/config/mysql (#1151) -- create internal/config/cassandra test (#1117) -- create test for internal/config/server (#1175) -- Add internal/config/lb test (#1134) -- create internal/config/net test (#1140) -- :white_check_mark: create internal/config/meta test (#1133) -- Add internal/config/index test (#1129) -- :white_check_mark: create internal/config/backup test (#1132) -- delete internal/config/debug file (#1124) -- create internal/config/grpc test (#1130) -- Add internal/config/discoverer test (#1122) -- Add internal/config/filter.go test (#1125) -- create internal/config/gateway test (#1128) -- Implement internal/info/info.go benchmark (#1093) -- Add internal/config/client.go test (#1121) -- Implement internal/timeutil/location/loc.go benchmark test (#1091) -- :white_check_mark: remove unused variable from mysql test (#1120) -- feat: add blob test and comment (#1114) -- create bench code for internal/rand (#1089) -- Add test internal/config/compress.go (#1097) -- create internal/config/backoff test (#1104) -- change params for passing test of internal/backoff (#1108) -- remove unnecessary tests and update test (#1061) -- add internal backoff test (#1085) -- Add internal/core/algorithm/ngt/util.go test (#1066) -- Fix hack/tools/metrics failed builds (#1094) -- make timeouts for e2e and chaos tests longer (#1092) - -#### Dependencies -- update go version to 1.16.4 (#1239) -- :arrow_up: Upgrade helm, valdcli, kubelinter and osdk (#1181) -- update codecov version for vulnerability (#1207) - -#### Others -- update go modules (#1242) -- [ImgBot] Optimize images (#1241) -- Update license headers / Format codes (#1212) -- remove ngt version in filter-ingress-tensorflow (#1157) -- remove license from bot config json (#1164) -- improve internal/timeutil/location implementation (#1176) +#### Feature + +- add correct grpc status and error handling (#1224) +- Add Cloud Storage mode of Agent Sidecar. (#519) +- Add general info metrics package / Add NGT info metrics (#1195) +- improve internal/info implementation (#1177) +- Add saving flag to index.info payload (#1200) +- Fix mysql and cassandra schema definitions in initialize jobs (#1186) +- Remove values-xxx.yaml from Helm packages (#1107) +- Feature/internal net/use netaddr (#1154) +- Add Nop Logger for empty logger message (#1158) +- Remove arm64 build of filter-ingress-tf (#1153) +- add tensorflow filter (#951) +- Add OpenAPIv3 schema to CRDs (#1068) +- PR for review all logging statements (#1052) + +#### Bugfix + +- bugfix gateway search result merging process (#1238) +- remove nil check in Error() method in internal/errors (#1185) +- Bug fix of parallel test and goleak (#1231) +- :rotating_light: Fix linting errors (#1179) +- Fix mutex deadlock when calling error occurred (#1225) +- fix nil pointer panic when err is nil in Is() (#1216) +- Fix typo & missed schema definition (#1156) +- :lock: Fix validation about zip slip (#1150) +- :lock: Fix security issue: Add validation about path of extracted file (#1145) +- fix: nil pointer bug when config is nil and refactor variable name (#1139) +- :bug: Fix gateway service selectors in Helm chart (#1109) +- Bugfix correct error handling for agent apis (#1144) + +#### Document + +- separate tutorials into each document and add images (#1230) +- Update Tutotial/Get-Started (#1203) +- Update unit-test-guideline.md (#1213) +- create docs/user-guides/sdks (#1182) +- Fix typo in README. (#1163) + +#### CI/CD + +- Upgrade to GitHub-native Dependabot (#1211) +- Use kubectl create/replace for upgrading CRDs (#1199) +- :wrench: Fix scylla deploy task (#1159) + +#### Test Code + +- Add config agent core ngt test (#1219) +- implement pkg/agent/core/ngt/router test & refactor router implementation (#1214) +- Implement pkg/agent/core/ngt/handler/grpc/option test (#1215) +- refactor config error handling (#1190) +- Implement pkg/agent/core/ngt/router/option test (#1206) +- Implement safety bench code (#1171) +- create internal/config/redis test (#1147) +- Implement internal/config/transport test (#1172) +- Add internal/config/sidecar test (#1173) +- Add benchmark for internal/timeutil/time.go (#1086) +- Add internal/config/observability unit test (#1155) +- Add test for internal/config/mysql (#1151) +- create internal/config/cassandra test (#1117) +- create test for internal/config/server (#1175) +- Add internal/config/lb test (#1134) +- create internal/config/net test (#1140) +- :white_check_mark: create internal/config/meta test (#1133) +- Add internal/config/index test (#1129) +- :white_check_mark: create internal/config/backup test (#1132) +- delete internal/config/debug file (#1124) +- create internal/config/grpc test (#1130) +- Add internal/config/discoverer test (#1122) +- Add internal/config/filter.go test (#1125) +- create internal/config/gateway test (#1128) +- Implement internal/info/info.go benchmark (#1093) +- Add internal/config/client.go test (#1121) +- Implement internal/timeutil/location/loc.go benchmark test (#1091) +- :white_check_mark: remove unused variable from mysql test (#1120) +- feat: add blob test and comment (#1114) +- create bench code for internal/rand (#1089) +- Add test internal/config/compress.go (#1097) +- create internal/config/backoff test (#1104) +- change params for passing test of internal/backoff (#1108) +- remove unnecessary tests and update test (#1061) +- add internal backoff test (#1085) +- Add internal/core/algorithm/ngt/util.go test (#1066) +- Fix hack/tools/metrics failed builds (#1094) +- make timeouts for e2e and chaos tests longer (#1092) + +#### Dependencies + +- update go version to 1.16.4 (#1239) +- :arrow_up: Upgrade helm, valdcli, kubelinter and osdk (#1181) +- update codecov version for vulnerability (#1207) + +#### Others + +- update go modules (#1242) +- [ImgBot] Optimize images (#1241) +- Update license headers / Format codes (#1212) +- remove ngt version in filter-ingress-tensorflow (#1157) +- remove license from bot config json (#1164) +- improve internal/timeutil/location implementation (#1176) ## v1.0.4 @@ -2266,21 +2333,22 @@ ### Documents + - [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) ### Changes -- Fix error handling of SearchByID API in lb gateway ([#1084](https://github.com/vdaas/vald/pull/1084)) -- Update Agent dashboard ([#1069](https://github.com/vdaas/vald/pull/1069)) -- Revise gRPC error statuses and details in meta (Redis/Cassandra) ([#1013](https://github.com/vdaas/vald/pull/1013)) -- add remove sample code for tutorial ([#1053](https://github.com/vdaas/vald/pull/1053)) -- add grpc reflection ([#1064](https://github.com/vdaas/vald/pull/1064)) -- remove vcache for vald agent due to vcache delete timing control failure and time ordered concurrent vector queue called vqueue ([#1028](https://github.com/vdaas/vald/pull/1028)) -- refactor discoverer client ([#1056](https://github.com/vdaas/vald/pull/1056)) -- bugfix nil pointer no target discovered ([#1055](https://github.com/vdaas/vald/pull/1055)) -- Upgrade Operator SDK version to v1.4.2 ([#1038](https://github.com/vdaas/vald/pull/1038)) +- Fix error handling of SearchByID API in lb gateway ([#1084](https://github.com/vdaas/vald/pull/1084)) +- Update Agent dashboard ([#1069](https://github.com/vdaas/vald/pull/1069)) +- Revise gRPC error statuses and details in meta (Redis/Cassandra) ([#1013](https://github.com/vdaas/vald/pull/1013)) +- add remove sample code for tutorial ([#1053](https://github.com/vdaas/vald/pull/1053)) +- add grpc reflection ([#1064](https://github.com/vdaas/vald/pull/1064)) +- remove vcache for vald agent due to vcache delete timing control failure and time ordered concurrent vector queue called vqueue ([#1028](https://github.com/vdaas/vald/pull/1028)) +- refactor discoverer client ([#1056](https://github.com/vdaas/vald/pull/1056)) +- bugfix nil pointer no target discovered ([#1055](https://github.com/vdaas/vald/pull/1055)) +- Upgrade Operator SDK version to v1.4.2 ([#1038](https://github.com/vdaas/vald/pull/1038)) ## v1.0.3 @@ -2367,6 +2435,7 @@ ### Documents + - [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) @@ -2384,7 +2453,6 @@ - Fix invalid changelogs / update changelog workflows ([#1002](https://github.com/vdaas/vald/pull/1002)) - Add test case for internal/errors/observability.go ([#993](https://github.com/vdaas/vald/pull/993)) - ## v1.0.2 ### Docker images @@ -2474,11 +2542,13 @@ ### Documents + - [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) ### Changes + - v1.0.2 Release ([#998](https://github.com/vdaas/vald/pull/998)) - :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE ([#997](https://github.com/vdaas/vald/pull/997)) - Bug fix on StreamGetObject API and DNS cache expiration / refactor net connection ([#986](https://github.com/vdaas/vald/pull/986)) @@ -2492,7 +2562,6 @@ - update chatops permission ([#990](https://github.com/vdaas/vald/pull/990)) - :robot: Automatically update k8s manifests ([#981](https://github.com/vdaas/vald/pull/981)) - ## v1.0.1 ### Docker images @@ -2582,18 +2651,19 @@ ### Documents + - [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) ### Changes + - bugfix lb-gateway's Insert rpc nil pointer panic ([#980](https://github.com/vdaas/vald/pull/980)) - Implement internal/errors/worker test ([#952](https://github.com/vdaas/vald/pull/952)) - create test for internal/errors/errors.go ([#929](https://github.com/vdaas/vald/pull/929)) - Add test case for internal/errors/net.go ([#969](https://github.com/vdaas/vald/pull/969)) - :robot: Automatically update k8s manifests ([#975](https://github.com/vdaas/vald/pull/975)) - ## v1.0.0 ### Docker images @@ -2683,11 +2753,13 @@ ### Documents + - [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) ### Changes + - v1.0.0 Release ([#974](https://github.com/vdaas/vald/pull/974)) - Bug fix for gateway ([#963](https://github.com/vdaas/vald/pull/963)) - Add test case for internal/errors/ngt.go ([#936](https://github.com/vdaas/vald/pull/936)) @@ -2731,7 +2803,6 @@ - Vald V1 New Design APIs ([#826](https://github.com/vdaas/vald/pull/826)) - :robot: Automatically update k8s manifests ([#914](https://github.com/vdaas/vald/pull/914)) - ## v0.0.66 ### Docker images @@ -2821,11 +2892,13 @@ ### Documents + - [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) ### Changes + - bugfix: do not create metadata file when create/append flag is not set for the agent/agent-sidecar ([#904](https://github.com/vdaas/vald/pull/904)) - :robot: Update license headers / Format Go codes and YAML files ([#913](https://github.com/vdaas/vald/pull/913)) - :green_heart: Add formatter for main branch ([#911](https://github.com/vdaas/vald/pull/911)) @@ -2834,7 +2907,6 @@ - Add test case for internal/errors/grpc.go ([#903](https://github.com/vdaas/vald/pull/903)) - :robot: Automatically update k8s manifests ([#906](https://github.com/vdaas/vald/pull/906)) - ## v0.0.65 ### Docker images @@ -2924,16 +2996,17 @@ ### Documents + - [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) ### Changes + - Happy new year ([#905](https://github.com/vdaas/vald/pull/905)) - :white_check_mark: Add test case for internal/errors/file.go ([#893](https://github.com/vdaas/vald/pull/893)) - :robot: Automatically update k8s manifests ([#902](https://github.com/vdaas/vald/pull/902)) - ## v0.0.64 ### Docker images @@ -3023,11 +3096,13 @@ ### Documents + - [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) ### Changes + - :wrench: Rename PriorityClass names to contain namespace ([#901](https://github.com/vdaas/vald/pull/901)) - :bug: Fix bug on updating status of VR & VHOR resources ([#892](https://github.com/vdaas/vald/pull/892)) - :white_check_mark: Implement internal/errors/blob test ([#888](https://github.com/vdaas/vald/pull/888)) @@ -3037,7 +3112,6 @@ - :white_check_mark: Add test for internal/errors/compressor.go ([#870](https://github.com/vdaas/vald/pull/870)) - :robot: Automatically update k8s manifests ([#887](https://github.com/vdaas/vald/pull/887)) - ## v0.0.63 ### Docker images @@ -3127,11 +3201,13 @@ ### Documents + - [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) ### Changes + - Remove go mod tidy from base image / Add valid token to semver job ([#886](https://github.com/vdaas/vald/pull/886)) - bugfix agent duplicated data update execution ([#885](https://github.com/vdaas/vald/pull/885)) - :package: Build schemas when building helm-operator image ([#879](https://github.com/vdaas/vald/pull/879)) @@ -3151,7 +3227,6 @@ - :pencil: Fix coding guideline about constructor due to mock implementation ([#792](https://github.com/vdaas/vald/pull/792)) - :robot: Automatically update k8s manifests ([#781](https://github.com/vdaas/vald/pull/781)) - ## v0.0.62 ### Docker images @@ -3241,16 +3316,17 @@ ### Documents + - [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) ### Changes + - add 3 new distance type support for agent-ngt ([#780](https://github.com/vdaas/vald/pull/780)) - upgrade KinD, Helm, valdcli, telepresence, tensorlfow, operator-sdk, helm-docs ([#776](https://github.com/vdaas/vald/pull/776)) - :robot: Automatically update k8s manifests ([#774](https://github.com/vdaas/vald/pull/774)) - ## v0.0.61 ### Docker images @@ -3340,15 +3416,16 @@ ### Documents + - [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) ### Changes + - fix search result sorting codes ([#772](https://github.com/vdaas/vald/pull/772)) - :robot: Automatically update k8s manifests ([#771](https://github.com/vdaas/vald/pull/771)) - ## v0.0.60 ### Docker images @@ -3438,68 +3515,72 @@ ### Documents + - [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) ### Changes + - Fix fails test for s3 reader ([#770](https://github.com/vdaas/vald/pull/770)) - CI: Make docker builds fast again ([#756](https://github.com/vdaas/vald/pull/756)) - :robot: Automatically update k8s manifests ([#769](https://github.com/vdaas/vald/pull/769)) - ## v0.0.59 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.59` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.59` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.59` -gateway | `docker pull vdaas/vald-gateway:v0.0.59` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.59` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.59` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.59` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.59` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.59` -index manager | `docker pull vdaas/vald-manager-index:v0.0.59` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.59` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.59` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.59` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.59` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.59` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.59` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.59` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.59` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.59` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.59` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.59` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.59` | ### Documents + - [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) ### Changes + - bugfix gateway index out of bounds ([#768](https://github.com/vdaas/vald/pull/768)) - :robot: Automatically update k8s manifests ([#766](https://github.com/vdaas/vald/pull/766)) - ## v0.0.58 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.58` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.58` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.58` -gateway | `docker pull vdaas/vald-gateway:v0.0.58` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.58` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.58` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.58` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.58` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.58` -index manager | `docker pull vdaas/vald-manager-index:v0.0.58` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.58` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.58` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.58` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.58` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.58` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.58` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.58` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.58` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.58` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.58` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.58` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.58` | ### Documents + - [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) ### Changes + - change gateway vald's mutex lock ([#765](https://github.com/vdaas/vald/pull/765)) - patch add more effective Close function for internal/core ([#764](https://github.com/vdaas/vald/pull/764)) - :white_check_mark: Fix mysql test failure ([#750](https://github.com/vdaas/vald/pull/750)) @@ -3514,31 +3595,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.58` - :fire: remove dependencies to gql proto ([#731](https://github.com/vdaas/vald/pull/731)) - :robot: Automatically update k8s manifests ([#730](https://github.com/vdaas/vald/pull/730)) - ## v0.0.57 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.57` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.57` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.57` -gateway | `docker pull vdaas/vald-gateway:v0.0.57` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.57` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.57` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.57` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.57` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.57` -index manager | `docker pull vdaas/vald-manager-index:v0.0.57` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.57` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.57` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.57` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.57` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.57` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.57` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.57` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.57` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.57` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.57` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.57` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.57` | ### Documents + - [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) ### Changes + - fix duplicated search result ([#729](https://github.com/vdaas/vald/pull/729)) - :recycle: enable to inject only agent-sidecar on initContainer mode without enabling sidecar mode ([#726](https://github.com/vdaas/vald/pull/726)) - :sparkles: implement billion scale data ([#612](https://github.com/vdaas/vald/pull/612)) @@ -3547,31 +3629,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.57` - CI-container: upgrade dependencies of & remove workdir contents ([#711](https://github.com/vdaas/vald/pull/711)) - :robot: Automatically update k8s manifests ([#708](https://github.com/vdaas/vald/pull/708)) - ## v0.0.56 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.56` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.56` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.56` -gateway | `docker pull vdaas/vald-gateway:v0.0.56` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.56` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.56` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.56` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.56` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.56` -index manager | `docker pull vdaas/vald-manager-index:v0.0.56` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.56` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.56` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.56` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.56` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.56` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.56` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.56` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.56` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.56` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.56` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.56` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.56` | ### Documents + - [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) ### Changes + - add C.free & delete ivc before core.BulkInsert C' function executing for reducing memory usage ([#701](https://github.com/vdaas/vald/pull/701)) - Add cassandra option test ([#644](https://github.com/vdaas/vald/pull/644)) - :memo: build single artifact from pbdocs task ([#699](https://github.com/vdaas/vald/pull/699)) @@ -3584,147 +3667,152 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.56` - :sparkles: use internal client ([#618](https://github.com/vdaas/vald/pull/618)) - :robot: Automatically update k8s manifests ([#684](https://github.com/vdaas/vald/pull/684)) - ## v0.0.55 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.55` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.55` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.55` -gateway | `docker pull vdaas/vald-gateway:v0.0.55` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.55` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.55` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.55` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.55` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.55` -index manager | `docker pull vdaas/vald-manager-index:v0.0.55` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.55` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.55` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.55` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.55` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.55` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.55` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.55` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.55` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.55` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.55` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.55` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.55` | ### Documents + - [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) ### Changes + - pass CFLAGS, CXXFLAGS to NGT build command ([#683](https://github.com/vdaas/vald/pull/683)) - :robot: Automatically update k8s manifests ([#681](https://github.com/vdaas/vald/pull/681)) - ## v0.0.54 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.54` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.54` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.54` -gateway | `docker pull vdaas/vald-gateway:v0.0.54` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.54` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.54` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.54` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.54` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.54` -index manager | `docker pull vdaas/vald-manager-index:v0.0.54` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.54` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.54` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.54` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.54` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.54` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.54` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.54` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.54` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.54` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.54` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.54` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.54` | ### Documents + - [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) ### Changes + - bugfix error assertion ([#680](https://github.com/vdaas/vald/pull/680)) - :robot: Automatically update k8s manifests ([#679](https://github.com/vdaas/vald/pull/679)) - ## v0.0.53 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.53` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.53` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.53` -gateway | `docker pull vdaas/vald-gateway:v0.0.53` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.53` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.53` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.53` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.53` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.53` -index manager | `docker pull vdaas/vald-manager-index:v0.0.53` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.53` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.53` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.53` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.53` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.53` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.53` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.53` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.53` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.53` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.53` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.53` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.53` | ### Documents + - [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) ### Changes + - remove cockroachdb/errors ([#677](https://github.com/vdaas/vald/pull/677)) - :white_check_mark: Add test case for storage/blob/s3/writer/option ([#656](https://github.com/vdaas/vald/pull/656)) - :white_check_mark: fix: failing tset ([#671](https://github.com/vdaas/vald/pull/671)) - :bug: fix & upgrade manifests to operator-sdk v1.0.0 compatible ([#667](https://github.com/vdaas/vald/pull/667)) - :robot: Automatically update k8s manifests ([#666](https://github.com/vdaas/vald/pull/666)) - ## v0.0.52 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.52` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.52` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.52` -gateway | `docker pull vdaas/vald-gateway:v0.0.52` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.52` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.52` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.52` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.52` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.52` -index manager | `docker pull vdaas/vald-manager-index:v0.0.52` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.52` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.52` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.52` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.52` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.52` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.52` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.52` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.52` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.52` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.52` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.52` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.52` | ### Documents + - [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) ### Changes + - add build stage for operator-sdk docker v1.0.0 permission changes ([#665](https://github.com/vdaas/vald/pull/665)) - :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE ([#663](https://github.com/vdaas/vald/pull/663)) - :robot: Automatically update k8s manifests ([#664](https://github.com/vdaas/vald/pull/664)) - ## v0.0.51 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.51` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.51` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.51` -gateway | `docker pull vdaas/vald-gateway:v0.0.51` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.51` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.51` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.51` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.51` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.51` -index manager | `docker pull vdaas/vald-manager-index:v0.0.51` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.51` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.51` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.51` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.51` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.51` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.51` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.51` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.51` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.51` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.51` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.51` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.51` | ### Documents + - [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) ### Changes + - update deps ([#660](https://github.com/vdaas/vald/pull/660)) - add metrics for indexer and sidecar ([#642](https://github.com/vdaas/vald/pull/642)) - :pencil2: fix indents in helm chart of vald-helm-operator ([#658](https://github.com/vdaas/vald/pull/658)) @@ -3766,32 +3854,33 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.51` - :pencil: Documentation/performance/loadtest ([#610](https://github.com/vdaas/vald/pull/610)) - :robot: Automatically update k8s manifests ([#609](https://github.com/vdaas/vald/pull/609)) - ## v0.0.50 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.50` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.50` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.50` -gateway | `docker pull vdaas/vald-gateway:v0.0.50` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.50` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.50` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.50` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.50` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.50` -index manager | `docker pull vdaas/vald-manager-index:v0.0.50` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.50` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.50` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.50` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.50` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.50` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.50` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.50` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.50` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.50` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.50` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.50` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.50` | ### Documents + - [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) ### Changes -- Add warn logging messages to agent-sidecar & ignore io.EOF error when reading metadata.json ([#608](https://github.com/vdaas/vald/pull/608)) + +- Add warn logging messages to agent-sidecar & ignore io.EOF error when reading metadata.json ([#608](https://github.com/vdaas/vald/pull/608)) - Add DB metrics: Cassandra ([#587](https://github.com/vdaas/vald/pull/587)) - :recycle: Improve Singleflight performance ([#580](https://github.com/vdaas/vald/pull/580)) - [ImgBot] Optimize images ([#607](https://github.com/vdaas/vald/pull/607)) @@ -3802,118 +3891,122 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.50` - :green_heart: Add reviewdog - hadolint ([#603](https://github.com/vdaas/vald/pull/603)) - :robot: Automatically update k8s manifests ([#599](https://github.com/vdaas/vald/pull/599)) - ## v0.0.49 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.49` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.49` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.49` -gateway | `docker pull vdaas/vald-gateway:v0.0.49` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.49` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.49` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.49` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.49` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.49` -index manager | `docker pull vdaas/vald-manager-index:v0.0.49` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.49` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.49` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.49` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.49` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.49` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.49` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.49` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.49` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.49` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.49` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.49` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.49` | ### Documents + - [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) ### Changes + - :bug: fix agent sidecar behavior ([#598](https://github.com/vdaas/vald/pull/598)) - :robot: Automatically update k8s manifests ([#597](https://github.com/vdaas/vald/pull/597)) - ## v0.0.48 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.48` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.48` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.48` -gateway | `docker pull vdaas/vald-gateway:v0.0.48` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.48` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.48` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.48` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.48` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.48` -index manager | `docker pull vdaas/vald-manager-index:v0.0.48` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.48` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.48` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.48` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.48` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.48` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.48` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.48` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.48` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.48` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.48` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.48` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.48` | ### Documents + - [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) ### Changes + - :bug: fix behavior when index path is empty ([#596](https://github.com/vdaas/vald/pull/596)) - :white_check_mark: add internal/net/http/transport/option test ([#594](https://github.com/vdaas/vald/pull/594)) - tensorflow savedmodel warmup ([#539](https://github.com/vdaas/vald/pull/539)) - :robot: Automatically update k8s manifests ([#592](https://github.com/vdaas/vald/pull/592)) - ## v0.0.47 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.47` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.47` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.47` -gateway | `docker pull vdaas/vald-gateway:v0.0.47` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.47` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.47` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.47` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.47` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.47` -index manager | `docker pull vdaas/vald-manager-index:v0.0.47` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.47` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.47` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.47` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.47` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.47` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.47` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.47` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.47` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.47` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.47` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.47` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.47` | ### Documents + - [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) ### Changes + - [agent-NGT, sidecar] Improve S3 backup/recover behavior ([#556](https://github.com/vdaas/vald/pull/556)) - :white_check_mark: add internal/cache/option test ([#586](https://github.com/vdaas/vald/pull/586)) - :robot: Automatically update k8s manifests ([#588](https://github.com/vdaas/vald/pull/588)) - ## v0.0.46 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.46` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.46` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.46` -gateway | `docker pull vdaas/vald-gateway:v0.0.46` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.46` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.46` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.46` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.46` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.46` -index manager | `docker pull vdaas/vald-manager-index:v0.0.46` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.46` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.46` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.46` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.46` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.46` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.46` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.46` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.46` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.46` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.46` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.46` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.46` | ### Documents + - [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) ### Changes + - Test/internal/tcp ([#501](https://github.com/vdaas/vald/pull/501)) - :white_check_mark: add internal/cache/gache test ([#583](https://github.com/vdaas/vald/pull/583)) - :white_check_mark: add cache test ([#576](https://github.com/vdaas/vald/pull/576)) @@ -3925,31 +4018,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.46` - :robot: Automatically update k8s manifests ([#571](https://github.com/vdaas/vald/pull/571)) - :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE ([#570](https://github.com/vdaas/vald/pull/570)) - ## v0.0.45 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.45` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.45` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.45` -gateway | `docker pull vdaas/vald-gateway:v0.0.45` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.45` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.45` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.45` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.45` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.45` -index manager | `docker pull vdaas/vald-manager-index:v0.0.45` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.45` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.45` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.45` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.45` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.45` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.45` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.45` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.45` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.45` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.45` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.45` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.45` | ### Documents + - [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) ### Changes + - bugfix gateway & internal/net/grpc ([#569](https://github.com/vdaas/vald/pull/569)) - fix update-k8s workflow & update sample manifests ([#567](https://github.com/vdaas/vald/pull/567)) - :white_check_mark: Add test for `internal/config/mysql.go` ([#563](https://github.com/vdaas/vald/pull/563)) @@ -3969,31 +4063,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.45` - :bug: Fix condition check of chatops ([#544](https://github.com/vdaas/vald/pull/544)) - exclude hack codes ([#543](https://github.com/vdaas/vald/pull/543)) - ## v0.0.44 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.44` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.44` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.44` -gateway | `docker pull vdaas/vald-gateway:v0.0.44` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.44` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.44` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.44` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.44` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.44` -index manager | `docker pull vdaas/vald-manager-index:v0.0.44` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.44` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.44` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.44` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.44` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.44` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.44` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.44` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.44` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.44` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.44` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.44` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.44` | ### Documents + - [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) ### Changes + - use Len and InsertVCacheLen method for IndexInfo / add mutex for (Create|Save)Index ([#536](https://github.com/vdaas/vald/pull/536)) - documentation: tutorial/agent-on-docker ([#516](https://github.com/vdaas/vald/pull/516)) - Revise log messages along with the coding guideline ([#504](https://github.com/vdaas/vald/pull/504)) @@ -4007,63 +4102,65 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.44` - Add `internal/runner` test ([#505](https://github.com/vdaas/vald/pull/505)) - Added test case for `internal/unit` pacakge ([#515](https://github.com/vdaas/vald/pull/515)) - ## v0.0.43 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.43` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.43` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.43` -gateway | `docker pull vdaas/vald-gateway:v0.0.43` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.43` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.43` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.43` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.43` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.43` -index manager | `docker pull vdaas/vald-manager-index:v0.0.43` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.43` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.43` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.43` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.43` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.43` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.43` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.43` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.43` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.43` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.43` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.43` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.43` | ### Documents + - [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) ### Changes + - Revise S3 reader/writer: compatible with IBM Cloud Object Storage ([#509](https://github.com/vdaas/vald/pull/509)) - :bug: Close [#502](https://github.com/vdaas/vald/pull/502) / Fix roundtrip error handling (#508) - Feature/drawio ([#500](https://github.com/vdaas/vald/pull/500)) -- Added test case for `internal/errorgroup` ([#494](https://github.com/vdaas/vald/pull/494)) +- Added test case for `internal/errorgroup` ([#494](https://github.com/vdaas/vald/pull/494)) - Update Helm Chart info ([#496](https://github.com/vdaas/vald/pull/496)) - Revise triggers of workflow run & Fix reading changelogs from PR comments ([#495](https://github.com/vdaas/vald/pull/495)) - ## v0.0.42 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.42` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.42` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.42` -gateway | `docker pull vdaas/vald-gateway:v0.0.42` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.42` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.42` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.42` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.42` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.42` -index manager | `docker pull vdaas/vald-manager-index:v0.0.42` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.42` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.42` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.42` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.42` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.42` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.42` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.42` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.42` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.42` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.42` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.42` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.42` | ### Documents + - [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) ### Changes + - ✨ Add Stackdriver Monitoring, Tracing and Profiler support ([#479](https://github.com/vdaas/vald/pull/479)) - :green_heart: Add CodeQL workflow instead of LGTM.com ([#486](https://github.com/vdaas/vald/pull/486)) - Add `internal/params` pacakge test ([#474](https://github.com/vdaas/vald/pull/474)) @@ -4072,31 +4169,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.42` - send a request to GoProxy after a new version is published ([#475](https://github.com/vdaas/vald/pull/475)) - internal/db/storage/blob/s3: remove ctx from struct ([#473](https://github.com/vdaas/vald/pull/473)) - ## v0.0.41 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.41` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.41` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.41` -gateway | `docker pull vdaas/vald-gateway:v0.0.41` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.41` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.41` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.41` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.41` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.41` -index manager | `docker pull vdaas/vald-manager-index:v0.0.41` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.41` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.41` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.41` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.41` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.41` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.41` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.41` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.41` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.41` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.41` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.41` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.41` | ### Documents + - [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) ### Changes + - Refactor agent-sidecar: fix S3 reader & add backoff logic ([#467](https://github.com/vdaas/vald/pull/467)) - :bug: :pencil: fix link ([#471](https://github.com/vdaas/vald/pull/471)) - Fix /changelog command format ([#470](https://github.com/vdaas/vald/pull/470)) @@ -4109,31 +4207,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.41` - [ImgBot] Optimize images ([#461](https://github.com/vdaas/vald/pull/461)) - :art: trim white margin at data flow images ([#459](https://github.com/vdaas/vald/pull/459)) - ## v0.0.40 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.40` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.40` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.40` -gateway | `docker pull vdaas/vald-gateway:v0.0.40` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.40` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.40` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.40` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.40` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.40` -index manager | `docker pull vdaas/vald-manager-index:v0.0.40` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.40` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.40` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.40` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.40` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.40` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.40` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.40` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.40` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.40` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.40` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.40` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.40` | ### Documents + - [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) ### Changes + - Documentation: add concept section to the architecture document ([#438](https://github.com/vdaas/vald/pull/438)) - feat: level pacakge test ([#455](https://github.com/vdaas/vald/pull/455)) - [ImgBot] Optimize images ([#457](https://github.com/vdaas/vald/pull/457)) @@ -4146,31 +4245,32 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.40` - add loadtest job and container ([#449](https://github.com/vdaas/vald/pull/449)) - πŸ› Fix bug on changelog command ([#448](https://github.com/vdaas/vald/pull/448)) - ## v0.0.39 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.39` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.39` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.39` -gateway | `docker pull vdaas/vald-gateway:v0.0.39` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.39` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.39` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.39` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.39` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.39` -index manager | `docker pull vdaas/vald-manager-index:v0.0.39` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.39` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.39` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.39` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.39` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.39` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.39` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.39` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.39` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.39` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.39` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.39` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.39` | ### Documents + - [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) ### Changes + - [patch] fix doc file path ([#444](https://github.com/vdaas/vald/pull/444)) - Add changelog command (ChatOps) ([#447](https://github.com/vdaas/vald/pull/447)) - Fix inconsistent wording ([#442](https://github.com/vdaas/vald/pull/442)) @@ -4178,37 +4278,38 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.39` - [Document] Apply design template to flow diagram ([#441](https://github.com/vdaas/vald/pull/441)) - Document to deploy standalone agent ([#407](https://github.com/vdaas/vald/pull/407)) - implement load tester prototype ([#363](https://github.com/vdaas/vald/pull/363)) -- πŸ› Add gRPC interceptor to recover panic in handlers ([#440](https://github.com/vdaas/vald/pull/440)) +- πŸ› Add gRPC interceptor to recover panic in handlers ([#440](https://github.com/vdaas/vald/pull/440)) - tensorflow test ([#378](https://github.com/vdaas/vald/pull/378)) - :bento: update architecture overview svg to add agent sidecar ([#437](https://github.com/vdaas/vald/pull/437)) - Example program: Add indexing interval description & fix logging message ([#405](https://github.com/vdaas/vald/pull/405)) - :pencil2: Fix typo ([#436](https://github.com/vdaas/vald/pull/436)) - ## v0.0.38 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.38` -agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.38` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.38` -gateway | `docker pull vdaas/vald-gateway:v0.0.38` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.38` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.38` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.38` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.38` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.38` -index manager | `docker pull vdaas/vald-manager-index:v0.0.38` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.38` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.38` | +| agent sidecar | `docker pull vdaas/vald-agent-sidecar:v0.0.38` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.38` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.38` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.38` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.38` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.38` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.38` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.38` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.38` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.38` | ### Documents + - [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) ### Changes + - send PR when K8s manifests are updated ([#435](https://github.com/vdaas/vald/pull/435)) - Implementation of agent-sidecar storage backup logic ([#409](https://github.com/vdaas/vald/pull/409)) - Fix structure of grpc java package ([#431](https://github.com/vdaas/vald/pull/431)) @@ -4230,122 +4331,126 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.38` - Add gen-test command for chatops ([#379](https://github.com/vdaas/vald/pull/379)) - Add internal/db/storage/blob ([#388](https://github.com/vdaas/vald/pull/388)) - ## v0.0.37 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.37` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.37` -gateway | `docker pull vdaas/vald-gateway:v0.0.37` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.37` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.37` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.37` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.37` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.37` -index manager | `docker pull vdaas/vald-manager-index:v0.0.37` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.37` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.37` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.37` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.37` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.37` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.37` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.37` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.37` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.37` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.37` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.37` | ### Documents + - [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) ### Changes + - add agent auto save indexing feature ([#385](https://github.com/vdaas/vald/pull/385)) - :bug: fix ngt `distance_type` ([#384](https://github.com/vdaas/vald/pull/384)) - Add topology spread constraints ([#383](https://github.com/vdaas/vald/pull/383)) - ## v0.0.36 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.36` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.36` -gateway | `docker pull vdaas/vald-gateway:v0.0.36` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.36` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.36` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.36` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.36` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.36` -index manager | `docker pull vdaas/vald-manager-index:v0.0.36` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.36` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.36` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.36` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.36` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.36` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.36` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.36` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.36` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.36` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.36` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.36` | ### Documents + - [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) ### Changes + - update dependencies version ([#381](https://github.com/vdaas/vald/pull/381)) - Fix missing value on compressor health servers ([#377](https://github.com/vdaas/vald/pull/377)) - Fix compressor readiness shutdown_duration / Fix cassandra … ([#376](https://github.com/vdaas/vald/pull/376)) - Bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 ([#375](https://github.com/vdaas/vald/pull/375)) - Fix`internal/log/format` to match the test template ([#369](https://github.com/vdaas/vald/pull/369)) - Fix `internal/log/logger` to match the test template ([#371](https://github.com/vdaas/vald/pull/371)) -- Fix failing tests of `internal/log` and modified to match the test template ([#368](https://github.com/vdaas/vald/pull/368)) +- Fix failing tests of `internal/log` and modified to match the test template ([#368](https://github.com/vdaas/vald/pull/368)) - Add enabled flag to each component in Helm chart ([#372](https://github.com/vdaas/vald/pull/372)) - Add configurations.md ([#356](https://github.com/vdaas/vald/pull/356)) - ## v0.0.35 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.35` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.35` -gateway | `docker pull vdaas/vald-gateway:v0.0.35` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.35` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.35` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.35` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.35` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.35` -index manager | `docker pull vdaas/vald-manager-index:v0.0.35` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.35` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.35` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.35` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.35` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.35` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.35` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.35` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.35` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.35` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.35` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.35` | ### Documents + - [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) ### Changes + - add storage backup option to agent ([#367](https://github.com/vdaas/vald/pull/367)) - Add client-node dispatcher ([#370](https://github.com/vdaas/vald/pull/370)) - Bump github.com/tensorflow/tensorflow ([#364](https://github.com/vdaas/vald/pull/364)) - change fmt.Errorf to errors.Errorf ([#361](https://github.com/vdaas/vald/pull/361)) - add goleak ([#359](https://github.com/vdaas/vald/pull/359)) - ## v0.0.34 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.34` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.34` -gateway | `docker pull vdaas/vald-gateway:v0.0.34` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.34` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.34` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.34` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.34` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.34` -index manager | `docker pull vdaas/vald-manager-index:v0.0.34` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.34` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.34` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.34` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.34` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.34` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.34` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.34` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.34` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.34` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.34` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.34` | ### Documents + - [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) ### Changes + - feature/internal/cassandra/add option ([#358](https://github.com/vdaas/vald/pull/358)) - update helm docs when version is published ([#355](https://github.com/vdaas/vald/pull/355)) - upgrade tools ([#354](https://github.com/vdaas/vald/pull/354)) @@ -4353,114 +4458,118 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.34` - Fix conflicts between formatter and helm template ([#350](https://github.com/vdaas/vald/pull/350)) - Add more options and remove valdhelmoperatorrelease, valdrelease from vald-helm-operator chart ([#334](https://github.com/vdaas/vald/pull/334)) - ## v0.0.33 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.33` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.33` -gateway | `docker pull vdaas/vald-gateway:v0.0.33` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.33` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.33` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.33` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.33` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.33` -index manager | `docker pull vdaas/vald-manager-index:v0.0.33` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.33` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.33` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.33` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.33` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.33` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.33` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.33` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.33` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.33` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.33` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.33` | ### Documents + - [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) ### Changes + - update k8s dependencies ([#349](https://github.com/vdaas/vald/pull/349)) - create missing test files by the our original test template ([#348](https://github.com/vdaas/vald/pull/348)) - create test template for using gotests ([#327](https://github.com/vdaas/vald/pull/327)) - Revise coverage CI settings ([#347](https://github.com/vdaas/vald/pull/347)) - fix tensorflow.go, option.go ([#261](https://github.com/vdaas/vald/pull/261)) - ## v0.0.32 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.32` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.32` -gateway | `docker pull vdaas/vald-gateway:v0.0.32` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.32` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.32` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.32` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.32` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.32` -index manager | `docker pull vdaas/vald-manager-index:v0.0.32` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.32` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.32` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.32` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.32` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.32` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.32` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.32` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.32` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.32` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.32` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.32` | ### Documents + - [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) ### Changes + - bugfix ip discoverer disconnection too slow ([#344](https://github.com/vdaas/vald/pull/344)) - Compressor: backup vectors in queue using PostStop function ([#345](https://github.com/vdaas/vald/pull/345)) - Revise backup/meta Cassandra default values ([#336](https://github.com/vdaas/vald/pull/336)) - ## v0.0.31 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.31` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.31` -gateway | `docker pull vdaas/vald-gateway:v0.0.31` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.31` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.31` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.31` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.31` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.31` -index manager | `docker pull vdaas/vald-manager-index:v0.0.31` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.31` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.31` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.31` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.31` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.31` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.31` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.31` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.31` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.31` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.31` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.31` | ### Documents + - [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) ### Changes -- Resolve busy-loop on worker ([#339](https://github.com/vdaas/vald/pull/339)) +- Resolve busy-loop on worker ([#339](https://github.com/vdaas/vald/pull/339)) ## v0.0.30 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.30` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.30` -gateway | `docker pull vdaas/vald-gateway:v0.0.30` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.30` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.30` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.30` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.30` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.30` -index manager | `docker pull vdaas/vald-manager-index:v0.0.30` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.30` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.30` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.30` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.30` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.30` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.30` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.30` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.30` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.30` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.30` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.30` | ### Documents + - [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) ### Changes + - async compressor - optimized gRPC pool connection - update helm chart API version @@ -4471,30 +4580,31 @@ Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.30` - new internal/net package - coding guideline - ## v0.0.26 ### Docker images -component | docker pull ---------- | ----------- -agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.26` -discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.26` -gateway | `docker pull vdaas/vald-gateway:v0.0.26` -backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.26` -backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.26` -compressor | `docker pull vdaas/vald-manager-compressor:v0.0.26` -meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.26` -meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.26` -index manager | `docker pull vdaas/vald-manager-index:v0.0.26` -Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.26` +| component | docker pull | +| ------------------------ | --------------------------------------------------------- | +| agent NGT | `docker pull vdaas/vald-agent-ngt:v0.0.26` | +| discoverer K8s | `docker pull vdaas/vald-discoverer-k8s:v0.0.26` | +| gateway | `docker pull vdaas/vald-gateway:v0.0.26` | +| backup manager MySQL | `docker pull vdaas/vald-manager-backup-mysql:v0.0.26` | +| backup manager Cassandra | `docker pull vdaas/vald-manager-backup-cassandra:v0.0.26` | +| compressor | `docker pull vdaas/vald-manager-compressor:v0.0.26` | +| meta Redis | `docker pull vdaas/vald-meta-redis:v0.0.26` | +| meta Cassandra | `docker pull vdaas/vald-meta-cassandra:v0.0.26` | +| index manager | `docker pull vdaas/vald-manager-index:v0.0.26` | +| Helm operator | `docker pull vdaas/vald-helm-operator:v0.0.26` | ### Documents + - [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) ### Changes + - added helm operator - added telepresence - improved meta-Cassandra performance diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4d77b4b64f..dc9341be25 100755 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting ## Our Responsibilities diff --git a/apis/docs/v1/docs.md b/apis/docs/v1/docs.md index 4cedbc6796..977e18018e 100644 --- a/apis/docs/v1/docs.md +++ b/apis/docs/v1/docs.md @@ -1,1562 +1,1074 @@ # Protocol Documentation + ## Table of Contents -- [apis/proto/v1/agent/core/agent.proto](#apis_proto_v1_agent_core_agent-proto) - - [Agent](#core-v1-Agent) - -- [apis/proto/v1/agent/sidecar/sidecar.proto](#apis_proto_v1_agent_sidecar_sidecar-proto) - - [Sidecar](#sidecar-v1-Sidecar) - -- [apis/proto/v1/discoverer/discoverer.proto](#apis_proto_v1_discoverer_discoverer-proto) - - [Discoverer](#discoverer-v1-Discoverer) - -- [apis/proto/v1/filter/egress/egress_filter.proto](#apis_proto_v1_filter_egress_egress_filter-proto) - - [Filter](#filter-egress-v1-Filter) - -- [apis/proto/v1/filter/ingress/ingress_filter.proto](#apis_proto_v1_filter_ingress_ingress_filter-proto) - - [Filter](#filter-ingress-v1-Filter) - -- [apis/proto/v1/manager/index/index_manager.proto](#apis_proto_v1_manager_index_index_manager-proto) - - [Index](#manager-index-v1-Index) - -- [apis/proto/v1/payload/payload.proto](#apis_proto_v1_payload_payload-proto) - - [Control](#payload-v1-Control) - - [Control.CreateIndexRequest](#payload-v1-Control-CreateIndexRequest) - - [Discoverer](#payload-v1-Discoverer) - - [Discoverer.Request](#payload-v1-Discoverer-Request) - - [Empty](#payload-v1-Empty) - - [Filter](#payload-v1-Filter) - - [Filter.Config](#payload-v1-Filter-Config) - - [Filter.Target](#payload-v1-Filter-Target) - - [Info](#payload-v1-Info) - - [Info.CPU](#payload-v1-Info-CPU) - - [Info.IPs](#payload-v1-Info-IPs) - - [Info.Index](#payload-v1-Info-Index) - - [Info.Index.Count](#payload-v1-Info-Index-Count) - - [Info.Index.UUID](#payload-v1-Info-Index-UUID) - - [Info.Index.UUID.Committed](#payload-v1-Info-Index-UUID-Committed) - - [Info.Index.UUID.Uncommitted](#payload-v1-Info-Index-UUID-Uncommitted) - - [Info.Memory](#payload-v1-Info-Memory) - - [Info.Node](#payload-v1-Info-Node) - - [Info.Nodes](#payload-v1-Info-Nodes) - - [Info.Pod](#payload-v1-Info-Pod) - - [Info.Pods](#payload-v1-Info-Pods) - - [Insert](#payload-v1-Insert) - - [Insert.Config](#payload-v1-Insert-Config) - - [Insert.MultiObjectRequest](#payload-v1-Insert-MultiObjectRequest) - - [Insert.MultiRequest](#payload-v1-Insert-MultiRequest) - - [Insert.ObjectRequest](#payload-v1-Insert-ObjectRequest) - - [Insert.Request](#payload-v1-Insert-Request) - - [Object](#payload-v1-Object) - - [Object.Blob](#payload-v1-Object-Blob) - - [Object.Distance](#payload-v1-Object-Distance) - - [Object.ID](#payload-v1-Object-ID) - - [Object.IDs](#payload-v1-Object-IDs) - - [Object.Location](#payload-v1-Object-Location) - - [Object.Locations](#payload-v1-Object-Locations) - - [Object.ReshapeVector](#payload-v1-Object-ReshapeVector) - - [Object.StreamBlob](#payload-v1-Object-StreamBlob) - - [Object.StreamDistance](#payload-v1-Object-StreamDistance) - - [Object.StreamLocation](#payload-v1-Object-StreamLocation) - - [Object.StreamVector](#payload-v1-Object-StreamVector) - - [Object.Vector](#payload-v1-Object-Vector) - - [Object.VectorRequest](#payload-v1-Object-VectorRequest) - - [Object.Vectors](#payload-v1-Object-Vectors) - - [Remove](#payload-v1-Remove) - - [Remove.Config](#payload-v1-Remove-Config) - - [Remove.MultiRequest](#payload-v1-Remove-MultiRequest) - - [Remove.Request](#payload-v1-Remove-Request) - - [Search](#payload-v1-Search) - - [Search.Config](#payload-v1-Search-Config) - - [Search.IDRequest](#payload-v1-Search-IDRequest) - - [Search.MultiIDRequest](#payload-v1-Search-MultiIDRequest) - - [Search.MultiObjectRequest](#payload-v1-Search-MultiObjectRequest) - - [Search.MultiRequest](#payload-v1-Search-MultiRequest) - - [Search.ObjectRequest](#payload-v1-Search-ObjectRequest) - - [Search.Request](#payload-v1-Search-Request) - - [Search.Response](#payload-v1-Search-Response) - - [Search.Responses](#payload-v1-Search-Responses) - - [Search.StreamResponse](#payload-v1-Search-StreamResponse) - - [Update](#payload-v1-Update) - - [Update.Config](#payload-v1-Update-Config) - - [Update.MultiObjectRequest](#payload-v1-Update-MultiObjectRequest) - - [Update.MultiRequest](#payload-v1-Update-MultiRequest) - - [Update.ObjectRequest](#payload-v1-Update-ObjectRequest) - - [Update.Request](#payload-v1-Update-Request) - - [Upsert](#payload-v1-Upsert) - - [Upsert.Config](#payload-v1-Upsert-Config) - - [Upsert.MultiObjectRequest](#payload-v1-Upsert-MultiObjectRequest) - - [Upsert.MultiRequest](#payload-v1-Upsert-MultiRequest) - - [Upsert.ObjectRequest](#payload-v1-Upsert-ObjectRequest) - - [Upsert.Request](#payload-v1-Upsert-Request) - -- [apis/proto/v1/vald/filter.proto](#apis_proto_v1_vald_filter-proto) - - [Filter](#vald-v1-Filter) - -- [apis/proto/v1/vald/insert.proto](#apis_proto_v1_vald_insert-proto) - - [Insert](#vald-v1-Insert) - -- [apis/proto/v1/vald/object.proto](#apis_proto_v1_vald_object-proto) - - [Object](#vald-v1-Object) - -- [apis/proto/v1/vald/remove.proto](#apis_proto_v1_vald_remove-proto) - - [Remove](#vald-v1-Remove) - -- [apis/proto/v1/vald/search.proto](#apis_proto_v1_vald_search-proto) - - [Search](#vald-v1-Search) - -- [apis/proto/v1/vald/update.proto](#apis_proto_v1_vald_update-proto) - - [Update](#vald-v1-Update) - -- [apis/proto/v1/vald/upsert.proto](#apis_proto_v1_vald_upsert-proto) - - [Upsert](#vald-v1-Upsert) - +- [apis/proto/v1/agent/core/agent.proto](#apis/proto/v1/agent/core/agent.proto) + - [Agent](#core.v1.Agent) +- [apis/proto/v1/agent/sidecar/sidecar.proto](#apis/proto/v1/agent/sidecar/sidecar.proto) + - [Sidecar](#sidecar.v1.Sidecar) +- [apis/proto/v1/discoverer/discoverer.proto](#apis/proto/v1/discoverer/discoverer.proto) + - [Discoverer](#discoverer.v1.Discoverer) +- [apis/proto/v1/filter/egress/egress_filter.proto](#apis/proto/v1/filter/egress/egress_filter.proto) + - [Filter](#filter.egress.v1.Filter) +- [apis/proto/v1/filter/ingress/ingress_filter.proto](#apis/proto/v1/filter/ingress/ingress_filter.proto) + - [Filter](#filter.ingress.v1.Filter) +- [apis/proto/v1/manager/index/index_manager.proto](#apis/proto/v1/manager/index/index_manager.proto) + - [Index](#manager.index.v1.Index) +- [apis/proto/v1/payload/payload.proto](#apis/proto/v1/payload/payload.proto) + - [Control](#payload.v1.Control) + - [Control.CreateIndexRequest](#payload.v1.Control.CreateIndexRequest) + - [Discoverer](#payload.v1.Discoverer) + - [Discoverer.Request](#payload.v1.Discoverer.Request) + - [Empty](#payload.v1.Empty) + - [Filter](#payload.v1.Filter) + - [Filter.Config](#payload.v1.Filter.Config) + - [Filter.Target](#payload.v1.Filter.Target) + - [Info](#payload.v1.Info) + - [Info.CPU](#payload.v1.Info.CPU) + - [Info.IPs](#payload.v1.Info.IPs) + - [Info.Index](#payload.v1.Info.Index) + - [Info.Index.Count](#payload.v1.Info.Index.Count) + - [Info.Index.UUID](#payload.v1.Info.Index.UUID) + - [Info.Index.UUID.Committed](#payload.v1.Info.Index.UUID.Committed) + - [Info.Index.UUID.Uncommitted](#payload.v1.Info.Index.UUID.Uncommitted) + - [Info.Memory](#payload.v1.Info.Memory) + - [Info.Node](#payload.v1.Info.Node) + - [Info.Nodes](#payload.v1.Info.Nodes) + - [Info.Pod](#payload.v1.Info.Pod) + - [Info.Pods](#payload.v1.Info.Pods) + - [Insert](#payload.v1.Insert) + - [Insert.Config](#payload.v1.Insert.Config) + - [Insert.MultiObjectRequest](#payload.v1.Insert.MultiObjectRequest) + - [Insert.MultiRequest](#payload.v1.Insert.MultiRequest) + - [Insert.ObjectRequest](#payload.v1.Insert.ObjectRequest) + - [Insert.Request](#payload.v1.Insert.Request) + - [Object](#payload.v1.Object) + - [Object.Blob](#payload.v1.Object.Blob) + - [Object.Distance](#payload.v1.Object.Distance) + - [Object.ID](#payload.v1.Object.ID) + - [Object.IDs](#payload.v1.Object.IDs) + - [Object.Location](#payload.v1.Object.Location) + - [Object.Locations](#payload.v1.Object.Locations) + - [Object.ReshapeVector](#payload.v1.Object.ReshapeVector) + - [Object.StreamBlob](#payload.v1.Object.StreamBlob) + - [Object.StreamDistance](#payload.v1.Object.StreamDistance) + - [Object.StreamLocation](#payload.v1.Object.StreamLocation) + - [Object.StreamVector](#payload.v1.Object.StreamVector) + - [Object.Vector](#payload.v1.Object.Vector) + - [Object.VectorRequest](#payload.v1.Object.VectorRequest) + - [Object.Vectors](#payload.v1.Object.Vectors) + - [Remove](#payload.v1.Remove) + - [Remove.Config](#payload.v1.Remove.Config) + - [Remove.MultiRequest](#payload.v1.Remove.MultiRequest) + - [Remove.Request](#payload.v1.Remove.Request) + - [Search](#payload.v1.Search) + - [Search.Config](#payload.v1.Search.Config) + - [Search.IDRequest](#payload.v1.Search.IDRequest) + - [Search.MultiIDRequest](#payload.v1.Search.MultiIDRequest) + - [Search.MultiObjectRequest](#payload.v1.Search.MultiObjectRequest) + - [Search.MultiRequest](#payload.v1.Search.MultiRequest) + - [Search.ObjectRequest](#payload.v1.Search.ObjectRequest) + - [Search.Request](#payload.v1.Search.Request) + - [Search.Response](#payload.v1.Search.Response) + - [Search.Responses](#payload.v1.Search.Responses) + - [Search.StreamResponse](#payload.v1.Search.StreamResponse) + - [Update](#payload.v1.Update) + - [Update.Config](#payload.v1.Update.Config) + - [Update.MultiObjectRequest](#payload.v1.Update.MultiObjectRequest) + - [Update.MultiRequest](#payload.v1.Update.MultiRequest) + - [Update.ObjectRequest](#payload.v1.Update.ObjectRequest) + - [Update.Request](#payload.v1.Update.Request) + - [Upsert](#payload.v1.Upsert) + - [Upsert.Config](#payload.v1.Upsert.Config) + - [Upsert.MultiObjectRequest](#payload.v1.Upsert.MultiObjectRequest) + - [Upsert.MultiRequest](#payload.v1.Upsert.MultiRequest) + - [Upsert.ObjectRequest](#payload.v1.Upsert.ObjectRequest) + - [Upsert.Request](#payload.v1.Upsert.Request) +- [apis/proto/v1/vald/filter.proto](#apis/proto/v1/vald/filter.proto) + - [Filter](#vald.v1.Filter) +- [apis/proto/v1/vald/insert.proto](#apis/proto/v1/vald/insert.proto) + - [Insert](#vald.v1.Insert) +- [apis/proto/v1/vald/object.proto](#apis/proto/v1/vald/object.proto) + - [Object](#vald.v1.Object) +- [apis/proto/v1/vald/remove.proto](#apis/proto/v1/vald/remove.proto) + - [Remove](#vald.v1.Remove) +- [apis/proto/v1/vald/search.proto](#apis/proto/v1/vald/search.proto) + - [Search](#vald.v1.Search) +- [apis/proto/v1/vald/update.proto](#apis/proto/v1/vald/update.proto) + - [Update](#vald.v1.Update) +- [apis/proto/v1/vald/upsert.proto](#apis/proto/v1/vald/upsert.proto) + - [Upsert](#vald.v1.Upsert) - [Scalar Value Types](#scalar-value-types) + - -

Top

## apis/proto/v1/agent/core/agent.proto - - - - - - - - - + ### Agent -Represent the agent service. -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateIndex | [.payload.v1.Control.CreateIndexRequest](#payload-v1-Control-CreateIndexRequest) | [.payload.v1.Empty](#payload-v1-Empty) | Represent the create index RPC. | -| SaveIndex | [.payload.v1.Empty](#payload-v1-Empty) | [.payload.v1.Empty](#payload-v1-Empty) | Represent the save index RPC. | -| CreateAndSaveIndex | [.payload.v1.Control.CreateIndexRequest](#payload-v1-Control-CreateIndexRequest) | [.payload.v1.Empty](#payload-v1-Empty) | Represent the create and save index RPC. | -| IndexInfo | [.payload.v1.Empty](#payload-v1-Empty) | [.payload.v1.Info.Index.Count](#payload-v1-Info-Index-Count) | Represent the RPC to get the agent index information. | - - +Represent the agent service. +| Method Name | Request Type | Response Type | Description | +| ------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------- | +| CreateIndex | [.payload.v1.Control.CreateIndexRequest](#payload.v1.Control.CreateIndexRequest) | [.payload.v1.Empty](#payload.v1.Empty) | Represent the creating index RPC. | +| SaveIndex | [.payload.v1.Empty](#payload.v1.Empty) | [.payload.v1.Empty](#payload.v1.Empty) | Represent the saving index RPC. | +| CreateAndSaveIndex | [.payload.v1.Control.CreateIndexRequest](#payload.v1.Control.CreateIndexRequest) | [.payload.v1.Empty](#payload.v1.Empty) | Represent the creating and saving index RPC. | +| IndexInfo | [.payload.v1.Empty](#payload.v1.Empty) | [.payload.v1.Info.Index.Count](#payload.v1.Info.Index.Count) | Represent the RPC to get the agent index information. | + -

Top

## apis/proto/v1/agent/sidecar/sidecar.proto - - - - - - - - - + ### Sidecar + Represent the agent sidecar service. | Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| - - +| ----------- | ------------ | ------------- | ----------- | + - -

Top

## apis/proto/v1/discoverer/discoverer.proto - - - - - - - - - + ### Discoverer -Represent the discoverer service. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Pods | [.payload.v1.Discoverer.Request](#payload-v1-Discoverer-Request) | [.payload.v1.Info.Pods](#payload-v1-Info-Pods) | Represent the RPC to get the agent pods information. | -| Nodes | [.payload.v1.Discoverer.Request](#payload-v1-Discoverer-Request) | [.payload.v1.Info.Nodes](#payload-v1-Info-Nodes) | Represent the RPC to get the node information. | - +Represent the discoverer service. +| Method Name | Request Type | Response Type | Description | +| ----------- | ---------------------------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------- | +| Pods | [.payload.v1.Discoverer.Request](#payload.v1.Discoverer.Request) | [.payload.v1.Info.Pods](#payload.v1.Info.Pods) | Represent the RPC to get the agent pods information. | +| Nodes | [.payload.v1.Discoverer.Request](#payload.v1.Discoverer.Request) | [.payload.v1.Info.Nodes](#payload.v1.Info.Nodes) | Represent the RPC to get the node information. | + -

Top

## apis/proto/v1/filter/egress/egress_filter.proto - - - - - - - - - + ### Filter -Represent the egress filter service. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| FilterDistance | [.payload.v1.Object.Distance](#payload-v1-Object-Distance) | [.payload.v1.Object.Distance](#payload-v1-Object-Distance) | Represent the RPC to filter the distance. | -| FilterVector | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | Represent the RPC to filter the vector. | - +Represent the egress filter service. +| Method Name | Request Type | Response Type | Description | +| -------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------- | +| FilterDistance | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) | Represent the RPC to filter the distance. | +| FilterVector | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | Represent the RPC to filter the vector. | + -

Top

## apis/proto/v1/filter/ingress/ingress_filter.proto - - - - - - - - - + ### Filter -Represent the ingress filter service. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| GenVector | [.payload.v1.Object.Blob](#payload-v1-Object-Blob) | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | Represent the RPC to generate the vector. | -| FilterVector | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | Represent the RPC to filter the vector. | - +Represent the ingress filter service. +| Method Name | Request Type | Response Type | Description | +| ------------ | ------------------------------------------------------ | ------------------------------------------------------ | ----------------------------------------- | +| GenVector | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | Represent the RPC to generate the vector. | +| FilterVector | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | Represent the RPC to filter the vector. | + -

Top

## apis/proto/v1/manager/index/index_manager.proto - - - - - - - - - + ### Index -Represent the index manager service. -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| IndexInfo | [.payload.v1.Empty](#payload-v1-Empty) | [.payload.v1.Info.Index.Count](#payload-v1-Info-Index-Count) | Represent the RPC to get the index information. | - - +Represent the index manager service. +| Method Name | Request Type | Response Type | Description | +| ----------- | -------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------- | +| IndexInfo | [.payload.v1.Empty](#payload.v1.Empty) | [.payload.v1.Info.Index.Count](#payload.v1.Info.Index.Count) | Represent the RPC to get the index information. | + -

Top

## apis/proto/v1/payload/payload.proto - - - + ### Control + Control related messages. + +### Control.CreateIndexRequest +Represent the create index request. +| Field | Type | Label | Description | +| --------- | ----------------- | ----- | -------------------------------------------- | +| pool_size | [uint32](#uint32) | | The pool size of the create index operation. | + - +### Discoverer -### Control.CreateIndexRequest -Represent the create index request. +Discoverer related messages. + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| pool_size | [uint32](#uint32) | | The pool size of the create index operation. | +### Discoverer.Request +Represent the dicoverer request. +| Field | Type | Label | Description | +| --------- | ----------------- | ----- | -------------------------------- | +| name | [string](#string) | | The agent name to be discovered. | +| namespace | [string](#string) | | The namespace to be discovered. | +| node | [string](#string) | | The node to be discovered. | + +### Empty +Represent an empty message. - + -### Discoverer -Discoverer related messages. +### Filter +Filter related messages. + +### Filter.Config +Represent filter configuration. +| Field | Type | Label | Description | +| ------- | ------------------------------------------ | -------- | ------------------------------------------ | +| targets | [Filter.Target](#payload.v1.Filter.Target) | repeated | Represent the filter target configuration. | - + -### Discoverer.Request -Represent the dicoverer request. +### Filter.Target +Represent the target filter server. -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The agent name to be discover. | -| namespace | [string](#string) | | The namespace to be discover. | -| node | [string](#string) | | The node to be discover. | +| Field | Type | Label | Description | +| ----- | ----------------- | ----- | -------------------- | +| host | [string](#string) | | The target hostname. | +| port | [uint32](#uint32) | | The target port. | + +### Info +Info related messages. + +### Info.CPU - +Represent the CPU information message. -### Empty -Represent an empty message. +| Field | Type | Label | Description | +| ------- | ----------------- | ----- | --------------------------- | +| limit | [double](#double) | | The CPU resource limit. | +| request | [double](#double) | | The CPU resource requested. | +| usage | [double](#double) | | The CPU usage. | + +### Info.IPs +Represent the multiple IP message. +| Field | Type | Label | Description | +| ----- | ----------------- | -------- | ----------- | +| ip | [string](#string) | repeated | | + - +### Info.Index -### Filter -Filter related messages. +Represent the index information messages. + +### Info.Index.Count +Represent the index count message. +| Field | Type | Label | Description | +| ----------- | ----------------- | ----- | ---------------------------- | +| stored | [uint32](#uint32) | | The stored index count. | +| uncommitted | [uint32](#uint32) | | The uncommitted index count. | +| indexing | [bool](#bool) | | The indexing index count. | +| saving | [bool](#bool) | | The saving index count. | + - +### Info.Index.UUID -### Filter.Config -Represent filter configuration. +Represent the UUID message. + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| targets | [Filter.Target](#payload-v1-Filter-Target) | repeated | Represent the filter target configuration. | +### Info.Index.UUID.Committed +The committed UUID. +| Field | Type | Label | Description | +| ----- | ----------------- | ----- | ----------- | +| uuid | [string](#string) | | | + +### Info.Index.UUID.Uncommitted +The uncommitted UUID. - +| Field | Type | Label | Description | +| ----- | ----------------- | ----- | ----------- | +| uuid | [string](#string) | | | -### Filter.Target -Represent the target filter server. + +### Info.Memory -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| host | [string](#string) | | The target hostname. | -| port | [uint32](#uint32) | | The target port. | +Represent the memory information message. +| Field | Type | Label | Description | +| ------- | ----------------- | ----- | --------------------- | +| limit | [double](#double) | | The memory limit. | +| request | [double](#double) | | The memory requested. | +| usage | [double](#double) | | The memory usage. | + +### Info.Node +Represent the node information message. +| Field | Type | Label | Description | +| ------------- | -------------------------------------- | ----- | ------------------------------------ | +| name | [string](#string) | | The name of the node. | +| internal_addr | [string](#string) | | The internal IP address of the node. | +| external_addr | [string](#string) | | The external IP address of the node. | +| cpu | [Info.CPU](#payload.v1.Info.CPU) | | The CPU information of the node. | +| memory | [Info.Memory](#payload.v1.Info.Memory) | | The memory information of the node. | +| Pods | [Info.Pods](#payload.v1.Info.Pods) | | The pod information of the node. | - + -### Info -Info related messages. +### Info.Nodes +Represent the multiple node information message. +| Field | Type | Label | Description | +| ----- | ---------------------------------- | -------- | ------------------------------ | +| nodes | [Info.Node](#payload.v1.Info.Node) | repeated | The multiple node information. | + +### Info.Pod +Represent the pod information message. - +| Field | Type | Label | Description | +| --------- | -------------------------------------- | ----- | ------------------------------------- | +| app_name | [string](#string) | | The app name of the pod on the label. | +| name | [string](#string) | | The name of the pod. | +| namespace | [string](#string) | | The namespace of the pod. | +| ip | [string](#string) | | The IP of the pod. | +| cpu | [Info.CPU](#payload.v1.Info.CPU) | | The CPU information of the pod. | +| memory | [Info.Memory](#payload.v1.Info.Memory) | | The memory information of the pod. | +| node | [Info.Node](#payload.v1.Info.Node) | | The node information of the pod. | -### Info.CPU -Represent the CPU information message. + +### Info.Pods -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| limit | [double](#double) | | The CPU resource limit. | -| request | [double](#double) | | The CPU resource requested. | -| usage | [double](#double) | | The CPU usage. | +Represent the multiple pod information message. +| Field | Type | Label | Description | +| ----- | -------------------------------- | -------- | ----------------------------- | +| pods | [Info.Pod](#payload.v1.Info.Pod) | repeated | The multiple pod information. | + +### Insert +Insert related messages. + - +### Insert.Config -### Info.IPs -Represent the multiple IP message. +Represent insert configurations. +| Field | Type | Label | Description | +| ----------------------- | ------------------------------------------ | ----- | --------------------------------------------------- | +| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during insert operation. | +| filters | [Filter.Config](#payload.v1.Filter.Config) | | Filter configurations. | +| timestamp | [int64](#int64) | | Insert timestamp. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ip | [string](#string) | repeated | | + +### Insert.MultiObjectRequest +Represent the multiple insert by binary object request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------------------- | -------- | -------------------------------------------- | +| requests | [Insert.ObjectRequest](#payload.v1.Insert.ObjectRequest) | repeated | Represent multiple insert by object content. | + +### Insert.MultiRequest - +Represent the multiple insert request. -### Info.Index -Represent the index information messages. +| Field | Type | Label | Description | +| -------- | -------------------------------------------- | -------- | ------------------------------------------ | +| requests | [Insert.Request](#payload.v1.Insert.Request) | repeated | Represent multiple insert request content. | + +### Insert.ObjectRequest +Represent the insert by binary object request. +| Field | Type | Label | Description | +| ---------- | ------------------------------------------ | ----- | ---------------------------------------- | +| object | [Object.Blob](#payload.v1.Object.Blob) | | The binary object to be inserted. | +| config | [Insert.Config](#payload.v1.Insert.Config) | | The configuration of the insert request. | +| vectorizer | [Filter.Target](#payload.v1.Filter.Target) | | Filter configurations. | + - +### Insert.Request -### Info.Index.Count -Represent the index count message. +Represent the insert request. +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | ---------------------------------------- | +| vector | [Object.Vector](#payload.v1.Object.Vector) | | The vector to be inserted. | +| config | [Insert.Config](#payload.v1.Insert.Config) | | The configuration of the insert request. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| stored | [uint32](#uint32) | | The stored index count. | -| uncommitted | [uint32](#uint32) | | The uncommitted index count. | -| indexing | [bool](#bool) | | The indexing index count. | -| saving | [bool](#bool) | | The saving index count. | + +### Object +Common messages. + +### Object.Blob +Represent the binary object. - +| Field | Type | Label | Description | +| ------ | ----------------- | ----- | ------------------ | +| id | [string](#string) | | The object ID. | +| object | [bytes](#bytes) | | The binary object. | -### Info.Index.UUID -Represent the UUID message. + +### Object.Distance +Represent the ID and distance pair. +| Field | Type | Label | Description | +| -------- | ----------------- | ----- | -------------- | +| id | [string](#string) | | The vector ID. | +| distance | [float](#float) | | The distance. | + +### Object.ID - +Represent the vector ID. -### Info.Index.UUID.Committed -The committed UUID. +| Field | Type | Label | Description | +| ----- | ----------------- | ----- | ----------- | +| id | [string](#string) | | | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| uuid | [string](#string) | | | +### Object.IDs +Represent multiple vector IDs. +| Field | Type | Label | Description | +| ----- | ----------------- | -------- | ----------- | +| ids | [string](#string) | repeated | | + +### Object.Location +Represent the vector location. - +| Field | Type | Label | Description | +| ----- | ----------------- | -------- | ------------------------- | +| name | [string](#string) | | The name of the location. | +| uuid | [string](#string) | | The UUID of the vector. | +| ips | [string](#string) | repeated | The IP list. | -### Info.Index.UUID.Uncommitted -The uncommitted UUID. + +### Object.Locations -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| uuid | [string](#string) | | | +Represent multiple vector locations. +| Field | Type | Label | Description | +| --------- | ---------------------------------------------- | -------- | ----------- | +| locations | [Object.Location](#payload.v1.Object.Location) | repeated | | + +### Object.ReshapeVector +Represent reshape vector. +| Field | Type | Label | Description | +| ------ | --------------- | -------- | ------------------ | +| object | [bytes](#bytes) | | The binary object. | +| shape | [int32](#int32) | repeated | The new shape. | - + -### Info.Memory -Represent the memory information message. +### Object.StreamBlob +Represent stream response of binary objects. -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| limit | [double](#double) | | The memory limit. | -| request | [double](#double) | | The memory requested. | -| usage | [double](#double) | | The memory usage. | +| Field | Type | Label | Description | +| ------ | --------------------------------------- | ----- | --------------------- | +| blob | [Object.Blob](#payload.v1.Object.Blob) | | The binary object. | +| status | [google.rpc.Status](#google.rpc.Status) | | The RPC error status. | + +### Object.StreamDistance +Represent stream response of distances. +| Field | Type | Label | Description | +| -------- | ---------------------------------------------- | ----- | --------------------- | +| distance | [Object.Distance](#payload.v1.Object.Distance) | | The distance. | +| status | [google.rpc.Status](#google.rpc.Status) | | The RPC error status. | + - +### Object.StreamLocation -### Info.Node -Represent the node information message. +Represent the stream response of the vector location. +| Field | Type | Label | Description | +| -------- | ---------------------------------------------- | ----- | --------------------- | +| location | [Object.Location](#payload.v1.Object.Location) | | The vector location. | +| status | [google.rpc.Status](#google.rpc.Status) | | The RPC error status. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the node. | -| internal_addr | [string](#string) | | The internal IP address of the node. | -| external_addr | [string](#string) | | The external IP address of the node. | -| cpu | [Info.CPU](#payload-v1-Info-CPU) | | The CPU information of the node. | -| memory | [Info.Memory](#payload-v1-Info-Memory) | | The memory information of the node. | -| Pods | [Info.Pods](#payload-v1-Info-Pods) | | The pod information of the node. | + +### Object.StreamVector +Represent stream response of the vector. +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | --------------------- | +| vector | [Object.Vector](#payload.v1.Object.Vector) | | The vector. | +| status | [google.rpc.Status](#google.rpc.Status) | | The RPC error status. | + +### Object.Vector - +Represent a vector. -### Info.Nodes -Represent the multiple node information message. +| Field | Type | Label | Description | +| ------ | ----------------- | -------- | -------------- | +| id | [string](#string) | | The vector ID. | +| vector | [float](#float) | repeated | The vector. | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| nodes | [Info.Node](#payload-v1-Info-Node) | repeated | The multiple node information. | +### Object.VectorRequest +Represent a request to fetch raw vector. +| Field | Type | Label | Description | +| ------- | ------------------------------------------ | ----- | ---------------------------- | +| id | [Object.ID](#payload.v1.Object.ID) | | The vector ID to be fetched. | +| filters | [Filter.Config](#payload.v1.Filter.Config) | | Filter configurations. | + +### Object.Vectors +Represent multiple vectors. - +| Field | Type | Label | Description | +| ------- | ------------------------------------------ | -------- | ----------- | +| vectors | [Object.Vector](#payload.v1.Object.Vector) | repeated | | -### Info.Pod -Represent the pod information message. + +### Remove -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| app_name | [string](#string) | | The app name of the pod on the label. | -| name | [string](#string) | | The name of the pod. | -| namespace | [string](#string) | | The namespace of the pod. | -| ip | [string](#string) | | The IP of the pod. | -| cpu | [Info.CPU](#payload-v1-Info-CPU) | | The CPU information of the pod. | -| memory | [Info.Memory](#payload-v1-Info-Memory) | | The memory information of the pod. | -| node | [Info.Node](#payload-v1-Info-Node) | | The node information of the pod. | +Remove related messages. + +### Remove.Config +Represent the remove configuration. +| Field | Type | Label | Description | +| ----------------------- | --------------- | ----- | --------------------------------------------------- | +| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during upsert operation. | +| timestamp | [int64](#int64) | | Remove timestamp. | + - +### Remove.MultiRequest -### Info.Pods -Represent the multiple pod information message. +Represent the multiple remove request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------- | -------- | ---------------------------------------------- | +| requests | [Remove.Request](#payload.v1.Remove.Request) | repeated | Represent the multiple remove request content. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| pods | [Info.Pod](#payload-v1-Info-Pod) | repeated | The multiple pod information. | + +### Remove.Request +Represent the remove request. +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | ---------------------------------------- | +| id | [Object.ID](#payload.v1.Object.ID) | | The object ID to be removed. | +| config | [Remove.Config](#payload.v1.Remove.Config) | | The configuration of the remove request. | + +### Search - +Search related messages. -### Insert -Insert related messages. + +### Search.Config +Represent search configuration. +| Field | Type | Label | Description | +| --------------- | ------------------------------------------ | ----- | ---------------------------------------- | +| request_id | [string](#string) | | Unique request ID. | +| num | [uint32](#uint32) | | Maximum number of result to be returned. | +| radius | [float](#float) | | Search radius. | +| epsilon | [float](#float) | | Search coefficient. | +| timeout | [int64](#int64) | | Search timeout in nanoseconds. | +| ingress_filters | [Filter.Config](#payload.v1.Filter.Config) | | Ingress filter configurations. | +| egress_filters | [Filter.Config](#payload.v1.Filter.Config) | | Egress filter configurations. | +| min_num | [uint32](#uint32) | | Minimum number of result to be returned. | + +### Search.IDRequest - +Represent a search by ID request. -### Insert.Config -Represent insert configurations. +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | ---------------------------------------- | +| id | [string](#string) | | The vector ID to be searched. | +| config | [Search.Config](#payload.v1.Search.Config) | | The configuration of the search request. | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during insert operation. | -| filters | [Filter.Config](#payload-v1-Filter-Config) | | Filter configurations. | -| timestamp | [int64](#int64) | | Insert timestamp. | +### Search.MultiIDRequest +Represent the multiple search by ID request. +| Field | Type | Label | Description | +| -------- | ------------------------------------------------ | -------- | ---------------------------------------------------- | +| requests | [Search.IDRequest](#payload.v1.Search.IDRequest) | repeated | Represent the multiple search by ID request content. | + +### Search.MultiObjectRequest +Represent the multiple search by binary object request. - +| Field | Type | Label | Description | +| -------- | -------------------------------------------------------- | -------- | --------------------------------------------------------------- | +| requests | [Search.ObjectRequest](#payload.v1.Search.ObjectRequest) | repeated | Represent the multiple search by binary object request content. | -### Insert.MultiObjectRequest -Represent the multiple insert by binary object request. + +### Search.MultiRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Insert.ObjectRequest](#payload-v1-Insert-ObjectRequest) | repeated | Represent multiple insert by object content. | +Represent the multiple search request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------- | -------- | ---------------------------------------------- | +| requests | [Search.Request](#payload.v1.Search.Request) | repeated | Represent the multiple search request content. | + +### Search.ObjectRequest +Represent a search by binary object request. +| Field | Type | Label | Description | +| ---------- | ------------------------------------------ | ----- | ---------------------------------------- | +| object | [bytes](#bytes) | | The binary object to be searched. | +| config | [Search.Config](#payload.v1.Search.Config) | | The configuration of the search request. | +| vectorizer | [Filter.Target](#payload.v1.Filter.Target) | | Filter configuration. | - + -### Insert.MultiRequest -Represent the multiple insert request. +### Search.Request +Represent a search request. -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Insert.Request](#payload-v1-Insert-Request) | repeated | Represent multiple insert request content. | +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | -------- | ---------------------------------------- | +| vector | [float](#float) | repeated | The vector to be searched. | +| config | [Search.Config](#payload.v1.Search.Config) | | The configuration of the search request. | + +### Search.Response +Represent a search response. +| Field | Type | Label | Description | +| ---------- | ---------------------------------------------- | -------- | ---------------------- | +| request_id | [string](#string) | | The unique request ID. | +| results | [Object.Distance](#payload.v1.Object.Distance) | repeated | Search results. | + - +### Search.Responses -### Insert.ObjectRequest -Represent the insert by binary object request. +Represent multiple search responses. +| Field | Type | Label | Description | +| --------- | ---------------------------------------------- | -------- | ----------------------------------------------- | +| responses | [Search.Response](#payload.v1.Search.Response) | repeated | Represent the multiple search response content. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [Object.Blob](#payload-v1-Object-Blob) | | The binary object to be inserted. | -| config | [Insert.Config](#payload-v1-Insert-Config) | | The configuration of the insert request. | -| vectorizer | [Filter.Target](#payload-v1-Filter-Target) | | Filter configurations. | + +### Search.StreamResponse +Represent stream search response. +| Field | Type | Label | Description | +| -------- | ---------------------------------------------- | ----- | ------------------------------ | +| response | [Search.Response](#payload.v1.Search.Response) | | Represent the search response. | +| status | [google.rpc.Status](#google.rpc.Status) | | The RPC error status. | + +### Update - +Update related messages -### Insert.Request -Represent the insert request. + +### Update.Config -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vector | [Object.Vector](#payload-v1-Object-Vector) | | The vector to be inserted. | -| config | [Insert.Config](#payload-v1-Insert-Config) | | The configuration of the insert request. | +Represent the update configuration. +| Field | Type | Label | Description | +| ----------------------- | ------------------------------------------ | ----- | --------------------------------------------------- | +| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during update operation. | +| filters | [Filter.Config](#payload.v1.Filter.Config) | | Filter configuration. | +| timestamp | [int64](#int64) | | Update timestamp. | + +### Update.MultiObjectRequest +Represent the multiple update binary object request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------------------- | -------- | ----------------------------------------------------- | +| requests | [Update.ObjectRequest](#payload.v1.Update.ObjectRequest) | repeated | Represent the multiple update object request content. | - + -### Object -Common messages. +### Update.MultiRequest +Represent the multiple update request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------- | -------- | ---------------------------------------------- | +| requests | [Update.Request](#payload.v1.Update.Request) | repeated | Represent the multiple update request content. | + +### Update.ObjectRequest +Represent the update binary object request. - +| Field | Type | Label | Description | +| ---------- | ------------------------------------------ | ----- | ---------------------------------------- | +| object | [Object.Blob](#payload.v1.Object.Blob) | | The binary object to be updated. | +| config | [Update.Config](#payload.v1.Update.Config) | | The configuration of the update request. | +| vectorizer | [Filter.Target](#payload.v1.Filter.Target) | | Filter target. | -### Object.Blob -Represent the binary object. + +### Update.Request -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | The object ID. | -| object | [bytes](#bytes) | | The binary object. | +Represent the update request. +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | ---------------------------------------- | +| vector | [Object.Vector](#payload.v1.Object.Vector) | | The vector to be updated. | +| config | [Update.Config](#payload.v1.Update.Config) | | The configuration of the update request. | + +### Upsert +Upsert related messages. + - +### Upsert.Config -### Object.Distance -Represent the ID and distance pair. +Represent the upsert configuration. +| Field | Type | Label | Description | +| ----------------------- | ------------------------------------------ | ----- | --------------------------------------------------- | +| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during upsert operation. | +| filters | [Filter.Config](#payload.v1.Filter.Config) | | Filter configuration. | +| timestamp | [int64](#int64) | | Upsert timestamp. | -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | The vector ID. | -| distance | [float](#float) | | The distance. | + +### Upsert.MultiObjectRequest +Represent the multiple upsert binary object request. +| Field | Type | Label | Description | +| -------- | -------------------------------------------------------- | -------- | ----------------------------------------------------- | +| requests | [Upsert.ObjectRequest](#payload.v1.Upsert.ObjectRequest) | repeated | Represent the multiple upsert object request content. | + +### Upsert.MultiRequest - +Represent mthe ultiple upsert request. -### Object.ID -Represent the vector ID. +| Field | Type | Label | Description | +| -------- | -------------------------------------------- | -------- | ---------------------------------------------- | +| requests | [Upsert.Request](#payload.v1.Upsert.Request) | repeated | Represent the multiple upsert request content. | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | +### Upsert.ObjectRequest +Represent the upsert binary object request. +| Field | Type | Label | Description | +| ---------- | ------------------------------------------ | ----- | ---------------------------------------- | +| object | [Object.Blob](#payload.v1.Object.Blob) | | The binary object to be upserted. | +| config | [Upsert.Config](#payload.v1.Upsert.Config) | | The configuration of the upsert request. | +| vectorizer | [Filter.Target](#payload.v1.Filter.Target) | | Filter target. | + +### Upsert.Request +Represent the upsert request. - +| Field | Type | Label | Description | +| ------ | ------------------------------------------ | ----- | ---------------------------------------- | +| vector | [Object.Vector](#payload.v1.Object.Vector) | | The vector to be upserted. | +| config | [Upsert.Config](#payload.v1.Upsert.Config) | | The configuration of the upsert request. | -### Object.IDs -Represent multiple vector IDs. + - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ids | [string](#string) | repeated | | - - - - - - - - -### Object.Location -Represent the vector location. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the location. | -| uuid | [string](#string) | | The UUID of the vector. | -| ips | [string](#string) | repeated | The IP list. | - - - - - - - - -### Object.Locations -Represent multiple vector locations. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| locations | [Object.Location](#payload-v1-Object-Location) | repeated | | - - - - - - - - -### Object.ReshapeVector -Represent reshape vector. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [bytes](#bytes) | | The binary object. | -| shape | [int32](#int32) | repeated | The new shape. | - - - - - - - - -### Object.StreamBlob -Represent stream response of binary objects. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| blob | [Object.Blob](#payload-v1-Object-Blob) | | The binary object. | -| status | [google.rpc.Status](#google-rpc-Status) | | The RPC error status. | - - - - - - - - -### Object.StreamDistance -Represent stream response of distances. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| distance | [Object.Distance](#payload-v1-Object-Distance) | | The distance. | -| status | [google.rpc.Status](#google-rpc-Status) | | The RPC error status. | - - - - - - - - -### Object.StreamLocation -Represent the stream response of the vector location. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| location | [Object.Location](#payload-v1-Object-Location) | | The vector location. | -| status | [google.rpc.Status](#google-rpc-Status) | | The RPC error status. | - - - - - - - - -### Object.StreamVector -Represent stream response of the vector. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vector | [Object.Vector](#payload-v1-Object-Vector) | | The vector. | -| status | [google.rpc.Status](#google-rpc-Status) | | The RPC error status. | - - - - - - - - -### Object.Vector -Represent a vector. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | The vector ID. | -| vector | [float](#float) | repeated | The vector. | - - - - - - - - -### Object.VectorRequest -Represent a request to fetch raw vector. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [Object.ID](#payload-v1-Object-ID) | | The vector ID to be fetch. | -| filters | [Filter.Config](#payload-v1-Filter-Config) | | Filter configurations. | - - - - - - - - -### Object.Vectors -Represent multiple vectors. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vectors | [Object.Vector](#payload-v1-Object-Vector) | repeated | | - - - - - - - - -### Remove -Remove related messages. - - - - - - - - -### Remove.Config -Represent the remove configuration. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during upsert operation. | -| timestamp | [int64](#int64) | | Remove timestamp. | - - - - - - - - -### Remove.MultiRequest -Represent the multiple remove request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Remove.Request](#payload-v1-Remove-Request) | repeated | Represent the multiple remove request content. | - - - - - - - - -### Remove.Request -Represent the remove request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [Object.ID](#payload-v1-Object-ID) | | The object ID to be removed. | -| config | [Remove.Config](#payload-v1-Remove-Config) | | The configuration of the remove request. | - - - - - - - - -### Search -Search related messages. - - - - - - - - -### Search.Config -Represent search configuration. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| request_id | [string](#string) | | Unique request ID. | -| num | [uint32](#uint32) | | Maximum number of result to be returned. | -| radius | [float](#float) | | Search radius. | -| epsilon | [float](#float) | | Search coefficient. | -| timeout | [int64](#int64) | | Search timeout in nanoseconds. | -| ingress_filters | [Filter.Config](#payload-v1-Filter-Config) | | Ingress filter configurations. | -| egress_filters | [Filter.Config](#payload-v1-Filter-Config) | | Egress filter configurations. | -| min_num | [uint32](#uint32) | | Minimum number of result to be returned. | - - - - - - - - -### Search.IDRequest -Represent a search by ID request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | The vector ID to be searched. | -| config | [Search.Config](#payload-v1-Search-Config) | | The configuration of the search request. | - - - - - - - - -### Search.MultiIDRequest -Represent the multiple search by ID request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Search.IDRequest](#payload-v1-Search-IDRequest) | repeated | Represent the multiple search by ID request content. | - - - - - - - - -### Search.MultiObjectRequest -Represent the multiple search by binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Search.ObjectRequest](#payload-v1-Search-ObjectRequest) | repeated | Represent the multiple search by binary object request content. | - - - - - - - - -### Search.MultiRequest -Represent the multiple search request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Search.Request](#payload-v1-Search-Request) | repeated | Represent the multiple search request content. | - - - - - - - - -### Search.ObjectRequest -Represent a search by binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [bytes](#bytes) | | The binary object to be searched. | -| config | [Search.Config](#payload-v1-Search-Config) | | The configuration of the search request. | -| vectorizer | [Filter.Target](#payload-v1-Filter-Target) | | Filter configuration. | - - - - - - - - -### Search.Request -Represent a search request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vector | [float](#float) | repeated | The vector to be searched. | -| config | [Search.Config](#payload-v1-Search-Config) | | The configuration of the search request. | - - - - - - - - -### Search.Response -Represent a search response. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| request_id | [string](#string) | | The unique request ID. | -| results | [Object.Distance](#payload-v1-Object-Distance) | repeated | Search results. | - - - - - - - - -### Search.Responses -Represent multiple search responses. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| responses | [Search.Response](#payload-v1-Search-Response) | repeated | Represent the multiple search response content. | - - - - - - - - -### Search.StreamResponse -Represent stream search response. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| response | [Search.Response](#payload-v1-Search-Response) | | Represent the search response. | -| status | [google.rpc.Status](#google-rpc-Status) | | The RPC error status. | - - - - - - - - -### Update -Update related messages - - - - - - - - -### Update.Config -Represent the update configuration. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during update operation. | -| filters | [Filter.Config](#payload-v1-Filter-Config) | | Filter configuration. | -| timestamp | [int64](#int64) | | Update timestamp. | - - - - - - - - -### Update.MultiObjectRequest -Represent the multiple update binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Update.ObjectRequest](#payload-v1-Update-ObjectRequest) | repeated | Represent the multiple update object request content. | - - - - - - - - -### Update.MultiRequest -Represent the multiple update request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Update.Request](#payload-v1-Update-Request) | repeated | Represent the multiple update request content. | - - - - - - - - -### Update.ObjectRequest -Represent the update binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [Object.Blob](#payload-v1-Object-Blob) | | The binary object to be updated. | -| config | [Update.Config](#payload-v1-Update-Config) | | The configuration of the update request. | -| vectorizer | [Filter.Target](#payload-v1-Filter-Target) | | Filter target. | - - - - - - - - -### Update.Request -Represent the update request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vector | [Object.Vector](#payload-v1-Object-Vector) | | The vector to be updated. | -| config | [Update.Config](#payload-v1-Update-Config) | | The configuration of the update request. | - - - - - - - - -### Upsert -Upsert related messages. - - - - - - - - -### Upsert.Config -Represent the upsert configuration. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| skip_strict_exist_check | [bool](#bool) | | A flag to skip exist check during upsert operation. | -| filters | [Filter.Config](#payload-v1-Filter-Config) | | Filter configuration. | -| timestamp | [int64](#int64) | | Upsert timestamp. | - - - - - - - - -### Upsert.MultiObjectRequest -Represent the multiple upsert binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Upsert.ObjectRequest](#payload-v1-Upsert-ObjectRequest) | repeated | Represent the multiple upsert object request content. | - - - - - - - - -### Upsert.MultiRequest -Represent mthe ultiple upsert request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| requests | [Upsert.Request](#payload-v1-Upsert-Request) | repeated | Represent the multiple upsert request content. | - - - - - - - - -### Upsert.ObjectRequest -Represent the upsert binary object request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [Object.Blob](#payload-v1-Object-Blob) | | The binary object to be upserted. | -| config | [Upsert.Config](#payload-v1-Upsert-Config) | | The configuration of the upsert request. | -| vectorizer | [Filter.Target](#payload-v1-Filter-Target) | | Filter target. | - - - - - - - - -### Upsert.Request -Represent the upsert request. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| vector | [Object.Vector](#payload-v1-Object-Vector) | | The vector to be upserted. | -| config | [Upsert.Config](#payload-v1-Upsert-Config) | | The configuration of the upsert request. | - - - - - - - - - - - - - - - -

Top

## apis/proto/v1/vald/filter.proto - - - - - - - - - + ### Filter -Filter service provides ways to connect to Vald through filter. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| SearchObject | [.payload.v1.Search.ObjectRequest](#payload-v1-Search-ObjectRequest) | [.payload.v1.Search.Response](#payload-v1-Search-Response) | A method to search object. | -| MultiSearchObject | [.payload.v1.Search.MultiObjectRequest](#payload-v1-Search-MultiObjectRequest) | [.payload.v1.Search.Responses](#payload-v1-Search-Responses) | A method to search multiple objects. | -| StreamSearchObject | [.payload.v1.Search.ObjectRequest](#payload-v1-Search-ObjectRequest) stream | [.payload.v1.Search.StreamResponse](#payload-v1-Search-StreamResponse) stream | A method to search object by bidirectional streaming. | -| InsertObject | [.payload.v1.Insert.ObjectRequest](#payload-v1-Insert-ObjectRequest) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method insert object. | -| StreamInsertObject | [.payload.v1.Insert.ObjectRequest](#payload-v1-Insert-ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | Represent the streaming RPC to insert object by bidirectional streaming. | -| MultiInsertObject | [.payload.v1.Insert.MultiObjectRequest](#payload-v1-Insert-MultiObjectRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to insert multiple objects. | -| UpdateObject | [.payload.v1.Update.ObjectRequest](#payload-v1-Update-ObjectRequest) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to update object. | -| StreamUpdateObject | [.payload.v1.Update.ObjectRequest](#payload-v1-Update-ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to update object by bidirectional streaming. | -| MultiUpdateObject | [.payload.v1.Update.MultiObjectRequest](#payload-v1-Update-MultiObjectRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to update multiple objects. | -| UpsertObject | [.payload.v1.Upsert.ObjectRequest](#payload-v1-Upsert-ObjectRequest) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to upsert object. | -| StreamUpsertObject | [.payload.v1.Upsert.ObjectRequest](#payload-v1-Upsert-ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to upsert object by bidirectional streaming. | -| MultiUpsertObject | [.payload.v1.Upsert.MultiObjectRequest](#payload-v1-Upsert-MultiObjectRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to upsert multiple objects. | - - +Filter service provides ways to connect to Vald through filter. +| Method Name | Request Type | Response Type | Description | +| ------------------ | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------ | +| SearchObject | [.payload.v1.Search.ObjectRequest](#payload.v1.Search.ObjectRequest) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | A method to search object. | +| MultiSearchObject | [.payload.v1.Search.MultiObjectRequest](#payload.v1.Search.MultiObjectRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | A method to search multiple objects. | +| StreamSearchObject | [.payload.v1.Search.ObjectRequest](#payload.v1.Search.ObjectRequest) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | A method to search object by bidirectional streaming. | +| InsertObject | [.payload.v1.Insert.ObjectRequest](#payload.v1.Insert.ObjectRequest) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method insert object. | +| StreamInsertObject | [.payload.v1.Insert.ObjectRequest](#payload.v1.Insert.ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | Represent the streaming RPC to insert object by bidirectional streaming. | +| MultiInsertObject | [.payload.v1.Insert.MultiObjectRequest](#payload.v1.Insert.MultiObjectRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to insert multiple objects. | +| UpdateObject | [.payload.v1.Update.ObjectRequest](#payload.v1.Update.ObjectRequest) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to update object. | +| StreamUpdateObject | [.payload.v1.Update.ObjectRequest](#payload.v1.Update.ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to update object by bidirectional streaming. | +| MultiUpdateObject | [.payload.v1.Update.MultiObjectRequest](#payload.v1.Update.MultiObjectRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to update multiple objects. | +| UpsertObject | [.payload.v1.Upsert.ObjectRequest](#payload.v1.Upsert.ObjectRequest) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to upsert object. | +| StreamUpsertObject | [.payload.v1.Upsert.ObjectRequest](#payload.v1.Upsert.ObjectRequest) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to upsert object by bidirectional streaming. | +| MultiUpsertObject | [.payload.v1.Upsert.MultiObjectRequest](#payload.v1.Upsert.MultiObjectRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to upsert multiple objects. | + + -

Top

## apis/proto/v1/vald/insert.proto - - - - - - - - - + ### Insert -Insert service provides ways to add new vectors. -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Insert | [.payload.v1.Insert.Request](#payload-v1-Insert-Request) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to add a new single vector. | -| StreamInsert | [.payload.v1.Insert.Request](#payload-v1-Insert-Request) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to add new multiple vectors by bidirectional streaming. | -| MultiInsert | [.payload.v1.Insert.MultiRequest](#payload-v1-Insert-MultiRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to add new multiple vectors in a single request. | - - +Insert service provides ways to add new vectors. +| Method Name | Request Type | Response Type | Description | +| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| Insert | [.payload.v1.Insert.Request](#payload.v1.Insert.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to add a new single vector. | +| StreamInsert | [.payload.v1.Insert.Request](#payload.v1.Insert.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to add new multiple vectors by bidirectional streaming. | +| MultiInsert | [.payload.v1.Insert.MultiRequest](#payload.v1.Insert.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to add new multiple vectors in a single request. | + -

Top

## apis/proto/v1/vald/object.proto - - - - - - - - - + ### Object -Object service provides ways to fetch indexed vectors. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Exists | [.payload.v1.Object.ID](#payload-v1-Object-ID) | [.payload.v1.Object.ID](#payload-v1-Object-ID) | A method to check whether a specified ID is indexed or not. | -| GetObject | [.payload.v1.Object.VectorRequest](#payload-v1-Object-VectorRequest) | [.payload.v1.Object.Vector](#payload-v1-Object-Vector) | A method to fetch a vector. | -| StreamGetObject | [.payload.v1.Object.VectorRequest](#payload-v1-Object-VectorRequest) stream | [.payload.v1.Object.StreamVector](#payload-v1-Object-StreamVector) stream | A method to fetch vectors by bidirectional streaming. | - +Object service provides ways to fetch indexed vectors. +| Method Name | Request Type | Response Type | Description | +| --------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------- | +| Exists | [.payload.v1.Object.ID](#payload.v1.Object.ID) | [.payload.v1.Object.ID](#payload.v1.Object.ID) | A method to check whether a specified ID is indexed or not. | +| GetObject | [.payload.v1.Object.VectorRequest](#payload.v1.Object.VectorRequest) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | A method to fetch a vector. | +| StreamGetObject | [.payload.v1.Object.VectorRequest](#payload.v1.Object.VectorRequest) stream | [.payload.v1.Object.StreamVector](#payload.v1.Object.StreamVector) stream | A method to fetch vectors by bidirectional streaming. | + -

Top

## apis/proto/v1/vald/remove.proto - - - - - - - - - + ### Remove -Remove service provides ways to remove indexed vectors. -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Remove | [.payload.v1.Remove.Request](#payload-v1-Remove-Request) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to remove an indexed vector. | -| StreamRemove | [.payload.v1.Remove.Request](#payload-v1-Remove-Request) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to remove multiple indexed vectors by bidirectional streaming. | -| MultiRemove | [.payload.v1.Remove.MultiRequest](#payload-v1-Remove-MultiRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to remove multiple indexed vectors in a single request. | - - +Remove service provides ways to remove indexed vectors. +| Method Name | Request Type | Response Type | Description | +| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| Remove | [.payload.v1.Remove.Request](#payload.v1.Remove.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to remove an indexed vector. | +| StreamRemove | [.payload.v1.Remove.Request](#payload.v1.Remove.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to remove multiple indexed vectors by bidirectional streaming. | +| MultiRemove | [.payload.v1.Remove.MultiRequest](#payload.v1.Remove.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to remove multiple indexed vectors in a single request. | + -

Top

## apis/proto/v1/vald/search.proto - - - - - - - - - + ### Search -Search service provides ways to search indexed vectors. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Search | [.payload.v1.Search.Request](#payload-v1-Search-Request) | [.payload.v1.Search.Response](#payload-v1-Search-Response) | A method to search indexed vectors by a raw vector. | -| SearchByID | [.payload.v1.Search.IDRequest](#payload-v1-Search-IDRequest) | [.payload.v1.Search.Response](#payload-v1-Search-Response) | A method to search indexed vectors by ID. | -| StreamSearch | [.payload.v1.Search.Request](#payload-v1-Search-Request) stream | [.payload.v1.Search.StreamResponse](#payload-v1-Search-StreamResponse) stream | A method to search indexed vectors by multiple vectors. | -| StreamSearchByID | [.payload.v1.Search.IDRequest](#payload-v1-Search-IDRequest) stream | [.payload.v1.Search.StreamResponse](#payload-v1-Search-StreamResponse) stream | A method to search indexed vectors by multiple IDs. | -| MultiSearch | [.payload.v1.Search.MultiRequest](#payload-v1-Search-MultiRequest) | [.payload.v1.Search.Responses](#payload-v1-Search-Responses) | A method to search indexed vectors by multiple vectors in a single request. | -| MultiSearchByID | [.payload.v1.Search.MultiIDRequest](#payload-v1-Search-MultiIDRequest) | [.payload.v1.Search.Responses](#payload-v1-Search-Responses) | A method to search indexed vectors by multiple IDs in a single request. | -| LinearSearch | [.payload.v1.Search.Request](#payload-v1-Search-Request) | [.payload.v1.Search.Response](#payload-v1-Search-Response) | A method to linear search indexed vectors by a raw vector. | -| LinearSearchByID | [.payload.v1.Search.IDRequest](#payload-v1-Search-IDRequest) | [.payload.v1.Search.Response](#payload-v1-Search-Response) | A method to linear search indexed vectors by ID. | -| StreamLinearSearch | [.payload.v1.Search.Request](#payload-v1-Search-Request) stream | [.payload.v1.Search.StreamResponse](#payload-v1-Search-StreamResponse) stream | A method to linear search indexed vectors by multiple vectors. | -| StreamLinearSearchByID | [.payload.v1.Search.IDRequest](#payload-v1-Search-IDRequest) stream | [.payload.v1.Search.StreamResponse](#payload-v1-Search-StreamResponse) stream | A method to linear search indexed vectors by multiple IDs. | -| MultiLinearSearch | [.payload.v1.Search.MultiRequest](#payload-v1-Search-MultiRequest) | [.payload.v1.Search.Responses](#payload-v1-Search-Responses) | A method to linear search indexed vectors by multiple vectors in a single request. | -| MultiLinearSearchByID | [.payload.v1.Search.MultiIDRequest](#payload-v1-Search-MultiIDRequest) | [.payload.v1.Search.Responses](#payload-v1-Search-Responses) | A method to linear search indexed vectors by multiple IDs in a single request. | - - +Search service provides ways to search indexed vectors. +| Method Name | Request Type | Response Type | Description | +| ---------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| Search | [.payload.v1.Search.Request](#payload.v1.Search.Request) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | A method to search indexed vectors by a raw vector. | +| SearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | A method to search indexed vectors by ID. | +| StreamSearch | [.payload.v1.Search.Request](#payload.v1.Search.Request) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | A method to search indexed vectors by multiple vectors. | +| StreamSearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | A method to search indexed vectors by multiple IDs. | +| MultiSearch | [.payload.v1.Search.MultiRequest](#payload.v1.Search.MultiRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | A method to search indexed vectors by multiple vectors in a single request. | +| MultiSearchByID | [.payload.v1.Search.MultiIDRequest](#payload.v1.Search.MultiIDRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | A method to search indexed vectors by multiple IDs in a single request. | +| LinearSearch | [.payload.v1.Search.Request](#payload.v1.Search.Request) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | A method to linear search indexed vectors by a raw vector. | +| LinearSearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | A method to linear search indexed vectors by ID. | +| StreamLinearSearch | [.payload.v1.Search.Request](#payload.v1.Search.Request) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | A method to linear search indexed vectors by multiple vectors. | +| StreamLinearSearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | A method to linear search indexed vectors by multiple IDs. | +| MultiLinearSearch | [.payload.v1.Search.MultiRequest](#payload.v1.Search.MultiRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | A method to linear search indexed vectors by multiple vectors in a single request. | +| MultiLinearSearchByID | [.payload.v1.Search.MultiIDRequest](#payload.v1.Search.MultiIDRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | A method to linear search indexed vectors by multiple IDs in a single request. | + + -

Top

## apis/proto/v1/vald/update.proto - - - - - - - - - + ### Update -Update service provides ways to update indexed vectors. -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Update | [.payload.v1.Update.Request](#payload-v1-Update-Request) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to update an indexed vector. | -| StreamUpdate | [.payload.v1.Update.Request](#payload-v1-Update-Request) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to update multiple indexed vectors by bidirectional streaming. | -| MultiUpdate | [.payload.v1.Update.MultiRequest](#payload-v1-Update-MultiRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to update multiple indexed vectors in a single request. | - - +Update service provides ways to update indexed vectors. +| Method Name | Request Type | Response Type | Description | +| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| Update | [.payload.v1.Update.Request](#payload.v1.Update.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to update an indexed vector. | +| StreamUpdate | [.payload.v1.Update.Request](#payload.v1.Update.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to update multiple indexed vectors by bidirectional streaming. | +| MultiUpdate | [.payload.v1.Update.MultiRequest](#payload.v1.Update.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to update multiple indexed vectors in a single request. | + -

Top

## apis/proto/v1/vald/upsert.proto - - - - - - - - - + ### Upsert -Upsert service provides ways to insert/update vectors. - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| Upsert | [.payload.v1.Upsert.Request](#payload-v1-Upsert-Request) | [.payload.v1.Object.Location](#payload-v1-Object-Location) | A method to insert/update a vector. | -| StreamUpsert | [.payload.v1.Upsert.Request](#payload-v1-Upsert-Request) stream | [.payload.v1.Object.StreamLocation](#payload-v1-Object-StreamLocation) stream | A method to insert/update multiple vectors by bidirectional streaming. | -| MultiUpsert | [.payload.v1.Upsert.MultiRequest](#payload-v1-Upsert-MultiRequest) | [.payload.v1.Object.Locations](#payload-v1-Object-Locations) | A method to insert/update multiple vectors in a single request. | - - +Upsert service provides ways to insert/update vectors. +| Method Name | Request Type | Response Type | Description | +| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| Upsert | [.payload.v1.Upsert.Request](#payload.v1.Upsert.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | A method to insert/update a vector. | +| StreamUpsert | [.payload.v1.Upsert.Request](#payload.v1.Upsert.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | A method to insert/update multiple vectors by bidirectional streaming. | +| MultiUpsert | [.payload.v1.Upsert.MultiRequest](#payload.v1.Upsert.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | A method to insert/update multiple vectors in a single request. | ## Scalar Value Types -| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | -| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | -| double | | double | double | float | float64 | double | float | Float | -| float | | float | float | float | float32 | float | float | Float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | -| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | - +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ---------- | ----------- | ------- | ---------- | -------------- | ------------------------------ | +| double | | double | double | float | float64 | double | float | Float | +| float | | float | float | float | float32 | float | float | Float | +| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | +| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | +| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | +| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | +| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | +| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | +| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | diff --git a/apis/grpc/v1/agent/core/agent_vtproto.pb.go b/apis/grpc/v1/agent/core/agent_vtproto.pb.go index 4d6f03c9a8..c0b0d0e2ed 100644 --- a/apis/grpc/v1/agent/core/agent_vtproto.pb.go +++ b/apis/grpc/v1/agent/core/agent_vtproto.pb.go @@ -42,11 +42,11 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type AgentClient interface { - // Represent the create index RPC. + // Represent the creating index RPC. CreateIndex(ctx context.Context, in *payload.Control_CreateIndexRequest, opts ...grpc.CallOption) (*payload.Empty, error) - // Represent the save index RPC. + // Represent the saving index RPC. SaveIndex(ctx context.Context, in *payload.Empty, opts ...grpc.CallOption) (*payload.Empty, error) - // Represent the create and save index RPC. + // Represent the creating and saving index RPC. CreateAndSaveIndex(ctx context.Context, in *payload.Control_CreateIndexRequest, opts ...grpc.CallOption) (*payload.Empty, error) // Represent the RPC to get the agent index information. IndexInfo(ctx context.Context, in *payload.Empty, opts ...grpc.CallOption) (*payload.Info_Index_Count, error) @@ -100,11 +100,11 @@ func (c *agentClient) IndexInfo(ctx context.Context, in *payload.Empty, opts ... // All implementations must embed UnimplementedAgentServer // for forward compatibility type AgentServer interface { - // Represent the create index RPC. + // Represent the creating index RPC. CreateIndex(context.Context, *payload.Control_CreateIndexRequest) (*payload.Empty, error) - // Represent the save index RPC. + // Represent the saving index RPC. SaveIndex(context.Context, *payload.Empty) (*payload.Empty, error) - // Represent the create and save index RPC. + // Represent the creating and saving index RPC. CreateAndSaveIndex(context.Context, *payload.Control_CreateIndexRequest) (*payload.Empty, error) // Represent the RPC to get the agent index information. IndexInfo(context.Context, *payload.Empty) (*payload.Info_Index_Count, error) diff --git a/apis/grpc/v1/payload/interface.go b/apis/grpc/v1/payload/interface.go index f5b0f3a646..0ce9770a92 100644 --- a/apis/grpc/v1/payload/interface.go +++ b/apis/grpc/v1/payload/interface.go @@ -1,16 +1,18 @@ +// // Copyright (C) 2019-2022 vdaas.org vald team // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// https://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +// package payload import proto "google.golang.org/protobuf/proto" diff --git a/apis/grpc/v1/payload/payload.pb.go b/apis/grpc/v1/payload/payload.pb.go index c2cc8ce114..2e35b671a9 100644 --- a/apis/grpc/v1/payload/payload.pb.go +++ b/apis/grpc/v1/payload/payload.pb.go @@ -2249,7 +2249,7 @@ type Object_VectorRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The vector ID to be fetch. + // The vector ID to be fetched. Id *Object_ID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Filter configurations. Filters *Filter_Config `protobuf:"bytes,2,opt,name=filters,proto3" json:"filters,omitempty"` @@ -3183,11 +3183,11 @@ type Discoverer_Request struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The agent name to be discover. + // The agent name to be discovered. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // The namespace to be discover. + // The namespace to be discovered. Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - // The node to be discover. + // The node to be discovered. Node string `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"` } diff --git a/apis/proto/v1/agent/core/agent.proto b/apis/proto/v1/agent/core/agent.proto index 0bc9f6bcfb..ba40a7a3a0 100644 --- a/apis/proto/v1/agent/core/agent.proto +++ b/apis/proto/v1/agent/core/agent.proto @@ -29,18 +29,18 @@ option java_outer_classname = "ValdAgent"; // Represent the agent service. service Agent { - // Represent the create index RPC. + // Represent the creating index RPC. rpc CreateIndex(payload.v1.Control.CreateIndexRequest) returns (payload.v1.Empty) { option (google.api.http).get = "/index/create"; } - // Represent the save index RPC. + // Represent the saving index RPC. rpc SaveIndex(payload.v1.Empty) returns (payload.v1.Empty) { option (google.api.http).get = "/index/save"; } - // Represent the create and save index RPC. + // Represent the creating and saving index RPC. rpc CreateAndSaveIndex(payload.v1.Control.CreateIndexRequest) returns (payload.v1.Empty) { option (google.api.http).get = "/index/createandsave"; diff --git a/apis/proto/v1/payload/payload.proto b/apis/proto/v1/payload/payload.proto index 89a0b0792a..5c8a69bba5 100644 --- a/apis/proto/v1/payload/payload.proto +++ b/apis/proto/v1/payload/payload.proto @@ -40,7 +40,7 @@ message Search { // Represent the multiple search request. message MultiRequest { // Represent the multiple search request content. - repeated Request requests = 1; + repeated Request requests = 1; } // Represent a search by ID request. @@ -52,9 +52,9 @@ message Search { } // Represent the multiple search by ID request. - message MultiIDRequest { + message MultiIDRequest { // Represent the multiple search by ID request content. - repeated IDRequest requests = 1; + repeated IDRequest requests = 1; } // Represent a search by binary object request. @@ -68,9 +68,9 @@ message Search { } // Represent the multiple search by binary object request. - message MultiObjectRequest { + message MultiObjectRequest { // Represent the multiple search by binary object request content. - repeated ObjectRequest requests = 1; + repeated ObjectRequest requests = 1; } // Represent search configuration. @@ -102,9 +102,9 @@ message Search { } // Represent multiple search responses. - message Responses { + message Responses { // Represent the multiple search response content. - repeated Response responses = 1; + repeated Response responses = 1; } // Represent stream search response. @@ -130,9 +130,9 @@ message Filter { } // Represent filter configuration. - message Config { + message Config { // Represent the filter target configuration. - repeated Target targets = 1; + repeated Target targets = 1; } } @@ -299,7 +299,7 @@ message Object { // Represent a request to fetch raw vector. message VectorRequest { - // The vector ID to be fetch. + // The vector ID to be fetched. ID id = 1 [ (validate.rules).repeated .min_items = 2 ]; // Filter configurations. Filter.Config filters = 2; @@ -414,11 +414,11 @@ message Discoverer { // Represent the dicoverer request. message Request { - // The agent name to be discover. + // The agent name to be discovered. string name = 1 [ (validate.rules).string.min_len = 1 ]; - // The namespace to be discover. + // The namespace to be discovered. string namespace = 2; - // The node to be discover. + // The node to be discovered. string node = 3; } } diff --git a/apis/swagger/v1/agent/core/apis/proto/v1/agent/core/agent.swagger.json b/apis/swagger/v1/agent/core/apis/proto/v1/agent/core/agent.swagger.json index 7d93adb8a2..6b96c5c8af 100644 --- a/apis/swagger/v1/agent/core/apis/proto/v1/agent/core/agent.swagger.json +++ b/apis/swagger/v1/agent/core/apis/proto/v1/agent/core/agent.swagger.json @@ -4,16 +4,12 @@ "title": "apis/proto/v1/agent/core/agent.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/index/create": { "get": { - "summary": "Represent the create index RPC.", + "summary": "Represent the creating index RPC.", "operationId": "Agent_CreateIndex", "responses": { "200": { @@ -39,14 +35,12 @@ "format": "int64" } ], - "tags": [ - "Agent" - ] + "tags": ["Agent"] } }, "/index/createandsave": { "get": { - "summary": "Represent the create and save index RPC.", + "summary": "Represent the creating and saving index RPC.", "operationId": "Agent_CreateAndSaveIndex", "responses": { "200": { @@ -72,9 +66,7 @@ "format": "int64" } ], - "tags": [ - "Agent" - ] + "tags": ["Agent"] } }, "/index/info": { @@ -95,14 +87,12 @@ } } }, - "tags": [ - "Agent" - ] + "tags": ["Agent"] } }, "/index/save": { "get": { - "summary": "Represent the save index RPC.", + "summary": "Represent the saving index RPC.", "operationId": "Agent_SaveIndex", "responses": { "200": { @@ -118,9 +108,7 @@ } } }, - "tags": [ - "Agent" - ] + "tags": ["Agent"] } } }, diff --git a/apis/swagger/v1/agent/sidecar/apis/proto/v1/agent/sidecar/sidecar.swagger.json b/apis/swagger/v1/agent/sidecar/apis/proto/v1/agent/sidecar/sidecar.swagger.json index 5b167cef79..6c325ad190 100644 --- a/apis/swagger/v1/agent/sidecar/apis/proto/v1/agent/sidecar/sidecar.swagger.json +++ b/apis/swagger/v1/agent/sidecar/apis/proto/v1/agent/sidecar/sidecar.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/agent/sidecar/sidecar.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": {}, "definitions": { "protobufAny": { diff --git a/apis/swagger/v1/discoverer/apis/proto/v1/discoverer/discoverer.swagger.json b/apis/swagger/v1/discoverer/apis/proto/v1/discoverer/discoverer.swagger.json index 4efe206edb..09597a656f 100644 --- a/apis/swagger/v1/discoverer/apis/proto/v1/discoverer/discoverer.swagger.json +++ b/apis/swagger/v1/discoverer/apis/proto/v1/discoverer/discoverer.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/discoverer/discoverer.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/discover/nodes": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Discoverer" - ] + "tags": ["Discoverer"] } }, "/discover/pods": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Discoverer" - ] + "tags": ["Discoverer"] } } }, @@ -252,15 +244,15 @@ "properties": { "name": { "type": "string", - "description": "The agent name to be discover." + "description": "The agent name to be discovered." }, "namespace": { "type": "string", - "description": "The namespace to be discover." + "description": "The namespace to be discovered." }, "node": { "type": "string", - "description": "The node to be discover." + "description": "The node to be discovered." } }, "description": "Represent the dicoverer request." diff --git a/apis/swagger/v1/filter/egress/apis/proto/v1/filter/egress/egress_filter.swagger.json b/apis/swagger/v1/filter/egress/apis/proto/v1/filter/egress/egress_filter.swagger.json index 3d932c1687..dd08367d95 100644 --- a/apis/swagger/v1/filter/egress/apis/proto/v1/filter/egress/egress_filter.swagger.json +++ b/apis/swagger/v1/filter/egress/apis/proto/v1/filter/egress/egress_filter.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/filter/egress/egress_filter.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/filter/egress/distance": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/filter/egress/vector": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } } }, diff --git a/apis/swagger/v1/filter/ingress/apis/proto/v1/filter/ingress/ingress_filter.swagger.json b/apis/swagger/v1/filter/ingress/apis/proto/v1/filter/ingress/ingress_filter.swagger.json index b866983811..1b645db988 100644 --- a/apis/swagger/v1/filter/ingress/apis/proto/v1/filter/ingress/ingress_filter.swagger.json +++ b/apis/swagger/v1/filter/ingress/apis/proto/v1/filter/ingress/ingress_filter.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/filter/ingress/ingress_filter.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/filter/ingress/object": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/filter/ingress/vector": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } } }, diff --git a/apis/swagger/v1/manager/index/apis/proto/v1/manager/index/index_manager.swagger.json b/apis/swagger/v1/manager/index/apis/proto/v1/manager/index/index_manager.swagger.json index dfeeae143a..081ab316f0 100644 --- a/apis/swagger/v1/manager/index/apis/proto/v1/manager/index/index_manager.swagger.json +++ b/apis/swagger/v1/manager/index/apis/proto/v1/manager/index/index_manager.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/manager/index/index_manager.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/index/info": { "get": { @@ -29,9 +25,7 @@ } } }, - "tags": [ - "Index" - ] + "tags": ["Index"] } } }, diff --git a/apis/swagger/v1/payload/apis/proto/v1/payload/payload.swagger.json b/apis/swagger/v1/payload/apis/proto/v1/payload/payload.swagger.json index 1666450e6d..a5331282dc 100644 --- a/apis/swagger/v1/payload/apis/proto/v1/payload/payload.swagger.json +++ b/apis/swagger/v1/payload/apis/proto/v1/payload/payload.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/payload/payload.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": {}, "definitions": { "protobufAny": { diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/filter.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/filter.swagger.json index bfb8b8b573..0d8339f902 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/filter.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/filter.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/filter.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/insert/object": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/insert/object/multiple": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/search/object": { @@ -105,9 +97,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/search/object/multiple": { @@ -138,9 +128,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/update/object": { @@ -171,9 +159,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/update/object/multiple": { @@ -204,9 +190,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/upsert/object": { @@ -237,9 +221,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } }, "/upsert/object/multiple": { @@ -270,9 +252,7 @@ } } ], - "tags": [ - "Filter" - ] + "tags": ["Filter"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/insert.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/insert.swagger.json index fe029df9c6..8b6b796b3f 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/insert.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/insert.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/insert.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/insert": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Insert" - ] + "tags": ["Insert"] } }, "/insert/multiple": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Insert" - ] + "tags": ["Insert"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/object.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/object.swagger.json index 6772a8fb88..d2e3e1181e 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/object.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/object.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/object.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/exists/{id}": { "get": { @@ -37,9 +33,7 @@ "type": "string" } ], - "tags": [ - "Object" - ] + "tags": ["Object"] } }, "/object/{id.id}": { @@ -68,9 +62,7 @@ "type": "string" } ], - "tags": [ - "Object" - ] + "tags": ["Object"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/remove.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/remove.swagger.json index d9a073bb76..42c7998ded 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/remove.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/remove.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/remove.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/remove": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Remove" - ] + "tags": ["Remove"] } }, "/remove/multiple": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Remove" - ] + "tags": ["Remove"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/search.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/search.swagger.json index 8e632bc896..3d2ef2d35b 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/search.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/search.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/search.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/linearsearch": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/linearsearch/id": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/linearsearch/id/multiple": { @@ -105,9 +97,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/linearsearch/multiple": { @@ -138,9 +128,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/search": { @@ -171,9 +159,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/search/id": { @@ -204,9 +190,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/search/id/multiple": { @@ -237,9 +221,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } }, "/search/multiple": { @@ -270,9 +252,7 @@ } } ], - "tags": [ - "Search" - ] + "tags": ["Search"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/update.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/update.swagger.json index 0fe500869b..b18bd9a128 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/update.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/update.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/update.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/update": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Update" - ] + "tags": ["Update"] } }, "/update/multiple": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Update" - ] + "tags": ["Update"] } } }, diff --git a/apis/swagger/v1/vald/apis/proto/v1/vald/upsert.swagger.json b/apis/swagger/v1/vald/apis/proto/v1/vald/upsert.swagger.json index 2c89922b2c..c6ae1946c0 100644 --- a/apis/swagger/v1/vald/apis/proto/v1/vald/upsert.swagger.json +++ b/apis/swagger/v1/vald/apis/proto/v1/vald/upsert.swagger.json @@ -4,12 +4,8 @@ "title": "apis/proto/v1/vald/upsert.proto", "version": "version not set" }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/upsert": { "post": { @@ -39,9 +35,7 @@ } } ], - "tags": [ - "Upsert" - ] + "tags": ["Upsert"] } }, "/upsert/multiple": { @@ -72,9 +66,7 @@ } } ], - "tags": [ - "Upsert" - ] + "tags": ["Upsert"] } } }, diff --git a/charts/vald-helm-operator/README.md b/charts/vald-helm-operator/README.md index 97a1571fa3..c4380b61d1 100644 --- a/charts/vald-helm-operator/README.md +++ b/charts/vald-helm-operator/README.md @@ -1,21 +1,18 @@ -vald-helm-operator -=== +# vald-helm-operator This is a Helm chart to install vald-helm-operator. Current chart version is `v1.6.3` -Table of Contents ---- +## Table of Contents - [Install](#install) - [Custom Resources](#custom-resources) - - [ValdRelease](#valdrelease) - - [ValdHelmOperatorRelease](#valdhelmoperatorrelease) + - [ValdRelease](#valdrelease) + - [ValdHelmOperatorRelease](#valdhelmoperatorrelease) - [Configuration](#configuration) -Install ---- +## Install Add Vald Helm repository @@ -25,8 +22,7 @@ Run the following command to install the chart, $ helm install vald-helm-operator-release vald/vald-helm-operator -Upgrading the version ---- +## Upgrading the version Please upgrade the CRDs first because Helm doesn't have a support to upgrade CRDs. @@ -40,8 +36,7 @@ If you're using `valdhelmoperatorrelease` (or `vhor`) resource, please update th On the other hand, please update the operator's deployment manually. -Custom Resources ---- +## Custom Resources ### ValdRelease @@ -73,60 +68,59 @@ metadata: spec: {} ``` -Configuration ---- - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | affinity | -| annotations | object | `{}` | deployment annotations | -| enableLeaderElection | bool | `true` | enable leader election for controller manager. | -| enableMetrics | bool | `true` | enable metrics endpoint | -| healthPort | int | `8081` | port of health endpoint | -| image.pullPolicy | string | `"Always"` | image pull policy | -| image.repository | string | `"vdaas/vald-helm-operator"` | image repository | -| image.tag | string | `"v1.6.3"` | image tag | -| leaderElectionID | string | `"vald-helm-operator"` | name of the configmap that is used for holding the leader lock. | -| livenessProbe.enabled | bool | `true` | enable liveness probe. | -| livenessProbe.failureThreshold | int | `2` | liveness probe failure threshold | -| livenessProbe.httpGet.path | string | `"/healthz"` | readiness probe path | -| livenessProbe.httpGet.port | string | `"health"` | readiness probe port | -| livenessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | -| livenessProbe.initialDelaySeconds | int | `15` | liveness probe initial delay seconds | -| livenessProbe.periodSeconds | int | `20` | liveness probe period seconds | -| livenessProbe.successThreshold | int | `1` | liveness probe success threshold | -| livenessProbe.timeoutSeconds | int | `5` | liveness probe timeout seconds | -| logging.format | string | `"console"` | logging format of operator (console or json) | -| logging.level | string | `"info"` | logging level of operator (debug, info, or error) | -| logging.stacktraceLevel | string | `"error"` | minimum log level triggers stacktrace generation | -| maxConcurrentReconciles | int | `1` | max number of concurrent reconciles | -| metricsPort | int | `6061` | port of metrics endpoint | -| name | string | `"vald-helm-operator"` | name of the deployment | -| namespaced | bool | `true` | if it is true, operator will behave as a namespace-scoped operator, if it is false, it will behave as a cluster-scoped operator. | -| nodeSelector | object | `{}` | node labels for pod assignment | -| podAnnotations | object | `{}` | pod annotations | -| podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| rbac.create | bool | `true` | required roles and rolebindings will be created | -| rbac.name | string | `"vald-helm-operator"` | name of roles and rolebindings | -| readinessProbe.enabled | bool | `true` | enable readiness probe. | -| readinessProbe.failureThreshold | int | `2` | liveness probe failure threshold | -| readinessProbe.httpGet.path | string | `"/readyz"` | readiness probe path | -| readinessProbe.httpGet.port | string | `"health"` | readiness probe port | -| readinessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | -| readinessProbe.initialDelaySeconds | int | `5` | liveness probe initial delay seconds | -| readinessProbe.periodSeconds | int | `10` | liveness probe period seconds | -| readinessProbe.successThreshold | int | `1` | liveness probe success threshold | -| readinessProbe.timeoutSeconds | int | `5` | liveness probe timeout seconds | -| reconcilePeriod | string | `"1m"` | reconcile duration of operator | -| replicas | int | `2` | number of replicas | -| resources | object | `{"limits":{"cpu":"300m","memory":"300Mi"},"requests":{"cpu":"200m","memory":"200Mi"}}` | kubernetes resources of pod | -| securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| service.annotations | object | `{}` | service annotations | -| service.enabled | bool | `true` | service enabled | -| service.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| service.labels | object | `{}` | service labels | -| service.type | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| serviceAccount.create | bool | `true` | service account will be created | -| serviceAccount.name | string | `"vald-helm-operator"` | name of service account | -| tolerations | list | `[]` | tolerations | -| watchNamespaces | string | `""` | comma separated names of namespaces to watch, if it is empty, the namespace that the operator exists in is used. | +## Configuration + +| Key | Type | Default | Description | +| ---------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | +| affinity | object | `{}` | affinity | +| annotations | object | `{}` | deployment annotations | +| enableLeaderElection | bool | `true` | enable leader election for controller manager. | +| enableMetrics | bool | `true` | enable metrics endpoint | +| healthPort | int | `8081` | port of health endpoint | +| image.pullPolicy | string | `"Always"` | image pull policy | +| image.repository | string | `"vdaas/vald-helm-operator"` | image repository | +| image.tag | string | `"v1.6.3"` | image tag | +| leaderElectionID | string | `"vald-helm-operator"` | name of the configmap that is used for holding the leader lock. | +| livenessProbe.enabled | bool | `true` | enable liveness probe. | +| livenessProbe.failureThreshold | int | `2` | liveness probe failure threshold | +| livenessProbe.httpGet.path | string | `"/healthz"` | readiness probe path | +| livenessProbe.httpGet.port | string | `"health"` | readiness probe port | +| livenessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | +| livenessProbe.initialDelaySeconds | int | `15` | liveness probe initial delay seconds | +| livenessProbe.periodSeconds | int | `20` | liveness probe period seconds | +| livenessProbe.successThreshold | int | `1` | liveness probe success threshold | +| livenessProbe.timeoutSeconds | int | `5` | liveness probe timeout seconds | +| logging.format | string | `"console"` | logging format of operator (console or json) | +| logging.level | string | `"info"` | logging level of operator (debug, info, or error) | +| logging.stacktraceLevel | string | `"error"` | minimum log level triggers stacktrace generation | +| maxConcurrentReconciles | int | `1` | max number of concurrent reconciles | +| metricsPort | int | `6061` | port of metrics endpoint | +| name | string | `"vald-helm-operator"` | name of the deployment | +| namespaced | bool | `true` | if it is true, operator will behave as a namespace-scoped operator, if it is false, it will behave as a cluster-scoped operator. | +| nodeSelector | object | `{}` | node labels for pod assignment | +| podAnnotations | object | `{}` | pod annotations | +| podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| rbac.create | bool | `true` | required roles and rolebindings will be created | +| rbac.name | string | `"vald-helm-operator"` | name of roles and rolebindings | +| readinessProbe.enabled | bool | `true` | enable readiness probe. | +| readinessProbe.failureThreshold | int | `2` | liveness probe failure threshold | +| readinessProbe.httpGet.path | string | `"/readyz"` | readiness probe path | +| readinessProbe.httpGet.port | string | `"health"` | readiness probe port | +| readinessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | +| readinessProbe.initialDelaySeconds | int | `5` | liveness probe initial delay seconds | +| readinessProbe.periodSeconds | int | `10` | liveness probe period seconds | +| readinessProbe.successThreshold | int | `1` | liveness probe success threshold | +| readinessProbe.timeoutSeconds | int | `5` | liveness probe timeout seconds | +| reconcilePeriod | string | `"1m"` | reconcile duration of operator | +| replicas | int | `2` | number of replicas | +| resources | object | `{"limits":{"cpu":"300m","memory":"300Mi"},"requests":{"cpu":"200m","memory":"200Mi"}}` | kubernetes resources of pod | +| securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| service.annotations | object | `{}` | service annotations | +| service.enabled | bool | `true` | service enabled | +| service.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| service.labels | object | `{}` | service labels | +| service.type | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| serviceAccount.create | bool | `true` | service account will be created | +| serviceAccount.name | string | `"vald-helm-operator"` | name of service account | +| tolerations | list | `[]` | tolerations | +| watchNamespaces | string | `""` | comma separated names of namespaces to watch, if it is empty, the namespace that the operator exists in is used. | diff --git a/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml b/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml index ffe904d5d4..ab77359336 100644 --- a/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml +++ b/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml @@ -49,10 +49,10 @@ spec: type: object properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: string metadata: type: object diff --git a/charts/vald-helm-operator/crds/valdrelease.yaml b/charts/vald-helm-operator/crds/valdrelease.yaml index 57d0c325ea..5455317ad5 100644 --- a/charts/vald-helm-operator/crds/valdrelease.yaml +++ b/charts/vald-helm-operator/crds/valdrelease.yaml @@ -53,10 +53,10 @@ spec: type: object properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" type: string metadata: type: object diff --git a/charts/vald-helm-operator/values.schema.json b/charts/vald-helm-operator/values.schema.json index c1279b7825..b4a0383031 100644 --- a/charts/vald-helm-operator/values.schema.json +++ b/charts/vald-helm-operator/values.schema.json @@ -1 +1,227 @@ -{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"affinity":{"type":"object","description":"affinity"},"annotations":{"type":"object","description":"deployment annotations"},"enableLeaderElection":{"type":"boolean","description":"enable leader election for controller manager."},"enableMetrics":{"type":"boolean","description":"enable metrics endpoint"},"healthPort":{"type":"integer","description":"port of health endpoint"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag"}}},"leaderElectionID":{"type":"string","description":"name of the configmap that is used for holding the leader lock."},"livenessProbe":{"type":"object","properties":{"enabled":{"type":"boolean","description":"enable liveness probe."},"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format of operator (console or json)","enum":["console","json"]},"level":{"type":"string","description":"logging level of operator (debug, info, or error)","enum":["debug","info","error"]},"stacktraceLevel":{"type":"string","description":"minimum log level triggers stacktrace generation","enum":["debug","info","error"]}}},"maxConcurrentReconciles":{"type":"integer","description":"max number of concurrent reconciles"},"metricsPort":{"type":"integer","description":"port of metrics endpoint"},"name":{"type":"string","description":"name of the deployment"},"namespaced":{"type":"boolean","description":"if it is true, operator will behave as a namespace-scoped operator, if it is false, it will behave as a cluster-scoped operator."},"nodeSelector":{"type":"object","description":"node labels for pod assignment"},"podAnnotations":{"type":"object","description":"pod annotations"},"podSecurityContext":{"type":"object","description":"security context for pod"},"rbac":{"type":"object","properties":{"create":{"type":"boolean","description":"required roles and rolebindings will be created"},"name":{"type":"string","description":"name of roles and rolebindings"}}},"readinessProbe":{"type":"object","properties":{"enabled":{"type":"boolean","description":"enable readiness probe."},"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"reconcilePeriod":{"type":"string","description":"reconcile duration of operator"},"replicas":{"type":"integer","description":"number of replicas"},"resources":{"type":"object","description":"kubernetes resources of pod"},"securityContext":{"type":"object","description":"security context for container"},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"enabled":{"type":"boolean","description":"service enabled"},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"labels":{"type":"object","description":"service labels"},"type":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"serviceAccount":{"type":"object","properties":{"create":{"type":"boolean","description":"service account will be created"},"name":{"type":"string","description":"name of service account"}}},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"watchNamespaces":{"type":"string","description":"comma separated names of namespaces to watch, if it is empty, the namespace that the operator exists in is used."}}} +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Values", + "type": "object", + "properties": { + "affinity": { "type": "object", "description": "affinity" }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "enableLeaderElection": { + "type": "boolean", + "description": "enable leader election for controller manager." + }, + "enableMetrics": { + "type": "boolean", + "description": "enable metrics endpoint" + }, + "healthPort": { + "type": "integer", + "description": "port of health endpoint" + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { "type": "string", "description": "image repository" }, + "tag": { "type": "string", "description": "image tag" } + } + }, + "leaderElectionID": { + "type": "string", + "description": "name of the configmap that is used for holding the leader lock." + }, + "livenessProbe": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "enable liveness probe." + }, + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { "type": "string", "description": "readiness probe path" }, + "port": { "type": "string", "description": "readiness probe port" }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format of operator (console or json)", + "enum": ["console", "json"] + }, + "level": { + "type": "string", + "description": "logging level of operator (debug, info, or error)", + "enum": ["debug", "info", "error"] + }, + "stacktraceLevel": { + "type": "string", + "description": "minimum log level triggers stacktrace generation", + "enum": ["debug", "info", "error"] + } + } + }, + "maxConcurrentReconciles": { + "type": "integer", + "description": "max number of concurrent reconciles" + }, + "metricsPort": { + "type": "integer", + "description": "port of metrics endpoint" + }, + "name": { "type": "string", "description": "name of the deployment" }, + "namespaced": { + "type": "boolean", + "description": "if it is true, operator will behave as a namespace-scoped operator, if it is false, it will behave as a cluster-scoped operator." + }, + "nodeSelector": { + "type": "object", + "description": "node labels for pod assignment" + }, + "podAnnotations": { "type": "object", "description": "pod annotations" }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "rbac": { + "type": "object", + "properties": { + "create": { + "type": "boolean", + "description": "required roles and rolebindings will be created" + }, + "name": { + "type": "string", + "description": "name of roles and rolebindings" + } + } + }, + "readinessProbe": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "enable readiness probe." + }, + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { "type": "string", "description": "readiness probe path" }, + "port": { "type": "string", "description": "readiness probe port" }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "reconcilePeriod": { + "type": "string", + "description": "reconcile duration of operator" + }, + "replicas": { "type": "integer", "description": "number of replicas" }, + "resources": { + "type": "object", + "description": "kubernetes resources of pod" + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "enabled": { "type": "boolean", "description": "service enabled" }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "labels": { "type": "object", "description": "service labels" }, + "type": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + } + } + }, + "serviceAccount": { + "type": "object", + "properties": { + "create": { + "type": "boolean", + "description": "service account will be created" + }, + "name": { "type": "string", "description": "name of service account" } + } + }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "watchNamespaces": { + "type": "string", + "description": "comma separated names of namespaces to watch, if it is empty, the namespace that the operator exists in is used." + } + } +} diff --git a/charts/vald/README.md b/charts/vald/README.md index 1ffa7bf617..3111eb5d48 100644 --- a/charts/vald/README.md +++ b/charts/vald/README.md @@ -1,20 +1,17 @@ -Vald -=== +# Vald This is a Helm chart to install Vald components. Current chart version is `v1.6.3` -Table of Contents ---- +## Table of Contents - [Install](#install) - [Configuration](#configuration) - - [Overview](#overview) - - [Parameters](#parameters) + - [Overview](#overview) + - [Parameters](#parameters) -Install ---- +## Install Add Vald Helm repository @@ -24,724 +21,723 @@ Run the following command to install the chart, $ helm install vald-cluster vald/vald -Configuration ---- +## Configuration ### Overview `values.yaml` is composed of the following sections: - `defaults` - - default configurations of common parts - - be overridden by the fields in each components' configurations + - default configurations of common parts + - be overridden by the fields in each components' configurations - `gateway` - - configurations of gateways - - `filter` - - `lb` + - configurations of gateways + - `filter` + - `lb` - `agent` - - configurations of vald-agent + - configurations of vald-agent - `discoverer` - - configurations of vald-discoverer + - configurations of vald-discoverer - `manager` - - configurations of manager components - - `index` + - configurations of manager components + - `index` ### Parameters -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| agent.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | -| agent.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | -| agent.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | -| agent.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| agent.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-agent-ngt"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | -| agent.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | -| agent.annotations | object | `{}` | deployment annotations | -| agent.enabled | bool | `true` | agent enabled | -| agent.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | -| agent.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| agent.hpa.enabled | bool | `false` | HPA enabled | -| agent.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | -| agent.image.pullPolicy | string | `"Always"` | image pull policy | -| agent.image.repository | string | `"vdaas/vald-agent-ngt"` | image repository | -| agent.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| agent.initContainers | list | `[]` | init containers | -| agent.kind | string | `"StatefulSet"` | deployment kind: Deployment, DaemonSet or StatefulSet | -| agent.logging | object | `{}` | logging config (overrides defaults.logging) | -| agent.maxReplicas | int | `300` | maximum number of replicas. if HPA is disabled, this value will be ignored. | -| agent.maxUnavailable | string | `"1"` | maximum number of unavailable replicas | -| agent.minReplicas | int | `20` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | -| agent.name | string | `"vald-agent-ngt"` | name of agent deployment | -| agent.ngt.auto_create_index_pool_size | int | `10000` | batch process pool size of automatic create index operation | -| agent.ngt.auto_index_check_duration | string | `"30m"` | check duration of automatic indexing | -| agent.ngt.auto_index_duration_limit | string | `"24h"` | limit duration of automatic indexing | -| agent.ngt.auto_index_length | int | `100` | number of cache to trigger automatic indexing | -| agent.ngt.auto_save_index_duration | string | `"35m"` | duration of automatic save index | -| agent.ngt.bulk_insert_chunk_size | int | `10` | bulk insert chunk size | -| agent.ngt.creation_edge_size | int | `20` | creation edge size | -| agent.ngt.default_epsilon | float | `0.1` | default epsilon used for search | -| agent.ngt.default_pool_size | int | `10000` | default create index batch pool size | -| agent.ngt.default_radius | float | `-1` | default radius used for search | -| agent.ngt.dimension | int | `4096` | vector dimension | -| agent.ngt.distance_type | string | `"l2"` | distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants | -| agent.ngt.enable_copy_on_write | bool | `false` | enable copy on write saving for more stable backup | -| agent.ngt.enable_in_memory_mode | bool | `true` | in-memory mode enabled | -| agent.ngt.enable_proactive_gc | bool | `false` | enable proactive GC call for reducing heap memory allocation | -| agent.ngt.index_path | string | `""` | path to index data | -| agent.ngt.initial_delay_max_duration | string | `"3m"` | maximum duration for initial delay | -| agent.ngt.kvsdb.concurrency | int | `6` | kvsdb processing concurrency | -| agent.ngt.load_index_timeout_factor | string | `"1ms"` | a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) * (factor). | -| agent.ngt.max_load_index_timeout | string | `"10m"` | maximum duration of load index timeout | -| agent.ngt.min_load_index_timeout | string | `"3m"` | minimum duration of load index timeout | -| agent.ngt.object_type | string | `"float"` | object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference | -| agent.ngt.search_edge_size | int | `10` | search edge size | -| agent.ngt.vqueue.delete_buffer_pool_size | int | `5000` | delete slice pool buffer size | -| agent.ngt.vqueue.insert_buffer_pool_size | int | `10000` | insert slice pool buffer size | -| agent.nodeName | string | `""` | node name | -| agent.nodeSelector | object | `{}` | node selector | -| agent.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent-ngt"}}}` | observability config (overrides defaults.observability) | -| agent.persistentVolume.accessMode | string | `"ReadWriteOncePod"` | agent pod storage accessMode | -| agent.persistentVolume.enabled | bool | `false` | enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode | -| agent.persistentVolume.mountPropagation | string | `"None"` | agent pod storage mountPropagation | -| agent.persistentVolume.size | string | `"100Gi"` | size of agent pod volume | -| agent.persistentVolume.storageClass | string | `"vald-sc"` | storageClass name for agent pod volume | -| agent.podAnnotations | object | `{}` | pod annotations | -| agent.podManagementPolicy | string | `"OrderedReady"` | pod management policy: OrderedReady or Parallel | -| agent.podPriority.enabled | bool | `true` | agent pod PriorityClass enabled | -| agent.podPriority.value | int | `1000000000` | agent pod PriorityClass value | -| agent.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| agent.progressDeadlineSeconds | int | `600` | progress deadline seconds | -| agent.resources | object | `{"requests":{"cpu":"300m","memory":"4Gi"}}` | compute resources. recommended setting of memory requests = cluster memory * 0.4 / number of agent pods | -| agent.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | -| agent.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | -| agent.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | -| agent.rollingUpdate.partition | int | `0` | StatefulSet partition | -| agent.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":false,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| agent.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{"startupProbe":{"failureThreshold":200,"periodSeconds":5}}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | -| agent.service.annotations | object | `{}` | service annotations | -| agent.service.labels | object | `{}` | service labels | -| agent.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| agent.sidecar.config.auto_backup_duration | string | `"24h"` | auto backup duration | -| agent.sidecar.config.auto_backup_enabled | bool | `true` | auto backup triggered by timer is enabled | -| agent.sidecar.config.blob_storage.bucket | string | `""` | bucket name | -| agent.sidecar.config.blob_storage.cloud_storage.client.credentials_file_path | string | `""` | credentials file path | -| agent.sidecar.config.blob_storage.cloud_storage.client.credentials_json | string | `""` | credentials json | -| agent.sidecar.config.blob_storage.cloud_storage.url | string | `""` | cloud storage url | -| agent.sidecar.config.blob_storage.cloud_storage.write_buffer_size | int | `0` | bytes of the chunks for upload | -| agent.sidecar.config.blob_storage.cloud_storage.write_cache_control | string | `""` | Cache-Control of HTTP Header | -| agent.sidecar.config.blob_storage.cloud_storage.write_content_disposition | string | `""` | Content-Disposition of HTTP Header | -| agent.sidecar.config.blob_storage.cloud_storage.write_content_encoding | string | `""` | the encoding of the blob's content | -| agent.sidecar.config.blob_storage.cloud_storage.write_content_language | string | `""` | the language of blob's content | -| agent.sidecar.config.blob_storage.cloud_storage.write_content_type | string | `""` | MIME type of the blob | -| agent.sidecar.config.blob_storage.s3.access_key | string | `"_AWS_ACCESS_KEY_"` | s3 access key | -| agent.sidecar.config.blob_storage.s3.enable_100_continue | bool | `true` | enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content. | -| agent.sidecar.config.blob_storage.s3.enable_content_md5_validation | bool | `true` | enable the S3 client to add MD5 checksum to upload API calls. | -| agent.sidecar.config.blob_storage.s3.enable_endpoint_discovery | bool | `false` | enable endpoint discovery | -| agent.sidecar.config.blob_storage.s3.enable_endpoint_host_prefix | bool | `true` | enable prefixing request endpoint hosts with modeled information | -| agent.sidecar.config.blob_storage.s3.enable_param_validation | bool | `true` | enables semantic parameter validation | -| agent.sidecar.config.blob_storage.s3.enable_ssl | bool | `true` | enable ssl for s3 session | -| agent.sidecar.config.blob_storage.s3.endpoint | string | `""` | s3 endpoint | -| agent.sidecar.config.blob_storage.s3.force_path_style | bool | `false` | use path-style addressing | -| agent.sidecar.config.blob_storage.s3.max_chunk_size | string | `"64mb"` | s3 download max chunk size | -| agent.sidecar.config.blob_storage.s3.max_part_size | string | `"64mb"` | s3 multipart upload max part size | -| agent.sidecar.config.blob_storage.s3.max_retries | int | `3` | maximum number of retries of s3 client | -| agent.sidecar.config.blob_storage.s3.region | string | `""` | s3 region | -| agent.sidecar.config.blob_storage.s3.secret_access_key | string | `"_AWS_SECRET_ACCESS_KEY_"` | s3 secret access key | -| agent.sidecar.config.blob_storage.s3.token | string | `""` | s3 token | -| agent.sidecar.config.blob_storage.s3.use_accelerate | bool | `false` | enable s3 accelerate feature | -| agent.sidecar.config.blob_storage.s3.use_arn_region | bool | `false` | s3 service client to use the region specified in the ARN | -| agent.sidecar.config.blob_storage.s3.use_dual_stack | bool | `false` | use dual stack | -| agent.sidecar.config.blob_storage.storage_type | string | `"s3"` | storage type | -| agent.sidecar.config.client.net.dialer.dual_stack_enabled | bool | `false` | HTTP client TCP dialer dual stack enabled | -| agent.sidecar.config.client.net.dialer.keepalive | string | `"5m"` | HTTP client TCP dialer keep alive | -| agent.sidecar.config.client.net.dialer.timeout | string | `"5s"` | HTTP client TCP dialer connect timeout | -| agent.sidecar.config.client.net.dns.cache_enabled | bool | `true` | HTTP client TCP DNS cache enabled | -| agent.sidecar.config.client.net.dns.cache_expiration | string | `"24h"` | | -| agent.sidecar.config.client.net.dns.refresh_duration | string | `"1h"` | HTTP client TCP DNS cache expiration | -| agent.sidecar.config.client.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| agent.sidecar.config.client.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| agent.sidecar.config.client.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| agent.sidecar.config.client.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| agent.sidecar.config.client.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| agent.sidecar.config.client.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| agent.sidecar.config.client.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| agent.sidecar.config.client.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| agent.sidecar.config.client.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| agent.sidecar.config.client.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | -| agent.sidecar.config.client.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | -| agent.sidecar.config.client.net.tls.enabled | bool | `false` | TLS enabled | -| agent.sidecar.config.client.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | -| agent.sidecar.config.client.net.tls.key | string | `"/path/to/key"` | TLS key path | -| agent.sidecar.config.client.transport.backoff.backoff_factor | float | `1.1` | backoff backoff factor | -| agent.sidecar.config.client.transport.backoff.backoff_time_limit | string | `"5s"` | backoff time limit | -| agent.sidecar.config.client.transport.backoff.enable_error_log | bool | `true` | backoff error log enabled | -| agent.sidecar.config.client.transport.backoff.initial_duration | string | `"5ms"` | backoff initial duration | -| agent.sidecar.config.client.transport.backoff.jitter_limit | string | `"100ms"` | backoff jitter limit | -| agent.sidecar.config.client.transport.backoff.maximum_duration | string | `"5s"` | backoff maximum duration | -| agent.sidecar.config.client.transport.backoff.retry_count | int | `100` | backoff retry count | -| agent.sidecar.config.client.transport.round_tripper.expect_continue_timeout | string | `"5s"` | expect continue timeout | -| agent.sidecar.config.client.transport.round_tripper.force_attempt_http_2 | bool | `true` | force attempt HTTP2 | -| agent.sidecar.config.client.transport.round_tripper.idle_conn_timeout | string | `"90s"` | timeout for idle connections | -| agent.sidecar.config.client.transport.round_tripper.max_conns_per_host | int | `10` | maximum count of connections per host | -| agent.sidecar.config.client.transport.round_tripper.max_idle_conns | int | `100` | maximum count of idle connections | -| agent.sidecar.config.client.transport.round_tripper.max_idle_conns_per_host | int | `10` | maximum count of idle connections per host | -| agent.sidecar.config.client.transport.round_tripper.max_response_header_size | int | `0` | maximum response header size | -| agent.sidecar.config.client.transport.round_tripper.read_buffer_size | int | `0` | read buffer size | -| agent.sidecar.config.client.transport.round_tripper.response_header_timeout | string | `"5s"` | timeout for response header | -| agent.sidecar.config.client.transport.round_tripper.tls_handshake_timeout | string | `"5s"` | TLS handshake timeout | -| agent.sidecar.config.client.transport.round_tripper.write_buffer_size | int | `0` | write buffer size | -| agent.sidecar.config.compress.compress_algorithm | string | `"gzip"` | compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd` | -| agent.sidecar.config.compress.compression_level | int | `-1` | compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: >= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress. | -| agent.sidecar.config.filename | string | `"_MY_POD_NAME_"` | backup filename | -| agent.sidecar.config.filename_suffix | string | `".tar.gz"` | suffix for backup filename | -| agent.sidecar.config.post_stop_timeout | string | `"2m"` | timeout for observing file changes during post stop | -| agent.sidecar.config.restore_backoff.backoff_factor | float | `1.2` | restore backoff factor | -| agent.sidecar.config.restore_backoff.backoff_time_limit | string | `"30m"` | restore backoff time limit | -| agent.sidecar.config.restore_backoff.enable_error_log | bool | `true` | restore backoff log enabled | -| agent.sidecar.config.restore_backoff.initial_duration | string | `"1s"` | restore backoff initial duration | -| agent.sidecar.config.restore_backoff.jitter_limit | string | `"10s"` | restore backoff jitter limit | -| agent.sidecar.config.restore_backoff.maximum_duration | string | `"1m"` | restore backoff maximum duration | -| agent.sidecar.config.restore_backoff.retry_count | int | `100` | restore backoff retry count | -| agent.sidecar.config.restore_backoff_enabled | bool | `false` | restore backoff enabled | -| agent.sidecar.config.watch_enabled | bool | `true` | auto backup triggered by file changes is enabled | -| agent.sidecar.enabled | bool | `false` | sidecar enabled | -| agent.sidecar.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"AWS_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"access-key","name":"aws-secret"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"secret-access-key","name":"aws-secret"}}}]` | environment variables | -| agent.sidecar.image.pullPolicy | string | `"Always"` | image pull policy | -| agent.sidecar.image.repository | string | `"vdaas/vald-agent-sidecar"` | image repository | -| agent.sidecar.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| agent.sidecar.initContainerEnabled | bool | `false` | sidecar on initContainer mode enabled. | -| agent.sidecar.logging | object | `{}` | logging config (overrides defaults.logging) | -| agent.sidecar.name | string | `"vald-agent-sidecar"` | name of agent sidecar | -| agent.sidecar.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent-sidecar"}}}` | observability config (overrides defaults.observability) | -| agent.sidecar.resources | object | `{"requests":{"cpu":"100m","memory":"100Mi"}}` | compute resources. | -| agent.sidecar.server_config | object | `{"healths":{"liveness":{"enabled":false,"port":13000,"servicePort":13000},"readiness":{"enabled":false,"port":13001,"servicePort":13001},"startup":{"enabled":false,"port":13001}},"metrics":{"pprof":{"port":16060,"servicePort":16060}},"servers":{"grpc":{"enabled":false,"port":18081,"servicePort":18081},"rest":{"enabled":false,"port":18080,"servicePort":18080}}}` | server config (overrides defaults.server_config) | -| agent.sidecar.service.annotations | object | `{}` | agent sidecar service annotations | -| agent.sidecar.service.enabled | bool | `false` | agent sidecar service enabled | -| agent.sidecar.service.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| agent.sidecar.service.labels | object | `{}` | agent sidecar service labels | -| agent.sidecar.service.type | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| agent.sidecar.time_zone | string | `""` | Time zone | -| agent.sidecar.version | string | `"v0.0.0"` | version of agent sidecar config | -| agent.terminationGracePeriodSeconds | int | `120` | duration in seconds pod needs to terminate gracefully | -| agent.time_zone | string | `""` | Time zone | -| agent.tolerations | list | `[]` | tolerations | -| agent.topologySpreadConstraints | list | `[]` | topology spread constraints for agent pods | -| agent.version | string | `"v0.0.0"` | version of agent config | -| agent.volumeMounts | list | `[]` | volume mounts | -| agent.volumes | list | `[]` | volumes | -| defaults.grpc.client.addrs | list | `[]` | gRPC client addresses | -| defaults.grpc.client.backoff.backoff_factor | float | `1.1` | gRPC client backoff factor | -| defaults.grpc.client.backoff.backoff_time_limit | string | `"5s"` | gRPC client backoff time limit | -| defaults.grpc.client.backoff.enable_error_log | bool | `true` | gRPC client backoff log enabled | -| defaults.grpc.client.backoff.initial_duration | string | `"5ms"` | gRPC client backoff initial duration | -| defaults.grpc.client.backoff.jitter_limit | string | `"100ms"` | gRPC client backoff jitter limit | -| defaults.grpc.client.backoff.maximum_duration | string | `"5s"` | gRPC client backoff maximum duration | -| defaults.grpc.client.backoff.retry_count | int | `100` | gRPC client backoff retry count | -| defaults.grpc.client.call_option.max_recv_msg_size | int | `0` | gRPC client call option max receive message size | -| defaults.grpc.client.call_option.max_retry_rpc_buffer_size | int | `0` | gRPC client call option max retry rpc buffer size | -| defaults.grpc.client.call_option.max_send_msg_size | int | `0` | gRPC client call option max send message size | -| defaults.grpc.client.call_option.wait_for_ready | bool | `true` | gRPC client call option wait for ready | -| defaults.grpc.client.circuit_breaker.closed_error_rate | float | `0.7` | gRPC client circuitbreaker closed error rate | -| defaults.grpc.client.circuit_breaker.closed_refresh_timeout | string | `"10s"` | gRPC client circuitbreaker closed refresh timeout | -| defaults.grpc.client.circuit_breaker.half_open_error_rate | float | `0.5` | gRPC client circuitbreaker half-open error rate | -| defaults.grpc.client.circuit_breaker.min_samples | int | `1000` | gRPC client circuitbreaker minimum sampling count | -| defaults.grpc.client.circuit_breaker.open_timeout | string | `"1s"` | gRPC client circuitbreaker open timeout | -| defaults.grpc.client.connection_pool.enable_dns_resolver | bool | `true` | enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance | -| defaults.grpc.client.connection_pool.enable_rebalance | bool | `true` | enables gRPC client connection pool rebalance | -| defaults.grpc.client.connection_pool.old_conn_close_duration | string | `"2m"` | makes delay before gRPC client connection closing during connection pool rebalance | -| defaults.grpc.client.connection_pool.rebalance_duration | string | `"30m"` | gRPC client connection pool rebalance duration | -| defaults.grpc.client.connection_pool.size | int | `3` | gRPC client connection pool size | -| defaults.grpc.client.dial_option.backoff_base_delay | string | `"1s"` | gRPC client dial option base backoff delay | -| defaults.grpc.client.dial_option.backoff_jitter | float | `0.2` | gRPC client dial option base backoff delay | -| defaults.grpc.client.dial_option.backoff_max_delay | string | `"120s"` | gRPC client dial option max backoff delay | -| defaults.grpc.client.dial_option.backoff_multiplier | float | `1.6` | gRPC client dial option base backoff delay | -| defaults.grpc.client.dial_option.enable_backoff | bool | `false` | gRPC client dial option backoff enabled | -| defaults.grpc.client.dial_option.initial_connection_window_size | int | `0` | gRPC client dial option initial connection window size | -| defaults.grpc.client.dial_option.initial_window_size | int | `0` | gRPC client dial option initial window size | -| defaults.grpc.client.dial_option.insecure | bool | `true` | gRPC client dial option insecure enabled | -| defaults.grpc.client.dial_option.interceptors | list | `[]` | gRPC client interceptors | -| defaults.grpc.client.dial_option.keepalive.permit_without_stream | bool | `true` | gRPC client keep alive permit without stream | -| defaults.grpc.client.dial_option.keepalive.time | string | `"120s"` | gRPC client keep alive time | -| defaults.grpc.client.dial_option.keepalive.timeout | string | `"30s"` | gRPC client keep alive timeout | -| defaults.grpc.client.dial_option.max_msg_size | int | `0` | gRPC client dial option max message size | -| defaults.grpc.client.dial_option.min_connection_timeout | string | `"20s"` | gRPC client dial option minimum connection timeout | -| defaults.grpc.client.dial_option.net.dialer.dual_stack_enabled | bool | `true` | gRPC client TCP dialer dual stack enabled | -| defaults.grpc.client.dial_option.net.dialer.keepalive | string | `""` | gRPC client TCP dialer keep alive | -| defaults.grpc.client.dial_option.net.dialer.timeout | string | `""` | gRPC client TCP dialer timeout | -| defaults.grpc.client.dial_option.net.dns.cache_enabled | bool | `true` | gRPC client TCP DNS cache enabled | -| defaults.grpc.client.dial_option.net.dns.cache_expiration | string | `"1h"` | gRPC client TCP DNS cache expiration | -| defaults.grpc.client.dial_option.net.dns.refresh_duration | string | `"30m"` | gRPC client TCP DNS cache refresh duration | -| defaults.grpc.client.dial_option.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.grpc.client.dial_option.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.grpc.client.dial_option.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.grpc.client.dial_option.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.grpc.client.dial_option.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.grpc.client.dial_option.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.grpc.client.dial_option.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| defaults.grpc.client.dial_option.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.grpc.client.dial_option.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.grpc.client.dial_option.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | -| defaults.grpc.client.dial_option.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | -| defaults.grpc.client.dial_option.net.tls.enabled | bool | `false` | TLS enabled | -| defaults.grpc.client.dial_option.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | -| defaults.grpc.client.dial_option.net.tls.key | string | `"/path/to/key"` | TLS key path | -| defaults.grpc.client.dial_option.read_buffer_size | int | `0` | gRPC client dial option read buffer size | -| defaults.grpc.client.dial_option.timeout | string | `""` | gRPC client dial option timeout | -| defaults.grpc.client.dial_option.write_buffer_size | int | `0` | gRPC client dial option write buffer size | -| defaults.grpc.client.health_check_duration | string | `"1s"` | gRPC client health check duration | -| defaults.grpc.client.tls.ca | string | `"/path/to/ca"` | TLS ca path | -| defaults.grpc.client.tls.cert | string | `"/path/to/cert"` | TLS cert path | -| defaults.grpc.client.tls.enabled | bool | `false` | TLS enabled | -| defaults.grpc.client.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | -| defaults.grpc.client.tls.key | string | `"/path/to/key"` | TLS key path | -| defaults.image.tag | string | `"v1.6.3"` | docker image tag | -| defaults.logging.format | string | `"raw"` | logging format. logging format must be `raw` or `json` | -| defaults.logging.level | string | `"debug"` | logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`. | -| defaults.logging.logger | string | `"glg"` | logger name. currently logger must be `glg` or `zap`. | -| defaults.observability.enabled | bool | `false` | observability features enabled | -| defaults.observability.metrics.enable_cgo | bool | `true` | CGO metrics enabled | -| defaults.observability.metrics.enable_goroutine | bool | `true` | goroutine metrics enabled | -| defaults.observability.metrics.enable_memory | bool | `true` | memory metrics enabled | -| defaults.observability.metrics.enable_version_info | bool | `true` | version info metrics enabled | -| defaults.observability.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","ngt_version"]` | enabled label names of version info | -| defaults.observability.otlp.attribute | object | `{"namespace":"_MY_POD_NAMESPACE_","node_name":"_MY_NODE_NAME_","pod_name":"_MY_POD_NAME_","service_name":"vald"}` | default resource attribute | -| defaults.observability.otlp.attribute.namespace | string | `"_MY_POD_NAMESPACE_"` | namespace | -| defaults.observability.otlp.attribute.node_name | string | `"_MY_NODE_NAME_"` | node name | -| defaults.observability.otlp.attribute.pod_name | string | `"_MY_POD_NAME_"` | pod name | -| defaults.observability.otlp.attribute.service_name | string | `"vald"` | service name | -| defaults.observability.otlp.collector_endpoint | string | `""` | OpenTelemetry Collector endpoint | -| defaults.observability.otlp.metrics_export_interval | string | `"1s"` | metrics export interval | -| defaults.observability.otlp.metrics_export_timeout | string | `"1m"` | metrics export timeout | -| defaults.observability.otlp.trace_batch_timeout | string | `"1s"` | trace batch timeout | -| defaults.observability.otlp.trace_export_timeout | string | `"1m"` | trace export timeout | -| defaults.observability.otlp.trace_max_export_batch_size | int | `1024` | trace maximum export batch size | -| defaults.observability.otlp.trace_max_queue_size | int | `256` | trace maximum queue size | -| defaults.observability.trace.enabled | bool | `false` | trace enabled | -| defaults.server_config.full_shutdown_duration | string | `"600s"` | server full shutdown duration | -| defaults.server_config.healths.liveness.enabled | bool | `true` | liveness server enabled | -| defaults.server_config.healths.liveness.host | string | `"0.0.0.0"` | liveness server host | -| defaults.server_config.healths.liveness.livenessProbe.failureThreshold | int | `2` | liveness probe failure threshold | -| defaults.server_config.healths.liveness.livenessProbe.httpGet.path | string | `"/liveness"` | liveness probe path | -| defaults.server_config.healths.liveness.livenessProbe.httpGet.port | string | `"liveness"` | liveness probe port | -| defaults.server_config.healths.liveness.livenessProbe.httpGet.scheme | string | `"HTTP"` | liveness probe scheme | -| defaults.server_config.healths.liveness.livenessProbe.initialDelaySeconds | int | `5` | liveness probe initial delay seconds | -| defaults.server_config.healths.liveness.livenessProbe.periodSeconds | int | `3` | liveness probe period seconds | -| defaults.server_config.healths.liveness.livenessProbe.successThreshold | int | `1` | liveness probe success threshold | -| defaults.server_config.healths.liveness.livenessProbe.timeoutSeconds | int | `2` | liveness probe timeout seconds | -| defaults.server_config.healths.liveness.port | int | `3000` | liveness server port | -| defaults.server_config.healths.liveness.server.http.handler_timeout | string | `""` | liveness server handler timeout | -| defaults.server_config.healths.liveness.server.http.idle_timeout | string | `""` | liveness server idle timeout | -| defaults.server_config.healths.liveness.server.http.read_header_timeout | string | `""` | liveness server read header timeout | -| defaults.server_config.healths.liveness.server.http.read_timeout | string | `""` | liveness server read timeout | -| defaults.server_config.healths.liveness.server.http.shutdown_duration | string | `"5s"` | liveness server shutdown duration | -| defaults.server_config.healths.liveness.server.http.write_timeout | string | `""` | liveness server write timeout | -| defaults.server_config.healths.liveness.server.mode | string | `""` | liveness server mode | -| defaults.server_config.healths.liveness.server.network | string | `"tcp"` | mysql network | -| defaults.server_config.healths.liveness.server.probe_wait_time | string | `"3s"` | liveness server probe wait time | -| defaults.server_config.healths.liveness.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.server_config.healths.liveness.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.server_config.healths.liveness.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.server_config.healths.liveness.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.server_config.healths.liveness.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.server_config.healths.liveness.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.server_config.healths.liveness.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| defaults.server_config.healths.liveness.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.server_config.healths.liveness.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.server_config.healths.liveness.server.socket_path | string | `""` | mysql socket_path | -| defaults.server_config.healths.liveness.servicePort | int | `3000` | liveness server service port | -| defaults.server_config.healths.readiness.enabled | bool | `true` | readiness server enabled | -| defaults.server_config.healths.readiness.host | string | `"0.0.0.0"` | readiness server host | -| defaults.server_config.healths.readiness.port | int | `3001` | readiness server port | -| defaults.server_config.healths.readiness.readinessProbe.failureThreshold | int | `2` | readiness probe failure threshold | -| defaults.server_config.healths.readiness.readinessProbe.httpGet.path | string | `"/readiness"` | readiness probe path | -| defaults.server_config.healths.readiness.readinessProbe.httpGet.port | string | `"readiness"` | readiness probe port | -| defaults.server_config.healths.readiness.readinessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | -| defaults.server_config.healths.readiness.readinessProbe.initialDelaySeconds | int | `10` | readiness probe initial delay seconds | -| defaults.server_config.healths.readiness.readinessProbe.periodSeconds | int | `3` | readiness probe period seconds | -| defaults.server_config.healths.readiness.readinessProbe.successThreshold | int | `1` | readiness probe success threshold | -| defaults.server_config.healths.readiness.readinessProbe.timeoutSeconds | int | `2` | readiness probe timeout seconds | -| defaults.server_config.healths.readiness.server.http.handler_timeout | string | `""` | readiness server handler timeout | -| defaults.server_config.healths.readiness.server.http.idle_timeout | string | `""` | readiness server idle timeout | -| defaults.server_config.healths.readiness.server.http.read_header_timeout | string | `""` | readiness server read header timeout | -| defaults.server_config.healths.readiness.server.http.read_timeout | string | `""` | readiness server read timeout | -| defaults.server_config.healths.readiness.server.http.shutdown_duration | string | `"0s"` | readiness server shutdown duration | -| defaults.server_config.healths.readiness.server.http.write_timeout | string | `""` | readiness server write timeout | -| defaults.server_config.healths.readiness.server.mode | string | `""` | readiness server mode | -| defaults.server_config.healths.readiness.server.network | string | `"tcp"` | mysql network | -| defaults.server_config.healths.readiness.server.probe_wait_time | string | `"3s"` | readiness server probe wait time | -| defaults.server_config.healths.readiness.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.server_config.healths.readiness.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.server_config.healths.readiness.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.server_config.healths.readiness.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.server_config.healths.readiness.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.server_config.healths.readiness.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.server_config.healths.readiness.server.socket_option.tcp_fast_open | bool | `true` | | -| defaults.server_config.healths.readiness.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.server_config.healths.readiness.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.server_config.healths.readiness.server.socket_path | string | `""` | mysql socket_path | -| defaults.server_config.healths.readiness.servicePort | int | `3001` | readiness server service port | -| defaults.server_config.healths.startup.enabled | bool | `true` | startup server enabled | -| defaults.server_config.healths.startup.port | int | `3000` | startup server port | -| defaults.server_config.healths.startup.startupProbe.failureThreshold | int | `30` | startup probe failure threshold | -| defaults.server_config.healths.startup.startupProbe.httpGet.path | string | `"/liveness"` | startup probe path | -| defaults.server_config.healths.startup.startupProbe.httpGet.port | string | `"liveness"` | startup probe port | -| defaults.server_config.healths.startup.startupProbe.httpGet.scheme | string | `"HTTP"` | startup probe scheme | -| defaults.server_config.healths.startup.startupProbe.initialDelaySeconds | int | `5` | startup probe initial delay seconds | -| defaults.server_config.healths.startup.startupProbe.periodSeconds | int | `5` | startup probe period seconds | -| defaults.server_config.healths.startup.startupProbe.successThreshold | int | `1` | startup probe success threshold | -| defaults.server_config.healths.startup.startupProbe.timeoutSeconds | int | `2` | startup probe timeout seconds | -| defaults.server_config.metrics.pprof.enabled | bool | `false` | pprof server enabled | -| defaults.server_config.metrics.pprof.host | string | `"0.0.0.0"` | pprof server host | -| defaults.server_config.metrics.pprof.port | int | `6060` | pprof server port | -| defaults.server_config.metrics.pprof.server.http.handler_timeout | string | `"5s"` | pprof server handler timeout | -| defaults.server_config.metrics.pprof.server.http.idle_timeout | string | `"2s"` | pprof server idle timeout | -| defaults.server_config.metrics.pprof.server.http.read_header_timeout | string | `"1s"` | pprof server read header timeout | -| defaults.server_config.metrics.pprof.server.http.read_timeout | string | `"1s"` | pprof server read timeout | -| defaults.server_config.metrics.pprof.server.http.shutdown_duration | string | `"5s"` | pprof server shutdown duration | -| defaults.server_config.metrics.pprof.server.http.write_timeout | string | `"1s"` | pprof server write timeout | -| defaults.server_config.metrics.pprof.server.mode | string | `"REST"` | pprof server mode | -| defaults.server_config.metrics.pprof.server.network | string | `"tcp"` | mysql network | -| defaults.server_config.metrics.pprof.server.probe_wait_time | string | `"3s"` | pprof server probe wait time | -| defaults.server_config.metrics.pprof.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.server_config.metrics.pprof.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.server_config.metrics.pprof.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.server_config.metrics.pprof.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.server_config.metrics.pprof.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.server_config.metrics.pprof.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.server_config.metrics.pprof.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| defaults.server_config.metrics.pprof.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.server_config.metrics.pprof.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.server_config.metrics.pprof.server.socket_path | string | `""` | mysql socket_path | -| defaults.server_config.metrics.pprof.servicePort | int | `6060` | pprof server service port | -| defaults.server_config.servers.grpc.enabled | bool | `true` | gRPC server enabled | -| defaults.server_config.servers.grpc.host | string | `"0.0.0.0"` | gRPC server host | -| defaults.server_config.servers.grpc.port | int | `8081` | gRPC server port | -| defaults.server_config.servers.grpc.server.grpc.bidirectional_stream_concurrency | int | `20` | gRPC server bidirectional stream concurrency | -| defaults.server_config.servers.grpc.server.grpc.connection_timeout | string | `""` | gRPC server connection timeout | -| defaults.server_config.servers.grpc.server.grpc.enable_reflection | bool | `true` | gRPC server reflection option | -| defaults.server_config.servers.grpc.server.grpc.header_table_size | int | `0` | gRPC server header table size | -| defaults.server_config.servers.grpc.server.grpc.initial_conn_window_size | int | `0` | gRPC server initial connection window size | -| defaults.server_config.servers.grpc.server.grpc.initial_window_size | int | `0` | gRPC server initial window size | -| defaults.server_config.servers.grpc.server.grpc.interceptors | list | `["RecoverInterceptor"]` | gRPC server interceptors | -| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_age | string | `""` | gRPC server keep alive max connection age | -| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_age_grace | string | `""` | gRPC server keep alive max connection age grace | -| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_idle | string | `""` | gRPC server keep alive max connection idle | -| defaults.server_config.servers.grpc.server.grpc.keepalive.min_time | string | `"60s"` | gRPC server keep alive min_time | -| defaults.server_config.servers.grpc.server.grpc.keepalive.permit_without_stream | bool | `true` | gRPC server keep alive permit_without_stream | -| defaults.server_config.servers.grpc.server.grpc.keepalive.time | string | `"120s"` | gRPC server keep alive time | -| defaults.server_config.servers.grpc.server.grpc.keepalive.timeout | string | `"30s"` | gRPC server keep alive timeout | -| defaults.server_config.servers.grpc.server.grpc.max_header_list_size | int | `0` | gRPC server max header list size | -| defaults.server_config.servers.grpc.server.grpc.max_receive_message_size | int | `0` | gRPC server max receive message size | -| defaults.server_config.servers.grpc.server.grpc.max_send_message_size | int | `0` | gRPC server max send message size | -| defaults.server_config.servers.grpc.server.grpc.read_buffer_size | int | `0` | gRPC server read buffer size | -| defaults.server_config.servers.grpc.server.grpc.write_buffer_size | int | `0` | gRPC server write buffer size | -| defaults.server_config.servers.grpc.server.mode | string | `"GRPC"` | gRPC server server mode | -| defaults.server_config.servers.grpc.server.network | string | `"tcp"` | mysql network | -| defaults.server_config.servers.grpc.server.probe_wait_time | string | `"3s"` | gRPC server probe wait time | -| defaults.server_config.servers.grpc.server.restart | bool | `true` | gRPC server restart | -| defaults.server_config.servers.grpc.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.server_config.servers.grpc.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.server_config.servers.grpc.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.server_config.servers.grpc.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.server_config.servers.grpc.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.server_config.servers.grpc.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.server_config.servers.grpc.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| defaults.server_config.servers.grpc.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.server_config.servers.grpc.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.server_config.servers.grpc.server.socket_path | string | `""` | mysql socket_path | -| defaults.server_config.servers.grpc.servicePort | int | `8081` | gRPC server service port | -| defaults.server_config.servers.rest.enabled | bool | `false` | REST server enabled | -| defaults.server_config.servers.rest.host | string | `"0.0.0.0"` | REST server host | -| defaults.server_config.servers.rest.port | int | `8080` | REST server port | -| defaults.server_config.servers.rest.server.http.handler_timeout | string | `"5s"` | REST server handler timeout | -| defaults.server_config.servers.rest.server.http.idle_timeout | string | `"2s"` | REST server idle timeout | -| defaults.server_config.servers.rest.server.http.read_header_timeout | string | `"1s"` | REST server read header timeout | -| defaults.server_config.servers.rest.server.http.read_timeout | string | `"1s"` | REST server read timeout | -| defaults.server_config.servers.rest.server.http.shutdown_duration | string | `"5s"` | REST server shutdown duration | -| defaults.server_config.servers.rest.server.http.write_timeout | string | `"1s"` | REST server write timeout | -| defaults.server_config.servers.rest.server.mode | string | `"REST"` | REST server server mode | -| defaults.server_config.servers.rest.server.network | string | `"tcp"` | mysql network | -| defaults.server_config.servers.rest.server.probe_wait_time | string | `"3s"` | REST server probe wait time | -| defaults.server_config.servers.rest.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| defaults.server_config.servers.rest.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| defaults.server_config.servers.rest.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| defaults.server_config.servers.rest.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| defaults.server_config.servers.rest.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| defaults.server_config.servers.rest.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| defaults.server_config.servers.rest.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| defaults.server_config.servers.rest.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| defaults.server_config.servers.rest.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| defaults.server_config.servers.rest.server.socket_path | string | `""` | mysql socket_path | -| defaults.server_config.servers.rest.servicePort | int | `8080` | REST server service port | -| defaults.server_config.tls.ca | string | `"/path/to/ca"` | TLS ca path | -| defaults.server_config.tls.cert | string | `"/path/to/cert"` | TLS cert path | -| defaults.server_config.tls.enabled | bool | `false` | TLS enabled | -| defaults.server_config.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | -| defaults.server_config.tls.key | string | `"/path/to/key"` | TLS key path | -| defaults.time_zone | string | `"UTC"` | Time zone | -| discoverer.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | -| discoverer.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | -| discoverer.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | -| discoverer.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| discoverer.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-discoverer"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | -| discoverer.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | -| discoverer.annotations | object | `{}` | deployment annotations | -| discoverer.clusterRole.enabled | bool | `true` | creates clusterRole resource | -| discoverer.clusterRole.name | string | `"discoverer"` | name of clusterRole | -| discoverer.clusterRoleBinding.enabled | bool | `true` | creates clusterRoleBinding resource | -| discoverer.clusterRoleBinding.name | string | `"discoverer"` | name of clusterRoleBinding | -| discoverer.discoverer.discovery_duration | string | `"3s"` | duration to discovery | -| discoverer.discoverer.name | string | `""` | name to discovery | -| discoverer.discoverer.namespace | string | `"_MY_POD_NAMESPACE_"` | namespace to discovery | -| discoverer.discoverer.net.dialer.dual_stack_enabled | bool | `false` | TCP dialer dual stack enabled | -| discoverer.discoverer.net.dialer.keepalive | string | `"10m"` | TCP dialer keep alive | -| discoverer.discoverer.net.dialer.timeout | string | `"30s"` | TCP dialer timeout | -| discoverer.discoverer.net.dns.cache_enabled | bool | `true` | TCP DNS cache enabled | -| discoverer.discoverer.net.dns.cache_expiration | string | `"24h"` | TCP DNS cache expiration | -| discoverer.discoverer.net.dns.refresh_duration | string | `"5m"` | TCP DNS cache refresh duration | -| discoverer.discoverer.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | -| discoverer.discoverer.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | -| discoverer.discoverer.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | -| discoverer.discoverer.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | -| discoverer.discoverer.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | -| discoverer.discoverer.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | -| discoverer.discoverer.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | -| discoverer.discoverer.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | -| discoverer.discoverer.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | -| discoverer.discoverer.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | -| discoverer.discoverer.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | -| discoverer.discoverer.net.tls.enabled | bool | `false` | TLS enabled | -| discoverer.discoverer.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | -| discoverer.discoverer.net.tls.key | string | `"/path/to/key"` | TLS key path | -| discoverer.discoverer.selectors | object | `{"node":{"fields":{},"labels":{}},"node_metrics":{"fields":{},"labels":{}},"pod":{"fields":{},"labels":{}},"pod_metrics":{"fields":{},"labels":{}}}` | k8s resource selectors | -| discoverer.discoverer.selectors.node | object | `{"fields":{},"labels":{}}` | k8s resource selectors for node discovery | -| discoverer.discoverer.selectors.node.fields | object | `{}` | k8s field selectors for node discovery | -| discoverer.discoverer.selectors.node.labels | object | `{}` | k8s label selectors for node discovery | -| discoverer.discoverer.selectors.node_metrics | object | `{"fields":{},"labels":{}}` | k8s resource selectors for node_metrics discovery | -| discoverer.discoverer.selectors.node_metrics.fields | object | `{}` | k8s field selectors for node_metrics discovery | -| discoverer.discoverer.selectors.node_metrics.labels | object | `{}` | k8s label selectors for node_metrics discovery | -| discoverer.discoverer.selectors.pod | object | `{"fields":{},"labels":{}}` | k8s resource selectors for pod discovery | -| discoverer.discoverer.selectors.pod.fields | object | `{}` | k8s field selectors for pod discovery | -| discoverer.discoverer.selectors.pod.labels | object | `{}` | k8s label selectors for pod discovery | -| discoverer.discoverer.selectors.pod_metrics | object | `{"fields":{},"labels":{}}` | k8s resource selectors for pod_metrics discovery | -| discoverer.discoverer.selectors.pod_metrics.fields | object | `{}` | k8s field selectors for pod_metrics discovery | -| discoverer.discoverer.selectors.pod_metrics.labels | object | `{}` | k8s label selectors for pod_metrics discovery | -| discoverer.enabled | bool | `true` | discoverer enabled | -| discoverer.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | -| discoverer.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| discoverer.hpa.enabled | bool | `false` | HPA enabled | -| discoverer.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | -| discoverer.image.pullPolicy | string | `"Always"` | image pull policy | -| discoverer.image.repository | string | `"vdaas/vald-discoverer-k8s"` | image repository | -| discoverer.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| discoverer.initContainers | list | `[]` | init containers | -| discoverer.internalTrafficPolicy | string | `""` | internal traffic policy : Cluster or Local | -| discoverer.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | -| discoverer.logging | object | `{}` | logging config (overrides defaults.logging) | -| discoverer.maxReplicas | int | `2` | maximum number of replicas. if HPA is disabled, this value will be ignored. | -| discoverer.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | -| discoverer.minReplicas | int | `1` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | -| discoverer.name | string | `"vald-discoverer"` | name of discoverer deployment | -| discoverer.nodeName | string | `""` | node name | -| discoverer.nodeSelector | object | `{}` | node selector | -| discoverer.observability | object | `{"otlp":{"attribute":{"service_name":"vald-discoverer"}}}` | observability config (overrides defaults.observability) | -| discoverer.podAnnotations | object | `{}` | pod annotations | -| discoverer.podPriority.enabled | bool | `true` | discoverer pod PriorityClass enabled | -| discoverer.podPriority.value | int | `1000000` | discoverer pod PriorityClass value | -| discoverer.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| discoverer.progressDeadlineSeconds | int | `600` | progress deadline seconds | -| discoverer.resources | object | `{"limits":{"cpu":"600m","memory":"200Mi"},"requests":{"cpu":"200m","memory":"65Mi"}}` | compute resources | -| discoverer.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | -| discoverer.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | -| discoverer.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | -| discoverer.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| discoverer.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | -| discoverer.service.annotations | object | `{}` | service annotations | -| discoverer.service.labels | object | `{}` | service labels | -| discoverer.serviceAccount.enabled | bool | `true` | creates service account | -| discoverer.serviceAccount.name | string | `"vald"` | name of service account | -| discoverer.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| discoverer.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | -| discoverer.time_zone | string | `""` | Time zone | -| discoverer.tolerations | list | `[]` | tolerations | -| discoverer.topologySpreadConstraints | list | `[]` | topology spread constraints of discoverer pods | -| discoverer.version | string | `"v0.0.0"` | version of discoverer config | -| discoverer.volumeMounts | list | `[]` | volume mounts | -| discoverer.volumes | list | `[]` | volumes | -| gateway.filter.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | -| gateway.filter.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | -| gateway.filter.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | -| gateway.filter.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| gateway.filter.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-filter-gateway"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | -| gateway.filter.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | -| gateway.filter.annotations | object | `{}` | deployment annotations | -| gateway.filter.enabled | bool | `false` | gateway enabled | -| gateway.filter.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | -| gateway.filter.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| gateway.filter.gateway_config.egress_filter | object | `{"client":{},"distance_filters":[],"object_filters":[]}` | gRPC client config for egress filter | -| gateway.filter.gateway_config.egress_filter.client | object | `{}` | gRPC client config for egress filter (overrides defaults.grpc.client) | -| gateway.filter.gateway_config.egress_filter.distance_filters | list | `[]` | distance egress vector filter targets | -| gateway.filter.gateway_config.egress_filter.object_filters | list | `[]` | object egress vector filter targets | -| gateway.filter.gateway_config.gateway_client | object | `{}` | gRPC client for next gateway (overrides defaults.grpc.client) | -| gateway.filter.gateway_config.ingress_filter | object | `{"client":{},"insert_filters":[],"search_filters":[],"update_filters":[],"upsert_filters":[],"vectorizer":""}` | gRPC client config for ingress filter | -| gateway.filter.gateway_config.ingress_filter.client | object | `{}` | gRPC client for ingress filter (overrides defaults.grpc.client) | -| gateway.filter.gateway_config.ingress_filter.insert_filters | list | `[]` | insert ingress vector filter targets | -| gateway.filter.gateway_config.ingress_filter.search_filters | list | `[]` | search ingress vector filter targets | -| gateway.filter.gateway_config.ingress_filter.update_filters | list | `[]` | update ingress vector filter targets | -| gateway.filter.gateway_config.ingress_filter.upsert_filters | list | `[]` | upsert ingress vector filter targets | -| gateway.filter.gateway_config.ingress_filter.vectorizer | string | `""` | object ingress vectorize filter targets | -| gateway.filter.hpa.enabled | bool | `true` | HPA enabled | -| gateway.filter.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | -| gateway.filter.image.pullPolicy | string | `"Always"` | image pull policy | -| gateway.filter.image.repository | string | `"vdaas/vald-filter-gateway"` | image repository | -| gateway.filter.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| gateway.filter.ingress.annotations | object | `{"nginx.ingress.kubernetes.io/grpc-backend":"true"}` | annotations for ingress | -| gateway.filter.ingress.enabled | bool | `false` | gateway ingress enabled | -| gateway.filter.ingress.host | string | `"filter.gateway.vald.vdaas.org"` | ingress hostname | -| gateway.filter.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | -| gateway.filter.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | -| gateway.filter.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | -| gateway.filter.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| gateway.filter.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | -| gateway.filter.logging | object | `{}` | logging config (overrides defaults.logging) | -| gateway.filter.maxReplicas | int | `9` | maximum number of replicas. if HPA is disabled, this value will be ignored. | -| gateway.filter.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | -| gateway.filter.minReplicas | int | `3` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | -| gateway.filter.name | string | `"vald-filter-gateway"` | name of filter gateway deployment | -| gateway.filter.nodeName | string | `""` | node name | -| gateway.filter.nodeSelector | object | `{}` | node selector | -| gateway.filter.observability | object | `{"otlp":{"attribute":{"service_name":"vald-filter-gateway"}}}` | observability config (overrides defaults.observability) | -| gateway.filter.podAnnotations | object | `{}` | pod annotations | -| gateway.filter.podPriority.enabled | bool | `true` | gateway pod PriorityClass enabled | -| gateway.filter.podPriority.value | int | `1000000` | gateway pod PriorityClass value | -| gateway.filter.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| gateway.filter.progressDeadlineSeconds | int | `600` | progress deadline seconds | -| gateway.filter.resources | object | `{"limits":{"cpu":"2000m","memory":"700Mi"},"requests":{"cpu":"200m","memory":"150Mi"}}` | compute resources | -| gateway.filter.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | -| gateway.filter.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | -| gateway.filter.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | -| gateway.filter.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| gateway.filter.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | -| gateway.filter.service.annotations | object | `{}` | service annotations | -| gateway.filter.service.labels | object | `{}` | service labels | -| gateway.filter.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| gateway.filter.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | -| gateway.filter.time_zone | string | `""` | Time zone | -| gateway.filter.tolerations | list | `[]` | tolerations | -| gateway.filter.topologySpreadConstraints | list | `[]` | topology spread constraints of gateway pods | -| gateway.filter.version | string | `"v0.0.0"` | version of gateway config | -| gateway.filter.volumeMounts | list | `[]` | volume mounts | -| gateway.filter.volumes | list | `[]` | volumes | -| gateway.lb.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | -| gateway.lb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | -| gateway.lb.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | -| gateway.lb.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| gateway.lb.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-lb-gateway"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | -| gateway.lb.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | -| gateway.lb.annotations | object | `{}` | deployment annotations | -| gateway.lb.enabled | bool | `true` | gateway enabled | -| gateway.lb.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | -| gateway.lb.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| gateway.lb.gateway_config.agent_namespace | string | `"_MY_POD_NAMESPACE_"` | agent namespace | -| gateway.lb.gateway_config.discoverer.agent_client_options | object | `{}` | gRPC client options for agents (overrides defaults.grpc.client) | -| gateway.lb.gateway_config.discoverer.client | object | `{}` | gRPC client for discoverer (overrides defaults.grpc.client) | -| gateway.lb.gateway_config.discoverer.duration | string | `"200ms"` | | -| gateway.lb.gateway_config.index_replica | int | `5` | number of index replica | -| gateway.lb.gateway_config.node_name | string | `""` | node name | -| gateway.lb.hpa.enabled | bool | `true` | HPA enabled | -| gateway.lb.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | -| gateway.lb.image.pullPolicy | string | `"Always"` | image pull policy | -| gateway.lb.image.repository | string | `"vdaas/vald-lb-gateway"` | image repository | -| gateway.lb.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| gateway.lb.ingress.annotations | object | `{"nginx.ingress.kubernetes.io/grpc-backend":"true"}` | annotations for ingress | -| gateway.lb.ingress.enabled | bool | `false` | gateway ingress enabled | -| gateway.lb.ingress.host | string | `"lb.gateway.vald.vdaas.org"` | ingress hostname | -| gateway.lb.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | -| gateway.lb.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | -| gateway.lb.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"}]` | init containers | -| gateway.lb.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| gateway.lb.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | -| gateway.lb.logging | object | `{}` | logging config (overrides defaults.logging) | -| gateway.lb.maxReplicas | int | `9` | maximum number of replicas. if HPA is disabled, this value will be ignored. | -| gateway.lb.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | -| gateway.lb.minReplicas | int | `3` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | -| gateway.lb.name | string | `"vald-lb-gateway"` | name of gateway deployment | -| gateway.lb.nodeName | string | `""` | node name | -| gateway.lb.nodeSelector | object | `{}` | node selector | -| gateway.lb.observability | object | `{"otlp":{"attribute":{"service_name":"vald-lb-gateway"}}}` | observability config (overrides defaults.observability) | -| gateway.lb.podAnnotations | object | `{}` | pod annotations | -| gateway.lb.podPriority.enabled | bool | `true` | gateway pod PriorityClass enabled | -| gateway.lb.podPriority.value | int | `1000000` | gateway pod PriorityClass value | -| gateway.lb.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| gateway.lb.progressDeadlineSeconds | int | `600` | progress deadline seconds | -| gateway.lb.resources | object | `{"limits":{"cpu":"2000m","memory":"700Mi"},"requests":{"cpu":"200m","memory":"150Mi"}}` | compute resources | -| gateway.lb.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | -| gateway.lb.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | -| gateway.lb.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | -| gateway.lb.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| gateway.lb.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | -| gateway.lb.service.annotations | object | `{}` | service annotations | -| gateway.lb.service.labels | object | `{}` | service labels | -| gateway.lb.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| gateway.lb.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | -| gateway.lb.time_zone | string | `""` | Time zone | -| gateway.lb.tolerations | list | `[]` | tolerations | -| gateway.lb.topologySpreadConstraints | list | `[]` | topology spread constraints of gateway pods | -| gateway.lb.version | string | `"v0.0.0"` | version of gateway config | -| gateway.lb.volumeMounts | list | `[]` | volume mounts | -| gateway.lb.volumes | list | `[]` | volumes | -| manager.index.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | -| manager.index.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | -| manager.index.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | -| manager.index.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| manager.index.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity preferred scheduling terms | -| manager.index.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | -| manager.index.annotations | object | `{}` | deployment annotations | -| manager.index.enabled | bool | `true` | index manager enabled | -| manager.index.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | -| manager.index.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | -| manager.index.image.pullPolicy | string | `"Always"` | image pull policy | -| manager.index.image.repository | string | `"vdaas/vald-manager-index"` | image repository | -| manager.index.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| manager.index.indexer.agent_namespace | string | `"_MY_POD_NAMESPACE_"` | namespace of agent pods to manage | -| manager.index.indexer.auto_index_check_duration | string | `"1m"` | check duration of automatic indexing | -| manager.index.indexer.auto_index_duration_limit | string | `"30m"` | limit duration of automatic indexing | -| manager.index.indexer.auto_index_length | int | `100` | number of cache to trigger automatic indexing | -| manager.index.indexer.auto_save_index_duration_limit | string | `"3h"` | limit duration of automatic index saving | -| manager.index.indexer.auto_save_index_wait_duration | string | `"10m"` | duration of automatic index saving wait duration for next saving | -| manager.index.indexer.concurrency | int | `1` | concurrency | -| manager.index.indexer.creation_pool_size | int | `10000` | number of pool size of create index processing | -| manager.index.indexer.discoverer.agent_client_options | object | `{"dial_option":{"net":{"dialer":{"keepalive":"15m"}}}}` | gRPC client options for agents (overrides defaults.grpc.client) | -| manager.index.indexer.discoverer.client | object | `{}` | gRPC client for discoverer (overrides defaults.grpc.client) | -| manager.index.indexer.discoverer.duration | string | `"500ms"` | refresh duration to discover | -| manager.index.indexer.node_name | string | `""` | node name | -| manager.index.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | -| manager.index.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | -| manager.index.logging | object | `{}` | logging config (overrides defaults.logging) | -| manager.index.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | -| manager.index.name | string | `"vald-manager-index"` | name of index manager deployment | -| manager.index.nodeName | string | `""` | node name | -| manager.index.nodeSelector | object | `{}` | node selector | -| manager.index.observability | object | `{"otlp":{"attribute":{"service_name":"vald-manager-index"}}}` | observability config (overrides defaults.observability) | -| manager.index.podAnnotations | object | `{}` | pod annotations | -| manager.index.podPriority.enabled | bool | `true` | index manager pod PriorityClass enabled | -| manager.index.podPriority.value | int | `1000000` | index manager pod PriorityClass value | -| manager.index.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | -| manager.index.progressDeadlineSeconds | int | `600` | progress deadline seconds | -| manager.index.replicas | int | `1` | number of replicas | -| manager.index.resources | object | `{"limits":{"cpu":"1000m","memory":"500Mi"},"requests":{"cpu":"200m","memory":"80Mi"}}` | compute resources | -| manager.index.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | -| manager.index.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | -| manager.index.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | -| manager.index.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | -| manager.index.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | -| manager.index.service.annotations | object | `{}` | service annotations | -| manager.index.service.labels | object | `{}` | service labels | -| manager.index.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | -| manager.index.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | -| manager.index.time_zone | string | `""` | Time zone | -| manager.index.tolerations | list | `[]` | tolerations | -| manager.index.topologySpreadConstraints | list | `[]` | topology spread constraints of index manager pods | -| manager.index.version | string | `"v0.0.0"` | version of index manager config | -| manager.index.volumeMounts | list | `[]` | volume mounts | -| manager.index.volumes | list | `[]` | volumes | +| Key | Type | Default | Description | +| ----------------------------------------------------------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| agent.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | +| agent.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | +| agent.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | +| agent.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | +| agent.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-agent-ngt"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | +| agent.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| agent.annotations | object | `{}` | deployment annotations | +| agent.enabled | bool | `true` | agent enabled | +| agent.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | +| agent.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| agent.hpa.enabled | bool | `false` | HPA enabled | +| agent.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | +| agent.image.pullPolicy | string | `"Always"` | image pull policy | +| agent.image.repository | string | `"vdaas/vald-agent-ngt"` | image repository | +| agent.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| agent.initContainers | list | `[]` | init containers | +| agent.kind | string | `"StatefulSet"` | deployment kind: Deployment, DaemonSet or StatefulSet | +| agent.logging | object | `{}` | logging config (overrides defaults.logging) | +| agent.maxReplicas | int | `300` | maximum number of replicas. if HPA is disabled, this value will be ignored. | +| agent.maxUnavailable | string | `"1"` | maximum number of unavailable replicas | +| agent.minReplicas | int | `20` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | +| agent.name | string | `"vald-agent-ngt"` | name of agent deployment | +| agent.ngt.auto_create_index_pool_size | int | `10000` | batch process pool size of automatic create index operation | +| agent.ngt.auto_index_check_duration | string | `"30m"` | check duration of automatic indexing | +| agent.ngt.auto_index_duration_limit | string | `"24h"` | limit duration of automatic indexing | +| agent.ngt.auto_index_length | int | `100` | number of cache to trigger automatic indexing | +| agent.ngt.auto_save_index_duration | string | `"35m"` | duration of automatic save index | +| agent.ngt.bulk_insert_chunk_size | int | `10` | bulk insert chunk size | +| agent.ngt.creation_edge_size | int | `20` | creation edge size | +| agent.ngt.default_epsilon | float | `0.1` | default epsilon used for search | +| agent.ngt.default_pool_size | int | `10000` | default create index batch pool size | +| agent.ngt.default_radius | float | `-1` | default radius used for search | +| agent.ngt.dimension | int | `4096` | vector dimension | +| agent.ngt.distance_type | string | `"l2"` | distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants | +| agent.ngt.enable_copy_on_write | bool | `false` | enable copy on write saving for more stable backup | +| agent.ngt.enable_in_memory_mode | bool | `true` | in-memory mode enabled | +| agent.ngt.enable_proactive_gc | bool | `false` | enable proactive GC call for reducing heap memory allocation | +| agent.ngt.index_path | string | `""` | path to index data | +| agent.ngt.initial_delay_max_duration | string | `"3m"` | maximum duration for initial delay | +| agent.ngt.kvsdb.concurrency | int | `6` | kvsdb processing concurrency | +| agent.ngt.load_index_timeout_factor | string | `"1ms"` | a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) \* (factor). | +| agent.ngt.max_load_index_timeout | string | `"10m"` | maximum duration of load index timeout | +| agent.ngt.min_load_index_timeout | string | `"3m"` | minimum duration of load index timeout | +| agent.ngt.object_type | string | `"float"` | object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference | +| agent.ngt.search_edge_size | int | `10` | search edge size | +| agent.ngt.vqueue.delete_buffer_pool_size | int | `5000` | delete slice pool buffer size | +| agent.ngt.vqueue.insert_buffer_pool_size | int | `10000` | insert slice pool buffer size | +| agent.nodeName | string | `""` | node name | +| agent.nodeSelector | object | `{}` | node selector | +| agent.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent-ngt"}}}` | observability config (overrides defaults.observability) | +| agent.persistentVolume.accessMode | string | `"ReadWriteOncePod"` | agent pod storage accessMode | +| agent.persistentVolume.enabled | bool | `false` | enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode | +| agent.persistentVolume.mountPropagation | string | `"None"` | agent pod storage mountPropagation | +| agent.persistentVolume.size | string | `"100Gi"` | size of agent pod volume | +| agent.persistentVolume.storageClass | string | `"vald-sc"` | storageClass name for agent pod volume | +| agent.podAnnotations | object | `{}` | pod annotations | +| agent.podManagementPolicy | string | `"OrderedReady"` | pod management policy: OrderedReady or Parallel | +| agent.podPriority.enabled | bool | `true` | agent pod PriorityClass enabled | +| agent.podPriority.value | int | `1000000000` | agent pod PriorityClass value | +| agent.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| agent.progressDeadlineSeconds | int | `600` | progress deadline seconds | +| agent.resources | object | `{"requests":{"cpu":"300m","memory":"4Gi"}}` | compute resources. recommended setting of memory requests = cluster memory \* 0.4 / number of agent pods | +| agent.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | +| agent.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | +| agent.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | +| agent.rollingUpdate.partition | int | `0` | StatefulSet partition | +| agent.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":false,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| agent.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{"startupProbe":{"failureThreshold":200,"periodSeconds":5}}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | +| agent.service.annotations | object | `{}` | service annotations | +| agent.service.labels | object | `{}` | service labels | +| agent.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| agent.sidecar.config.auto_backup_duration | string | `"24h"` | auto backup duration | +| agent.sidecar.config.auto_backup_enabled | bool | `true` | auto backup triggered by timer is enabled | +| agent.sidecar.config.blob_storage.bucket | string | `""` | bucket name | +| agent.sidecar.config.blob_storage.cloud_storage.client.credentials_file_path | string | `""` | credentials file path | +| agent.sidecar.config.blob_storage.cloud_storage.client.credentials_json | string | `""` | credentials json | +| agent.sidecar.config.blob_storage.cloud_storage.url | string | `""` | cloud storage url | +| agent.sidecar.config.blob_storage.cloud_storage.write_buffer_size | int | `0` | bytes of the chunks for upload | +| agent.sidecar.config.blob_storage.cloud_storage.write_cache_control | string | `""` | Cache-Control of HTTP Header | +| agent.sidecar.config.blob_storage.cloud_storage.write_content_disposition | string | `""` | Content-Disposition of HTTP Header | +| agent.sidecar.config.blob_storage.cloud_storage.write_content_encoding | string | `""` | the encoding of the blob's content | +| agent.sidecar.config.blob_storage.cloud_storage.write_content_language | string | `""` | the language of blob's content | +| agent.sidecar.config.blob_storage.cloud_storage.write_content_type | string | `""` | MIME type of the blob | +| agent.sidecar.config.blob_storage.s3.access_key | string | `"_AWS_ACCESS_KEY_"` | s3 access key | +| agent.sidecar.config.blob_storage.s3.enable_100_continue | bool | `true` | enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content. | +| agent.sidecar.config.blob_storage.s3.enable_content_md5_validation | bool | `true` | enable the S3 client to add MD5 checksum to upload API calls. | +| agent.sidecar.config.blob_storage.s3.enable_endpoint_discovery | bool | `false` | enable endpoint discovery | +| agent.sidecar.config.blob_storage.s3.enable_endpoint_host_prefix | bool | `true` | enable prefixing request endpoint hosts with modeled information | +| agent.sidecar.config.blob_storage.s3.enable_param_validation | bool | `true` | enables semantic parameter validation | +| agent.sidecar.config.blob_storage.s3.enable_ssl | bool | `true` | enable ssl for s3 session | +| agent.sidecar.config.blob_storage.s3.endpoint | string | `""` | s3 endpoint | +| agent.sidecar.config.blob_storage.s3.force_path_style | bool | `false` | use path-style addressing | +| agent.sidecar.config.blob_storage.s3.max_chunk_size | string | `"64mb"` | s3 download max chunk size | +| agent.sidecar.config.blob_storage.s3.max_part_size | string | `"64mb"` | s3 multipart upload max part size | +| agent.sidecar.config.blob_storage.s3.max_retries | int | `3` | maximum number of retries of s3 client | +| agent.sidecar.config.blob_storage.s3.region | string | `""` | s3 region | +| agent.sidecar.config.blob_storage.s3.secret_access_key | string | `"_AWS_SECRET_ACCESS_KEY_"` | s3 secret access key | +| agent.sidecar.config.blob_storage.s3.token | string | `""` | s3 token | +| agent.sidecar.config.blob_storage.s3.use_accelerate | bool | `false` | enable s3 accelerate feature | +| agent.sidecar.config.blob_storage.s3.use_arn_region | bool | `false` | s3 service client to use the region specified in the ARN | +| agent.sidecar.config.blob_storage.s3.use_dual_stack | bool | `false` | use dual stack | +| agent.sidecar.config.blob_storage.storage_type | string | `"s3"` | storage type | +| agent.sidecar.config.client.net.dialer.dual_stack_enabled | bool | `false` | HTTP client TCP dialer dual stack enabled | +| agent.sidecar.config.client.net.dialer.keepalive | string | `"5m"` | HTTP client TCP dialer keep alive | +| agent.sidecar.config.client.net.dialer.timeout | string | `"5s"` | HTTP client TCP dialer connect timeout | +| agent.sidecar.config.client.net.dns.cache_enabled | bool | `true` | HTTP client TCP DNS cache enabled | +| agent.sidecar.config.client.net.dns.cache_expiration | string | `"24h"` | | +| agent.sidecar.config.client.net.dns.refresh_duration | string | `"1h"` | HTTP client TCP DNS cache expiration | +| agent.sidecar.config.client.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| agent.sidecar.config.client.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| agent.sidecar.config.client.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| agent.sidecar.config.client.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| agent.sidecar.config.client.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| agent.sidecar.config.client.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| agent.sidecar.config.client.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| agent.sidecar.config.client.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| agent.sidecar.config.client.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| agent.sidecar.config.client.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | +| agent.sidecar.config.client.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | +| agent.sidecar.config.client.net.tls.enabled | bool | `false` | TLS enabled | +| agent.sidecar.config.client.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | +| agent.sidecar.config.client.net.tls.key | string | `"/path/to/key"` | TLS key path | +| agent.sidecar.config.client.transport.backoff.backoff_factor | float | `1.1` | backoff backoff factor | +| agent.sidecar.config.client.transport.backoff.backoff_time_limit | string | `"5s"` | backoff time limit | +| agent.sidecar.config.client.transport.backoff.enable_error_log | bool | `true` | backoff error log enabled | +| agent.sidecar.config.client.transport.backoff.initial_duration | string | `"5ms"` | backoff initial duration | +| agent.sidecar.config.client.transport.backoff.jitter_limit | string | `"100ms"` | backoff jitter limit | +| agent.sidecar.config.client.transport.backoff.maximum_duration | string | `"5s"` | backoff maximum duration | +| agent.sidecar.config.client.transport.backoff.retry_count | int | `100` | backoff retry count | +| agent.sidecar.config.client.transport.round_tripper.expect_continue_timeout | string | `"5s"` | expect continue timeout | +| agent.sidecar.config.client.transport.round_tripper.force_attempt_http_2 | bool | `true` | force attempt HTTP2 | +| agent.sidecar.config.client.transport.round_tripper.idle_conn_timeout | string | `"90s"` | timeout for idle connections | +| agent.sidecar.config.client.transport.round_tripper.max_conns_per_host | int | `10` | maximum count of connections per host | +| agent.sidecar.config.client.transport.round_tripper.max_idle_conns | int | `100` | maximum count of idle connections | +| agent.sidecar.config.client.transport.round_tripper.max_idle_conns_per_host | int | `10` | maximum count of idle connections per host | +| agent.sidecar.config.client.transport.round_tripper.max_response_header_size | int | `0` | maximum response header size | +| agent.sidecar.config.client.transport.round_tripper.read_buffer_size | int | `0` | read buffer size | +| agent.sidecar.config.client.transport.round_tripper.response_header_timeout | string | `"5s"` | timeout for response header | +| agent.sidecar.config.client.transport.round_tripper.tls_handshake_timeout | string | `"5s"` | TLS handshake timeout | +| agent.sidecar.config.client.transport.round_tripper.write_buffer_size | int | `0` | write buffer size | +| agent.sidecar.config.compress.compress_algorithm | string | `"gzip"` | compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd` | +| agent.sidecar.config.compress.compression_level | int | `-1` | compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: >= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress. | +| agent.sidecar.config.filename | string | `"_MY_POD_NAME_"` | backup filename | +| agent.sidecar.config.filename_suffix | string | `".tar.gz"` | suffix for backup filename | +| agent.sidecar.config.post_stop_timeout | string | `"2m"` | timeout for observing file changes during post stop | +| agent.sidecar.config.restore_backoff.backoff_factor | float | `1.2` | restore backoff factor | +| agent.sidecar.config.restore_backoff.backoff_time_limit | string | `"30m"` | restore backoff time limit | +| agent.sidecar.config.restore_backoff.enable_error_log | bool | `true` | restore backoff log enabled | +| agent.sidecar.config.restore_backoff.initial_duration | string | `"1s"` | restore backoff initial duration | +| agent.sidecar.config.restore_backoff.jitter_limit | string | `"10s"` | restore backoff jitter limit | +| agent.sidecar.config.restore_backoff.maximum_duration | string | `"1m"` | restore backoff maximum duration | +| agent.sidecar.config.restore_backoff.retry_count | int | `100` | restore backoff retry count | +| agent.sidecar.config.restore_backoff_enabled | bool | `false` | restore backoff enabled | +| agent.sidecar.config.watch_enabled | bool | `true` | auto backup triggered by file changes is enabled | +| agent.sidecar.enabled | bool | `false` | sidecar enabled | +| agent.sidecar.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"AWS_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"access-key","name":"aws-secret"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"secret-access-key","name":"aws-secret"}}}]` | environment variables | +| agent.sidecar.image.pullPolicy | string | `"Always"` | image pull policy | +| agent.sidecar.image.repository | string | `"vdaas/vald-agent-sidecar"` | image repository | +| agent.sidecar.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| agent.sidecar.initContainerEnabled | bool | `false` | sidecar on initContainer mode enabled. | +| agent.sidecar.logging | object | `{}` | logging config (overrides defaults.logging) | +| agent.sidecar.name | string | `"vald-agent-sidecar"` | name of agent sidecar | +| agent.sidecar.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent-sidecar"}}}` | observability config (overrides defaults.observability) | +| agent.sidecar.resources | object | `{"requests":{"cpu":"100m","memory":"100Mi"}}` | compute resources. | +| agent.sidecar.server_config | object | `{"healths":{"liveness":{"enabled":false,"port":13000,"servicePort":13000},"readiness":{"enabled":false,"port":13001,"servicePort":13001},"startup":{"enabled":false,"port":13001}},"metrics":{"pprof":{"port":16060,"servicePort":16060}},"servers":{"grpc":{"enabled":false,"port":18081,"servicePort":18081},"rest":{"enabled":false,"port":18080,"servicePort":18080}}}` | server config (overrides defaults.server_config) | +| agent.sidecar.service.annotations | object | `{}` | agent sidecar service annotations | +| agent.sidecar.service.enabled | bool | `false` | agent sidecar service enabled | +| agent.sidecar.service.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| agent.sidecar.service.labels | object | `{}` | agent sidecar service labels | +| agent.sidecar.service.type | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| agent.sidecar.time_zone | string | `""` | Time zone | +| agent.sidecar.version | string | `"v0.0.0"` | version of agent sidecar config | +| agent.terminationGracePeriodSeconds | int | `120` | duration in seconds pod needs to terminate gracefully | +| agent.time_zone | string | `""` | Time zone | +| agent.tolerations | list | `[]` | tolerations | +| agent.topologySpreadConstraints | list | `[]` | topology spread constraints for agent pods | +| agent.version | string | `"v0.0.0"` | version of agent config | +| agent.volumeMounts | list | `[]` | volume mounts | +| agent.volumes | list | `[]` | volumes | +| defaults.grpc.client.addrs | list | `[]` | gRPC client addresses | +| defaults.grpc.client.backoff.backoff_factor | float | `1.1` | gRPC client backoff factor | +| defaults.grpc.client.backoff.backoff_time_limit | string | `"5s"` | gRPC client backoff time limit | +| defaults.grpc.client.backoff.enable_error_log | bool | `true` | gRPC client backoff log enabled | +| defaults.grpc.client.backoff.initial_duration | string | `"5ms"` | gRPC client backoff initial duration | +| defaults.grpc.client.backoff.jitter_limit | string | `"100ms"` | gRPC client backoff jitter limit | +| defaults.grpc.client.backoff.maximum_duration | string | `"5s"` | gRPC client backoff maximum duration | +| defaults.grpc.client.backoff.retry_count | int | `100` | gRPC client backoff retry count | +| defaults.grpc.client.call_option.max_recv_msg_size | int | `0` | gRPC client call option max receive message size | +| defaults.grpc.client.call_option.max_retry_rpc_buffer_size | int | `0` | gRPC client call option max retry rpc buffer size | +| defaults.grpc.client.call_option.max_send_msg_size | int | `0` | gRPC client call option max send message size | +| defaults.grpc.client.call_option.wait_for_ready | bool | `true` | gRPC client call option wait for ready | +| defaults.grpc.client.circuit_breaker.closed_error_rate | float | `0.7` | gRPC client circuitbreaker closed error rate | +| defaults.grpc.client.circuit_breaker.closed_refresh_timeout | string | `"10s"` | gRPC client circuitbreaker closed refresh timeout | +| defaults.grpc.client.circuit_breaker.half_open_error_rate | float | `0.5` | gRPC client circuitbreaker half-open error rate | +| defaults.grpc.client.circuit_breaker.min_samples | int | `1000` | gRPC client circuitbreaker minimum sampling count | +| defaults.grpc.client.circuit_breaker.open_timeout | string | `"1s"` | gRPC client circuitbreaker open timeout | +| defaults.grpc.client.connection_pool.enable_dns_resolver | bool | `true` | enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance | +| defaults.grpc.client.connection_pool.enable_rebalance | bool | `true` | enables gRPC client connection pool rebalance | +| defaults.grpc.client.connection_pool.old_conn_close_duration | string | `"2m"` | makes delay before gRPC client connection closing during connection pool rebalance | +| defaults.grpc.client.connection_pool.rebalance_duration | string | `"30m"` | gRPC client connection pool rebalance duration | +| defaults.grpc.client.connection_pool.size | int | `3` | gRPC client connection pool size | +| defaults.grpc.client.dial_option.backoff_base_delay | string | `"1s"` | gRPC client dial option base backoff delay | +| defaults.grpc.client.dial_option.backoff_jitter | float | `0.2` | gRPC client dial option base backoff delay | +| defaults.grpc.client.dial_option.backoff_max_delay | string | `"120s"` | gRPC client dial option max backoff delay | +| defaults.grpc.client.dial_option.backoff_multiplier | float | `1.6` | gRPC client dial option base backoff delay | +| defaults.grpc.client.dial_option.enable_backoff | bool | `false` | gRPC client dial option backoff enabled | +| defaults.grpc.client.dial_option.initial_connection_window_size | int | `0` | gRPC client dial option initial connection window size | +| defaults.grpc.client.dial_option.initial_window_size | int | `0` | gRPC client dial option initial window size | +| defaults.grpc.client.dial_option.insecure | bool | `true` | gRPC client dial option insecure enabled | +| defaults.grpc.client.dial_option.interceptors | list | `[]` | gRPC client interceptors | +| defaults.grpc.client.dial_option.keepalive.permit_without_stream | bool | `true` | gRPC client keep alive permit without stream | +| defaults.grpc.client.dial_option.keepalive.time | string | `"120s"` | gRPC client keep alive time | +| defaults.grpc.client.dial_option.keepalive.timeout | string | `"30s"` | gRPC client keep alive timeout | +| defaults.grpc.client.dial_option.max_msg_size | int | `0` | gRPC client dial option max message size | +| defaults.grpc.client.dial_option.min_connection_timeout | string | `"20s"` | gRPC client dial option minimum connection timeout | +| defaults.grpc.client.dial_option.net.dialer.dual_stack_enabled | bool | `true` | gRPC client TCP dialer dual stack enabled | +| defaults.grpc.client.dial_option.net.dialer.keepalive | string | `""` | gRPC client TCP dialer keep alive | +| defaults.grpc.client.dial_option.net.dialer.timeout | string | `""` | gRPC client TCP dialer timeout | +| defaults.grpc.client.dial_option.net.dns.cache_enabled | bool | `true` | gRPC client TCP DNS cache enabled | +| defaults.grpc.client.dial_option.net.dns.cache_expiration | string | `"1h"` | gRPC client TCP DNS cache expiration | +| defaults.grpc.client.dial_option.net.dns.refresh_duration | string | `"30m"` | gRPC client TCP DNS cache refresh duration | +| defaults.grpc.client.dial_option.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.grpc.client.dial_option.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.grpc.client.dial_option.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.grpc.client.dial_option.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.grpc.client.dial_option.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.grpc.client.dial_option.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.grpc.client.dial_option.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| defaults.grpc.client.dial_option.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.grpc.client.dial_option.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.grpc.client.dial_option.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | +| defaults.grpc.client.dial_option.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | +| defaults.grpc.client.dial_option.net.tls.enabled | bool | `false` | TLS enabled | +| defaults.grpc.client.dial_option.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | +| defaults.grpc.client.dial_option.net.tls.key | string | `"/path/to/key"` | TLS key path | +| defaults.grpc.client.dial_option.read_buffer_size | int | `0` | gRPC client dial option read buffer size | +| defaults.grpc.client.dial_option.timeout | string | `""` | gRPC client dial option timeout | +| defaults.grpc.client.dial_option.write_buffer_size | int | `0` | gRPC client dial option write buffer size | +| defaults.grpc.client.health_check_duration | string | `"1s"` | gRPC client health check duration | +| defaults.grpc.client.tls.ca | string | `"/path/to/ca"` | TLS ca path | +| defaults.grpc.client.tls.cert | string | `"/path/to/cert"` | TLS cert path | +| defaults.grpc.client.tls.enabled | bool | `false` | TLS enabled | +| defaults.grpc.client.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | +| defaults.grpc.client.tls.key | string | `"/path/to/key"` | TLS key path | +| defaults.image.tag | string | `"v1.6.3"` | docker image tag | +| defaults.logging.format | string | `"raw"` | logging format. logging format must be `raw` or `json` | +| defaults.logging.level | string | `"debug"` | logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`. | +| defaults.logging.logger | string | `"glg"` | logger name. currently logger must be `glg` or `zap`. | +| defaults.observability.enabled | bool | `false` | observability features enabled | +| defaults.observability.metrics.enable_cgo | bool | `true` | CGO metrics enabled | +| defaults.observability.metrics.enable_goroutine | bool | `true` | goroutine metrics enabled | +| defaults.observability.metrics.enable_memory | bool | `true` | memory metrics enabled | +| defaults.observability.metrics.enable_version_info | bool | `true` | version info metrics enabled | +| defaults.observability.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","ngt_version"]` | enabled label names of version info | +| defaults.observability.otlp.attribute | object | `{"namespace":"_MY_POD_NAMESPACE_","node_name":"_MY_NODE_NAME_","pod_name":"_MY_POD_NAME_","service_name":"vald"}` | default resource attribute | +| defaults.observability.otlp.attribute.namespace | string | `"_MY_POD_NAMESPACE_"` | namespace | +| defaults.observability.otlp.attribute.node_name | string | `"_MY_NODE_NAME_"` | node name | +| defaults.observability.otlp.attribute.pod_name | string | `"_MY_POD_NAME_"` | pod name | +| defaults.observability.otlp.attribute.service_name | string | `"vald"` | service name | +| defaults.observability.otlp.collector_endpoint | string | `""` | OpenTelemetry Collector endpoint | +| defaults.observability.otlp.metrics_export_interval | string | `"1s"` | metrics export interval | +| defaults.observability.otlp.metrics_export_timeout | string | `"1m"` | metrics export timeout | +| defaults.observability.otlp.trace_batch_timeout | string | `"1s"` | trace batch timeout | +| defaults.observability.otlp.trace_export_timeout | string | `"1m"` | trace export timeout | +| defaults.observability.otlp.trace_max_export_batch_size | int | `1024` | trace maximum export batch size | +| defaults.observability.otlp.trace_max_queue_size | int | `256` | trace maximum queue size | +| defaults.observability.trace.enabled | bool | `false` | trace enabled | +| defaults.server_config.full_shutdown_duration | string | `"600s"` | server full shutdown duration | +| defaults.server_config.healths.liveness.enabled | bool | `true` | liveness server enabled | +| defaults.server_config.healths.liveness.host | string | `"0.0.0.0"` | liveness server host | +| defaults.server_config.healths.liveness.livenessProbe.failureThreshold | int | `2` | liveness probe failure threshold | +| defaults.server_config.healths.liveness.livenessProbe.httpGet.path | string | `"/liveness"` | liveness probe path | +| defaults.server_config.healths.liveness.livenessProbe.httpGet.port | string | `"liveness"` | liveness probe port | +| defaults.server_config.healths.liveness.livenessProbe.httpGet.scheme | string | `"HTTP"` | liveness probe scheme | +| defaults.server_config.healths.liveness.livenessProbe.initialDelaySeconds | int | `5` | liveness probe initial delay seconds | +| defaults.server_config.healths.liveness.livenessProbe.periodSeconds | int | `3` | liveness probe period seconds | +| defaults.server_config.healths.liveness.livenessProbe.successThreshold | int | `1` | liveness probe success threshold | +| defaults.server_config.healths.liveness.livenessProbe.timeoutSeconds | int | `2` | liveness probe timeout seconds | +| defaults.server_config.healths.liveness.port | int | `3000` | liveness server port | +| defaults.server_config.healths.liveness.server.http.handler_timeout | string | `""` | liveness server handler timeout | +| defaults.server_config.healths.liveness.server.http.idle_timeout | string | `""` | liveness server idle timeout | +| defaults.server_config.healths.liveness.server.http.read_header_timeout | string | `""` | liveness server read header timeout | +| defaults.server_config.healths.liveness.server.http.read_timeout | string | `""` | liveness server read timeout | +| defaults.server_config.healths.liveness.server.http.shutdown_duration | string | `"5s"` | liveness server shutdown duration | +| defaults.server_config.healths.liveness.server.http.write_timeout | string | `""` | liveness server write timeout | +| defaults.server_config.healths.liveness.server.mode | string | `""` | liveness server mode | +| defaults.server_config.healths.liveness.server.network | string | `"tcp"` | mysql network | +| defaults.server_config.healths.liveness.server.probe_wait_time | string | `"3s"` | liveness server probe wait time | +| defaults.server_config.healths.liveness.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.server_config.healths.liveness.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.server_config.healths.liveness.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.server_config.healths.liveness.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.server_config.healths.liveness.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.server_config.healths.liveness.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.server_config.healths.liveness.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| defaults.server_config.healths.liveness.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.server_config.healths.liveness.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.server_config.healths.liveness.server.socket_path | string | `""` | mysql socket_path | +| defaults.server_config.healths.liveness.servicePort | int | `3000` | liveness server service port | +| defaults.server_config.healths.readiness.enabled | bool | `true` | readiness server enabled | +| defaults.server_config.healths.readiness.host | string | `"0.0.0.0"` | readiness server host | +| defaults.server_config.healths.readiness.port | int | `3001` | readiness server port | +| defaults.server_config.healths.readiness.readinessProbe.failureThreshold | int | `2` | readiness probe failure threshold | +| defaults.server_config.healths.readiness.readinessProbe.httpGet.path | string | `"/readiness"` | readiness probe path | +| defaults.server_config.healths.readiness.readinessProbe.httpGet.port | string | `"readiness"` | readiness probe port | +| defaults.server_config.healths.readiness.readinessProbe.httpGet.scheme | string | `"HTTP"` | readiness probe scheme | +| defaults.server_config.healths.readiness.readinessProbe.initialDelaySeconds | int | `10` | readiness probe initial delay seconds | +| defaults.server_config.healths.readiness.readinessProbe.periodSeconds | int | `3` | readiness probe period seconds | +| defaults.server_config.healths.readiness.readinessProbe.successThreshold | int | `1` | readiness probe success threshold | +| defaults.server_config.healths.readiness.readinessProbe.timeoutSeconds | int | `2` | readiness probe timeout seconds | +| defaults.server_config.healths.readiness.server.http.handler_timeout | string | `""` | readiness server handler timeout | +| defaults.server_config.healths.readiness.server.http.idle_timeout | string | `""` | readiness server idle timeout | +| defaults.server_config.healths.readiness.server.http.read_header_timeout | string | `""` | readiness server read header timeout | +| defaults.server_config.healths.readiness.server.http.read_timeout | string | `""` | readiness server read timeout | +| defaults.server_config.healths.readiness.server.http.shutdown_duration | string | `"0s"` | readiness server shutdown duration | +| defaults.server_config.healths.readiness.server.http.write_timeout | string | `""` | readiness server write timeout | +| defaults.server_config.healths.readiness.server.mode | string | `""` | readiness server mode | +| defaults.server_config.healths.readiness.server.network | string | `"tcp"` | mysql network | +| defaults.server_config.healths.readiness.server.probe_wait_time | string | `"3s"` | readiness server probe wait time | +| defaults.server_config.healths.readiness.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.server_config.healths.readiness.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.server_config.healths.readiness.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.server_config.healths.readiness.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.server_config.healths.readiness.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.server_config.healths.readiness.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.server_config.healths.readiness.server.socket_option.tcp_fast_open | bool | `true` | | +| defaults.server_config.healths.readiness.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.server_config.healths.readiness.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.server_config.healths.readiness.server.socket_path | string | `""` | mysql socket_path | +| defaults.server_config.healths.readiness.servicePort | int | `3001` | readiness server service port | +| defaults.server_config.healths.startup.enabled | bool | `true` | startup server enabled | +| defaults.server_config.healths.startup.port | int | `3000` | startup server port | +| defaults.server_config.healths.startup.startupProbe.failureThreshold | int | `30` | startup probe failure threshold | +| defaults.server_config.healths.startup.startupProbe.httpGet.path | string | `"/liveness"` | startup probe path | +| defaults.server_config.healths.startup.startupProbe.httpGet.port | string | `"liveness"` | startup probe port | +| defaults.server_config.healths.startup.startupProbe.httpGet.scheme | string | `"HTTP"` | startup probe scheme | +| defaults.server_config.healths.startup.startupProbe.initialDelaySeconds | int | `5` | startup probe initial delay seconds | +| defaults.server_config.healths.startup.startupProbe.periodSeconds | int | `5` | startup probe period seconds | +| defaults.server_config.healths.startup.startupProbe.successThreshold | int | `1` | startup probe success threshold | +| defaults.server_config.healths.startup.startupProbe.timeoutSeconds | int | `2` | startup probe timeout seconds | +| defaults.server_config.metrics.pprof.enabled | bool | `false` | pprof server enabled | +| defaults.server_config.metrics.pprof.host | string | `"0.0.0.0"` | pprof server host | +| defaults.server_config.metrics.pprof.port | int | `6060` | pprof server port | +| defaults.server_config.metrics.pprof.server.http.handler_timeout | string | `"5s"` | pprof server handler timeout | +| defaults.server_config.metrics.pprof.server.http.idle_timeout | string | `"2s"` | pprof server idle timeout | +| defaults.server_config.metrics.pprof.server.http.read_header_timeout | string | `"1s"` | pprof server read header timeout | +| defaults.server_config.metrics.pprof.server.http.read_timeout | string | `"1s"` | pprof server read timeout | +| defaults.server_config.metrics.pprof.server.http.shutdown_duration | string | `"5s"` | pprof server shutdown duration | +| defaults.server_config.metrics.pprof.server.http.write_timeout | string | `"1s"` | pprof server write timeout | +| defaults.server_config.metrics.pprof.server.mode | string | `"REST"` | pprof server mode | +| defaults.server_config.metrics.pprof.server.network | string | `"tcp"` | mysql network | +| defaults.server_config.metrics.pprof.server.probe_wait_time | string | `"3s"` | pprof server probe wait time | +| defaults.server_config.metrics.pprof.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.server_config.metrics.pprof.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.server_config.metrics.pprof.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.server_config.metrics.pprof.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.server_config.metrics.pprof.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.server_config.metrics.pprof.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.server_config.metrics.pprof.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| defaults.server_config.metrics.pprof.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.server_config.metrics.pprof.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.server_config.metrics.pprof.server.socket_path | string | `""` | mysql socket_path | +| defaults.server_config.metrics.pprof.servicePort | int | `6060` | pprof server service port | +| defaults.server_config.servers.grpc.enabled | bool | `true` | gRPC server enabled | +| defaults.server_config.servers.grpc.host | string | `"0.0.0.0"` | gRPC server host | +| defaults.server_config.servers.grpc.port | int | `8081` | gRPC server port | +| defaults.server_config.servers.grpc.server.grpc.bidirectional_stream_concurrency | int | `20` | gRPC server bidirectional stream concurrency | +| defaults.server_config.servers.grpc.server.grpc.connection_timeout | string | `""` | gRPC server connection timeout | +| defaults.server_config.servers.grpc.server.grpc.enable_reflection | bool | `true` | gRPC server reflection option | +| defaults.server_config.servers.grpc.server.grpc.header_table_size | int | `0` | gRPC server header table size | +| defaults.server_config.servers.grpc.server.grpc.initial_conn_window_size | int | `0` | gRPC server initial connection window size | +| defaults.server_config.servers.grpc.server.grpc.initial_window_size | int | `0` | gRPC server initial window size | +| defaults.server_config.servers.grpc.server.grpc.interceptors | list | `["RecoverInterceptor"]` | gRPC server interceptors | +| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_age | string | `""` | gRPC server keep alive max connection age | +| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_age_grace | string | `""` | gRPC server keep alive max connection age grace | +| defaults.server_config.servers.grpc.server.grpc.keepalive.max_conn_idle | string | `""` | gRPC server keep alive max connection idle | +| defaults.server_config.servers.grpc.server.grpc.keepalive.min_time | string | `"60s"` | gRPC server keep alive min_time | +| defaults.server_config.servers.grpc.server.grpc.keepalive.permit_without_stream | bool | `true` | gRPC server keep alive permit_without_stream | +| defaults.server_config.servers.grpc.server.grpc.keepalive.time | string | `"120s"` | gRPC server keep alive time | +| defaults.server_config.servers.grpc.server.grpc.keepalive.timeout | string | `"30s"` | gRPC server keep alive timeout | +| defaults.server_config.servers.grpc.server.grpc.max_header_list_size | int | `0` | gRPC server max header list size | +| defaults.server_config.servers.grpc.server.grpc.max_receive_message_size | int | `0` | gRPC server max receive message size | +| defaults.server_config.servers.grpc.server.grpc.max_send_message_size | int | `0` | gRPC server max send message size | +| defaults.server_config.servers.grpc.server.grpc.read_buffer_size | int | `0` | gRPC server read buffer size | +| defaults.server_config.servers.grpc.server.grpc.write_buffer_size | int | `0` | gRPC server write buffer size | +| defaults.server_config.servers.grpc.server.mode | string | `"GRPC"` | gRPC server server mode | +| defaults.server_config.servers.grpc.server.network | string | `"tcp"` | mysql network | +| defaults.server_config.servers.grpc.server.probe_wait_time | string | `"3s"` | gRPC server probe wait time | +| defaults.server_config.servers.grpc.server.restart | bool | `true` | gRPC server restart | +| defaults.server_config.servers.grpc.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.server_config.servers.grpc.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.server_config.servers.grpc.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.server_config.servers.grpc.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.server_config.servers.grpc.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.server_config.servers.grpc.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.server_config.servers.grpc.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| defaults.server_config.servers.grpc.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.server_config.servers.grpc.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.server_config.servers.grpc.server.socket_path | string | `""` | mysql socket_path | +| defaults.server_config.servers.grpc.servicePort | int | `8081` | gRPC server service port | +| defaults.server_config.servers.rest.enabled | bool | `false` | REST server enabled | +| defaults.server_config.servers.rest.host | string | `"0.0.0.0"` | REST server host | +| defaults.server_config.servers.rest.port | int | `8080` | REST server port | +| defaults.server_config.servers.rest.server.http.handler_timeout | string | `"5s"` | REST server handler timeout | +| defaults.server_config.servers.rest.server.http.idle_timeout | string | `"2s"` | REST server idle timeout | +| defaults.server_config.servers.rest.server.http.read_header_timeout | string | `"1s"` | REST server read header timeout | +| defaults.server_config.servers.rest.server.http.read_timeout | string | `"1s"` | REST server read timeout | +| defaults.server_config.servers.rest.server.http.shutdown_duration | string | `"5s"` | REST server shutdown duration | +| defaults.server_config.servers.rest.server.http.write_timeout | string | `"1s"` | REST server write timeout | +| defaults.server_config.servers.rest.server.mode | string | `"REST"` | REST server server mode | +| defaults.server_config.servers.rest.server.network | string | `"tcp"` | mysql network | +| defaults.server_config.servers.rest.server.probe_wait_time | string | `"3s"` | REST server probe wait time | +| defaults.server_config.servers.rest.server.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| defaults.server_config.servers.rest.server.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| defaults.server_config.servers.rest.server.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| defaults.server_config.servers.rest.server.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| defaults.server_config.servers.rest.server.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| defaults.server_config.servers.rest.server.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| defaults.server_config.servers.rest.server.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| defaults.server_config.servers.rest.server.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| defaults.server_config.servers.rest.server.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| defaults.server_config.servers.rest.server.socket_path | string | `""` | mysql socket_path | +| defaults.server_config.servers.rest.servicePort | int | `8080` | REST server service port | +| defaults.server_config.tls.ca | string | `"/path/to/ca"` | TLS ca path | +| defaults.server_config.tls.cert | string | `"/path/to/cert"` | TLS cert path | +| defaults.server_config.tls.enabled | bool | `false` | TLS enabled | +| defaults.server_config.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | +| defaults.server_config.tls.key | string | `"/path/to/key"` | TLS key path | +| defaults.time_zone | string | `"UTC"` | Time zone | +| discoverer.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | +| discoverer.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | +| discoverer.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | +| discoverer.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | +| discoverer.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-discoverer"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | +| discoverer.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| discoverer.annotations | object | `{}` | deployment annotations | +| discoverer.clusterRole.enabled | bool | `true` | creates clusterRole resource | +| discoverer.clusterRole.name | string | `"discoverer"` | name of clusterRole | +| discoverer.clusterRoleBinding.enabled | bool | `true` | creates clusterRoleBinding resource | +| discoverer.clusterRoleBinding.name | string | `"discoverer"` | name of clusterRoleBinding | +| discoverer.discoverer.discovery_duration | string | `"3s"` | duration to discovery | +| discoverer.discoverer.name | string | `""` | name to discovery | +| discoverer.discoverer.namespace | string | `"_MY_POD_NAMESPACE_"` | namespace to discovery | +| discoverer.discoverer.net.dialer.dual_stack_enabled | bool | `false` | TCP dialer dual stack enabled | +| discoverer.discoverer.net.dialer.keepalive | string | `"10m"` | TCP dialer keep alive | +| discoverer.discoverer.net.dialer.timeout | string | `"30s"` | TCP dialer timeout | +| discoverer.discoverer.net.dns.cache_enabled | bool | `true` | TCP DNS cache enabled | +| discoverer.discoverer.net.dns.cache_expiration | string | `"24h"` | TCP DNS cache expiration | +| discoverer.discoverer.net.dns.refresh_duration | string | `"5m"` | TCP DNS cache refresh duration | +| discoverer.discoverer.net.socket_option.ip_recover_destination_addr | bool | `false` | server listen socket option for ip_recover_destination_addr functionality | +| discoverer.discoverer.net.socket_option.ip_transparent | bool | `false` | server listen socket option for ip_transparent functionality | +| discoverer.discoverer.net.socket_option.reuse_addr | bool | `true` | server listen socket option for reuse_addr functionality | +| discoverer.discoverer.net.socket_option.reuse_port | bool | `true` | server listen socket option for reuse_port functionality | +| discoverer.discoverer.net.socket_option.tcp_cork | bool | `false` | server listen socket option for tcp_cork functionality | +| discoverer.discoverer.net.socket_option.tcp_defer_accept | bool | `true` | server listen socket option for tcp_defer_accept functionality | +| discoverer.discoverer.net.socket_option.tcp_fast_open | bool | `true` | server listen socket option for tcp_fast_open functionality | +| discoverer.discoverer.net.socket_option.tcp_no_delay | bool | `true` | server listen socket option for tcp_no_delay functionality | +| discoverer.discoverer.net.socket_option.tcp_quick_ack | bool | `true` | server listen socket option for tcp_quick_ack functionality | +| discoverer.discoverer.net.tls.ca | string | `"/path/to/ca"` | TLS ca path | +| discoverer.discoverer.net.tls.cert | string | `"/path/to/cert"` | TLS cert path | +| discoverer.discoverer.net.tls.enabled | bool | `false` | TLS enabled | +| discoverer.discoverer.net.tls.insecure_skip_verify | bool | `false` | enable/disable skip SSL certificate verification | +| discoverer.discoverer.net.tls.key | string | `"/path/to/key"` | TLS key path | +| discoverer.discoverer.selectors | object | `{"node":{"fields":{},"labels":{}},"node_metrics":{"fields":{},"labels":{}},"pod":{"fields":{},"labels":{}},"pod_metrics":{"fields":{},"labels":{}}}` | k8s resource selectors | +| discoverer.discoverer.selectors.node | object | `{"fields":{},"labels":{}}` | k8s resource selectors for node discovery | +| discoverer.discoverer.selectors.node.fields | object | `{}` | k8s field selectors for node discovery | +| discoverer.discoverer.selectors.node.labels | object | `{}` | k8s label selectors for node discovery | +| discoverer.discoverer.selectors.node_metrics | object | `{"fields":{},"labels":{}}` | k8s resource selectors for node_metrics discovery | +| discoverer.discoverer.selectors.node_metrics.fields | object | `{}` | k8s field selectors for node_metrics discovery | +| discoverer.discoverer.selectors.node_metrics.labels | object | `{}` | k8s label selectors for node_metrics discovery | +| discoverer.discoverer.selectors.pod | object | `{"fields":{},"labels":{}}` | k8s resource selectors for pod discovery | +| discoverer.discoverer.selectors.pod.fields | object | `{}` | k8s field selectors for pod discovery | +| discoverer.discoverer.selectors.pod.labels | object | `{}` | k8s label selectors for pod discovery | +| discoverer.discoverer.selectors.pod_metrics | object | `{"fields":{},"labels":{}}` | k8s resource selectors for pod_metrics discovery | +| discoverer.discoverer.selectors.pod_metrics.fields | object | `{}` | k8s field selectors for pod_metrics discovery | +| discoverer.discoverer.selectors.pod_metrics.labels | object | `{}` | k8s label selectors for pod_metrics discovery | +| discoverer.enabled | bool | `true` | discoverer enabled | +| discoverer.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | +| discoverer.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| discoverer.hpa.enabled | bool | `false` | HPA enabled | +| discoverer.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | +| discoverer.image.pullPolicy | string | `"Always"` | image pull policy | +| discoverer.image.repository | string | `"vdaas/vald-discoverer-k8s"` | image repository | +| discoverer.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| discoverer.initContainers | list | `[]` | init containers | +| discoverer.internalTrafficPolicy | string | `""` | internal traffic policy : Cluster or Local | +| discoverer.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | +| discoverer.logging | object | `{}` | logging config (overrides defaults.logging) | +| discoverer.maxReplicas | int | `2` | maximum number of replicas. if HPA is disabled, this value will be ignored. | +| discoverer.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | +| discoverer.minReplicas | int | `1` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | +| discoverer.name | string | `"vald-discoverer"` | name of discoverer deployment | +| discoverer.nodeName | string | `""` | node name | +| discoverer.nodeSelector | object | `{}` | node selector | +| discoverer.observability | object | `{"otlp":{"attribute":{"service_name":"vald-discoverer"}}}` | observability config (overrides defaults.observability) | +| discoverer.podAnnotations | object | `{}` | pod annotations | +| discoverer.podPriority.enabled | bool | `true` | discoverer pod PriorityClass enabled | +| discoverer.podPriority.value | int | `1000000` | discoverer pod PriorityClass value | +| discoverer.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| discoverer.progressDeadlineSeconds | int | `600` | progress deadline seconds | +| discoverer.resources | object | `{"limits":{"cpu":"600m","memory":"200Mi"},"requests":{"cpu":"200m","memory":"65Mi"}}` | compute resources | +| discoverer.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | +| discoverer.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | +| discoverer.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | +| discoverer.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| discoverer.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | +| discoverer.service.annotations | object | `{}` | service annotations | +| discoverer.service.labels | object | `{}` | service labels | +| discoverer.serviceAccount.enabled | bool | `true` | creates service account | +| discoverer.serviceAccount.name | string | `"vald"` | name of service account | +| discoverer.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| discoverer.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | +| discoverer.time_zone | string | `""` | Time zone | +| discoverer.tolerations | list | `[]` | tolerations | +| discoverer.topologySpreadConstraints | list | `[]` | topology spread constraints of discoverer pods | +| discoverer.version | string | `"v0.0.0"` | version of discoverer config | +| discoverer.volumeMounts | list | `[]` | volume mounts | +| discoverer.volumes | list | `[]` | volumes | +| gateway.filter.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | +| gateway.filter.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | +| gateway.filter.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | +| gateway.filter.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | +| gateway.filter.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-filter-gateway"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | +| gateway.filter.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| gateway.filter.annotations | object | `{}` | deployment annotations | +| gateway.filter.enabled | bool | `false` | gateway enabled | +| gateway.filter.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | +| gateway.filter.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| gateway.filter.gateway_config.egress_filter | object | `{"client":{},"distance_filters":[],"object_filters":[]}` | gRPC client config for egress filter | +| gateway.filter.gateway_config.egress_filter.client | object | `{}` | gRPC client config for egress filter (overrides defaults.grpc.client) | +| gateway.filter.gateway_config.egress_filter.distance_filters | list | `[]` | distance egress vector filter targets | +| gateway.filter.gateway_config.egress_filter.object_filters | list | `[]` | object egress vector filter targets | +| gateway.filter.gateway_config.gateway_client | object | `{}` | gRPC client for next gateway (overrides defaults.grpc.client) | +| gateway.filter.gateway_config.ingress_filter | object | `{"client":{},"insert_filters":[],"search_filters":[],"update_filters":[],"upsert_filters":[],"vectorizer":""}` | gRPC client config for ingress filter | +| gateway.filter.gateway_config.ingress_filter.client | object | `{}` | gRPC client for ingress filter (overrides defaults.grpc.client) | +| gateway.filter.gateway_config.ingress_filter.insert_filters | list | `[]` | insert ingress vector filter targets | +| gateway.filter.gateway_config.ingress_filter.search_filters | list | `[]` | search ingress vector filter targets | +| gateway.filter.gateway_config.ingress_filter.update_filters | list | `[]` | update ingress vector filter targets | +| gateway.filter.gateway_config.ingress_filter.upsert_filters | list | `[]` | upsert ingress vector filter targets | +| gateway.filter.gateway_config.ingress_filter.vectorizer | string | `""` | object ingress vectorize filter targets | +| gateway.filter.hpa.enabled | bool | `true` | HPA enabled | +| gateway.filter.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | +| gateway.filter.image.pullPolicy | string | `"Always"` | image pull policy | +| gateway.filter.image.repository | string | `"vdaas/vald-filter-gateway"` | image repository | +| gateway.filter.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| gateway.filter.ingress.annotations | object | `{"nginx.ingress.kubernetes.io/grpc-backend":"true"}` | annotations for ingress | +| gateway.filter.ingress.enabled | bool | `false` | gateway ingress enabled | +| gateway.filter.ingress.host | string | `"filter.gateway.vald.vdaas.org"` | ingress hostname | +| gateway.filter.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | +| gateway.filter.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | +| gateway.filter.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | +| gateway.filter.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| gateway.filter.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | +| gateway.filter.logging | object | `{}` | logging config (overrides defaults.logging) | +| gateway.filter.maxReplicas | int | `9` | maximum number of replicas. if HPA is disabled, this value will be ignored. | +| gateway.filter.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | +| gateway.filter.minReplicas | int | `3` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | +| gateway.filter.name | string | `"vald-filter-gateway"` | name of filter gateway deployment | +| gateway.filter.nodeName | string | `""` | node name | +| gateway.filter.nodeSelector | object | `{}` | node selector | +| gateway.filter.observability | object | `{"otlp":{"attribute":{"service_name":"vald-filter-gateway"}}}` | observability config (overrides defaults.observability) | +| gateway.filter.podAnnotations | object | `{}` | pod annotations | +| gateway.filter.podPriority.enabled | bool | `true` | gateway pod PriorityClass enabled | +| gateway.filter.podPriority.value | int | `1000000` | gateway pod PriorityClass value | +| gateway.filter.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| gateway.filter.progressDeadlineSeconds | int | `600` | progress deadline seconds | +| gateway.filter.resources | object | `{"limits":{"cpu":"2000m","memory":"700Mi"},"requests":{"cpu":"200m","memory":"150Mi"}}` | compute resources | +| gateway.filter.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | +| gateway.filter.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | +| gateway.filter.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | +| gateway.filter.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| gateway.filter.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | +| gateway.filter.service.annotations | object | `{}` | service annotations | +| gateway.filter.service.labels | object | `{}` | service labels | +| gateway.filter.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| gateway.filter.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | +| gateway.filter.time_zone | string | `""` | Time zone | +| gateway.filter.tolerations | list | `[]` | tolerations | +| gateway.filter.topologySpreadConstraints | list | `[]` | topology spread constraints of gateway pods | +| gateway.filter.version | string | `"v0.0.0"` | version of gateway config | +| gateway.filter.volumeMounts | list | `[]` | volume mounts | +| gateway.filter.volumes | list | `[]` | volumes | +| gateway.lb.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | +| gateway.lb.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | +| gateway.lb.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | +| gateway.lb.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | +| gateway.lb.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-lb-gateway"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | +| gateway.lb.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| gateway.lb.annotations | object | `{}` | deployment annotations | +| gateway.lb.enabled | bool | `true` | gateway enabled | +| gateway.lb.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | +| gateway.lb.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| gateway.lb.gateway_config.agent_namespace | string | `"_MY_POD_NAMESPACE_"` | agent namespace | +| gateway.lb.gateway_config.discoverer.agent_client_options | object | `{}` | gRPC client options for agents (overrides defaults.grpc.client) | +| gateway.lb.gateway_config.discoverer.client | object | `{}` | gRPC client for discoverer (overrides defaults.grpc.client) | +| gateway.lb.gateway_config.discoverer.duration | string | `"200ms"` | | +| gateway.lb.gateway_config.index_replica | int | `5` | number of index replica | +| gateway.lb.gateway_config.node_name | string | `""` | node name | +| gateway.lb.hpa.enabled | bool | `true` | HPA enabled | +| gateway.lb.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | +| gateway.lb.image.pullPolicy | string | `"Always"` | image pull policy | +| gateway.lb.image.repository | string | `"vdaas/vald-lb-gateway"` | image repository | +| gateway.lb.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| gateway.lb.ingress.annotations | object | `{"nginx.ingress.kubernetes.io/grpc-backend":"true"}` | annotations for ingress | +| gateway.lb.ingress.enabled | bool | `false` | gateway ingress enabled | +| gateway.lb.ingress.host | string | `"lb.gateway.vald.vdaas.org"` | ingress hostname | +| gateway.lb.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | +| gateway.lb.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | +| gateway.lb.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"}]` | init containers | +| gateway.lb.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| gateway.lb.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | +| gateway.lb.logging | object | `{}` | logging config (overrides defaults.logging) | +| gateway.lb.maxReplicas | int | `9` | maximum number of replicas. if HPA is disabled, this value will be ignored. | +| gateway.lb.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | +| gateway.lb.minReplicas | int | `3` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | +| gateway.lb.name | string | `"vald-lb-gateway"` | name of gateway deployment | +| gateway.lb.nodeName | string | `""` | node name | +| gateway.lb.nodeSelector | object | `{}` | node selector | +| gateway.lb.observability | object | `{"otlp":{"attribute":{"service_name":"vald-lb-gateway"}}}` | observability config (overrides defaults.observability) | +| gateway.lb.podAnnotations | object | `{}` | pod annotations | +| gateway.lb.podPriority.enabled | bool | `true` | gateway pod PriorityClass enabled | +| gateway.lb.podPriority.value | int | `1000000` | gateway pod PriorityClass value | +| gateway.lb.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| gateway.lb.progressDeadlineSeconds | int | `600` | progress deadline seconds | +| gateway.lb.resources | object | `{"limits":{"cpu":"2000m","memory":"700Mi"},"requests":{"cpu":"200m","memory":"150Mi"}}` | compute resources | +| gateway.lb.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | +| gateway.lb.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | +| gateway.lb.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | +| gateway.lb.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| gateway.lb.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | +| gateway.lb.service.annotations | object | `{}` | service annotations | +| gateway.lb.service.labels | object | `{}` | service labels | +| gateway.lb.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| gateway.lb.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | +| gateway.lb.time_zone | string | `""` | Time zone | +| gateway.lb.tolerations | list | `[]` | tolerations | +| gateway.lb.topologySpreadConstraints | list | `[]` | topology spread constraints of gateway pods | +| gateway.lb.version | string | `"v0.0.0"` | version of gateway config | +| gateway.lb.volumeMounts | list | `[]` | volume mounts | +| gateway.lb.volumes | list | `[]` | volumes | +| manager.index.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | node affinity preferred scheduling terms | +| manager.index.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | +| manager.index.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | +| manager.index.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | +| manager.index.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity preferred scheduling terms | +| manager.index.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| manager.index.annotations | object | `{}` | deployment annotations | +| manager.index.enabled | bool | `true` | index manager enabled | +| manager.index.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | +| manager.index.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | +| manager.index.image.pullPolicy | string | `"Always"` | image pull policy | +| manager.index.image.repository | string | `"vdaas/vald-manager-index"` | image repository | +| manager.index.image.tag | string | `""` | image tag (overrides defaults.image.tag) | +| manager.index.indexer.agent_namespace | string | `"_MY_POD_NAMESPACE_"` | namespace of agent pods to manage | +| manager.index.indexer.auto_index_check_duration | string | `"1m"` | check duration of automatic indexing | +| manager.index.indexer.auto_index_duration_limit | string | `"30m"` | limit duration of automatic indexing | +| manager.index.indexer.auto_index_length | int | `100` | number of cache to trigger automatic indexing | +| manager.index.indexer.auto_save_index_duration_limit | string | `"3h"` | limit duration of automatic index saving | +| manager.index.indexer.auto_save_index_wait_duration | string | `"10m"` | duration of automatic index saving wait duration for next saving | +| manager.index.indexer.concurrency | int | `1` | concurrency | +| manager.index.indexer.creation_pool_size | int | `10000` | number of pool size of create index processing | +| manager.index.indexer.discoverer.agent_client_options | object | `{"dial_option":{"net":{"dialer":{"keepalive":"15m"}}}}` | gRPC client options for agents (overrides defaults.grpc.client) | +| manager.index.indexer.discoverer.client | object | `{}` | gRPC client for discoverer (overrides defaults.grpc.client) | +| manager.index.indexer.discoverer.duration | string | `"500ms"` | refresh duration to discover | +| manager.index.indexer.node_name | string | `""` | node name | +| manager.index.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | +| manager.index.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | +| manager.index.logging | object | `{}` | logging config (overrides defaults.logging) | +| manager.index.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | +| manager.index.name | string | `"vald-manager-index"` | name of index manager deployment | +| manager.index.nodeName | string | `""` | node name | +| manager.index.nodeSelector | object | `{}` | node selector | +| manager.index.observability | object | `{"otlp":{"attribute":{"service_name":"vald-manager-index"}}}` | observability config (overrides defaults.observability) | +| manager.index.podAnnotations | object | `{}` | pod annotations | +| manager.index.podPriority.enabled | bool | `true` | index manager pod PriorityClass enabled | +| manager.index.podPriority.value | int | `1000000` | index manager pod PriorityClass value | +| manager.index.podSecurityContext | object | `{"fsGroup":65532,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for pod | +| manager.index.progressDeadlineSeconds | int | `600` | progress deadline seconds | +| manager.index.replicas | int | `1` | number of replicas | +| manager.index.resources | object | `{"limits":{"cpu":"1000m","memory":"500Mi"},"requests":{"cpu":"200m","memory":"80Mi"}}` | compute resources | +| manager.index.revisionHistoryLimit | int | `2` | number of old history to retain to allow rollback | +| manager.index.rollingUpdate.maxSurge | string | `"25%"` | max surge of rolling update | +| manager.index.rollingUpdate.maxUnavailable | string | `"25%"` | max unavailable of rolling update | +| manager.index.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}` | security context for container | +| manager.index.server_config | object | `{"healths":{"liveness":{},"readiness":{},"startup":{}},"metrics":{"pprof":{}},"servers":{"grpc":{},"rest":{}}}` | server config (overrides defaults.server_config) | +| manager.index.service.annotations | object | `{}` | service annotations | +| manager.index.service.labels | object | `{}` | service labels | +| manager.index.serviceType | string | `"ClusterIP"` | service type: ClusterIP, LoadBalancer or NodePort | +| manager.index.terminationGracePeriodSeconds | int | `30` | duration in seconds pod needs to terminate gracefully | +| manager.index.time_zone | string | `""` | Time zone | +| manager.index.tolerations | list | `[]` | tolerations | +| manager.index.topologySpreadConstraints | list | `[]` | topology spread constraints of index manager pods | +| manager.index.version | string | `"v0.0.0"` | version of index manager config | +| manager.index.volumeMounts | list | `[]` | volume mounts | +| manager.index.volumes | list | `[]` | volumes | diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index fbe5c7c235..1308f66617 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -1 +1,11872 @@ -{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"agent":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"agent enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment, DaemonSet or StatefulSet","enum":["StatefulSet","Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of agent deployment"},"ngt":{"type":"object","properties":{"auto_create_index_pool_size":{"type":"integer","description":"batch process pool size of automatic create index operation"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration":{"type":"string","description":"duration of automatic save index"},"bulk_insert_chunk_size":{"type":"integer","description":"bulk insert chunk size"},"creation_edge_size":{"type":"integer","description":"creation edge size"},"default_epsilon":{"type":"number","description":"default epsilon used for search"},"default_pool_size":{"type":"integer","description":"default create index batch pool size"},"default_radius":{"type":"number","description":"default radius used for search"},"dimension":{"type":"integer","description":"vector dimension","minimum":1},"distance_type":{"type":"string","description":"distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants","enum":["l1","l2","ang","angle","ham","hamming","cos","cosine","poincare","poinc","lorentz","loren","jac","jaccard","spjac","sparsejaccard","norml2","normalizedl2","normang","normalizedangle","normcos","normalizedcosine"]},"enable_copy_on_write":{"type":"boolean","description":"enable copy on write saving for more stable backup"},"enable_in_memory_mode":{"type":"boolean","description":"in-memory mode enabled"},"enable_proactive_gc":{"type":"boolean","description":"enable proactive GC call for reducing heap memory allocation"},"index_path":{"type":"string","description":"path to index data"},"initial_delay_max_duration":{"type":"string","description":"maximum duration for initial delay"},"kvsdb":{"type":"object","properties":{"concurrency":{"type":"integer","description":"kvsdb processing concurrency"}}},"load_index_timeout_factor":{"type":"string","description":"a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) * (factor)."},"max_load_index_timeout":{"type":"string","description":"maximum duration of load index timeout"},"min_load_index_timeout":{"type":"string","description":"minimum duration of load index timeout"},"object_type":{"type":"string","description":"object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference","enum":["float","float16","uint8"]},"search_edge_size":{"type":"integer","description":"search edge size"},"vqueue":{"type":"object","properties":{"delete_buffer_pool_size":{"type":"integer","description":"delete slice pool buffer size"},"insert_buffer_pool_size":{"type":"integer","description":"insert slice pool buffer size"}}}}},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"persistentVolume":{"type":"object","properties":{"accessMode":{"type":"string","description":"agent pod storage accessMode"},"enabled":{"type":"boolean","description":"enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode"},"mountPropagation":{"type":"string","description":"agent pod storage mountPropagation"},"size":{"type":"string","description":"size of agent pod volume"},"storageClass":{"type":"string","description":"storageClass name for agent pod volume"}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podManagementPolicy":{"type":"string","description":"pod management policy: OrderedReady or Parallel","enum":["OrderedReady","Parallel"]},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"},"partition":{"type":"integer","description":"StatefulSet partition"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"sidecar":{"type":"object","properties":{"config":{"type":"object","properties":{"auto_backup_duration":{"type":"string","description":"auto backup duration"},"auto_backup_enabled":{"type":"boolean","description":"auto backup triggered by timer is enabled"},"blob_storage":{"type":"object","properties":{"bucket":{"type":"string","description":"bucket name"},"cloud_storage":{"type":"object","properties":{"client":{"type":"object","properties":{"credentials_file_path":{"type":"string","description":"credentials file path"},"credentials_json":{"type":"string","description":"credentials json"}}},"url":{"type":"string","description":"cloud storage url"},"write_buffer_size":{"type":"integer","description":"bytes of the chunks for upload"},"write_cache_control":{"type":"string","description":"Cache-Control of HTTP Header"},"write_content_disposition":{"type":"string","description":"Content-Disposition of HTTP Header"},"write_content_encoding":{"type":"string","description":"the encoding of the blob's content"},"write_content_language":{"type":"string","description":"the language of blob's content"},"write_content_type":{"type":"string","description":"MIME type of the blob"}}},"s3":{"type":"object","properties":{"access_key":{"type":"string","description":"s3 access key"},"enable_100_continue":{"type":"boolean","description":"enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content."},"enable_content_md5_validation":{"type":"boolean","description":"enable the S3 client to add MD5 checksum to upload API calls."},"enable_endpoint_discovery":{"type":"boolean","description":"enable endpoint discovery"},"enable_endpoint_host_prefix":{"type":"boolean","description":"enable prefixing request endpoint hosts with modeled information"},"enable_param_validation":{"type":"boolean","description":"enables semantic parameter validation"},"enable_ssl":{"type":"boolean","description":"enable ssl for s3 session"},"endpoint":{"type":"string","description":"s3 endpoint"},"force_path_style":{"type":"boolean","description":"use path-style addressing"},"max_chunk_size":{"type":"string","description":"s3 download max chunk size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_part_size":{"type":"string","description":"s3 multipart upload max part size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_retries":{"type":"integer","description":"maximum number of retries of s3 client"},"region":{"type":"string","description":"s3 region"},"secret_access_key":{"type":"string","description":"s3 secret access key"},"token":{"type":"string","description":"s3 token"},"use_accelerate":{"type":"boolean","description":"enable s3 accelerate feature"},"use_arn_region":{"type":"boolean","description":"s3 service client to use the region specified in the ARN"},"use_dual_stack":{"type":"boolean","description":"use dual stack"}}},"storage_type":{"type":"string","description":"storage type","enum":["s3","cloud_storage"]}}},"client":{"type":"object","properties":{"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"transport":{"type":"object","properties":{"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"round_tripper":{"type":"object","properties":{"expect_continue_timeout":{"type":"string","description":"expect continue timeout"},"force_attempt_http_2":{"type":"boolean","description":"force attempt HTTP2"},"idle_conn_timeout":{"type":"string","description":"timeout for idle connections"},"max_conns_per_host":{"type":"integer","description":"maximum count of connections per host"},"max_idle_conns":{"type":"integer","description":"maximum count of idle connections"},"max_idle_conns_per_host":{"type":"integer","description":"maximum count of idle connections per host"},"max_response_header_size":{"type":"integer","description":"maximum response header size"},"read_buffer_size":{"type":"integer","description":"read buffer size"},"response_header_timeout":{"type":"string","description":"timeout for response header"},"tls_handshake_timeout":{"type":"string","description":"TLS handshake timeout"},"write_buffer_size":{"type":"integer","description":"write buffer size"}}}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","description":"compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd`","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer","description":"compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: \u003e= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress."}}},"filename":{"type":"string","description":"backup filename"},"filename_suffix":{"type":"string","description":"suffix for backup filename"},"post_stop_timeout":{"type":"string","description":"timeout for observing file changes during post stop"},"restore_backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"restore_backoff_enabled":{"type":"boolean","description":"restore backoff enabled"},"watch_enabled":{"type":"boolean","description":"auto backup triggered by file changes is enabled"}}},"enabled":{"type":"boolean","description":"sidecar enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainerEnabled":{"type":"boolean","description":"sidecar on initContainer mode enabled."},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"name":{"type":"string","description":"name of agent sidecar"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"agent sidecar service annotations"},"enabled":{"type":"boolean","description":"agent sidecar service enabled"},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"labels":{"type":"object","description":"agent sidecar service labels"},"type":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"time_zone":{"type":"string","description":"Time zone"},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"defaults":{"type":"object","properties":{"grpc":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}}}},"image":{"type":"object","properties":{"tag":{"type":"string","description":"docker image tag"}}},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"time_zone":{"type":"string","description":"Time zone"}}},"discoverer":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"clusterRole":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRole resource"},"name":{"type":"string","description":"name of clusterRole"}}},"clusterRoleBinding":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRoleBinding resource"},"name":{"type":"string","description":"name of clusterRoleBinding"}}},"discoverer":{"type":"object","properties":{"discovery_duration":{"type":"string","description":"duration to discovery"},"name":{"type":"string","description":"name to discovery"},"namespace":{"type":"string","description":"namespace to discovery"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"selectors":{"type":"object","description":"k8s resource selectors","properties":{"node":{"type":"object","description":"k8s resource selectors for node discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node discovery"},"labels":{"type":"object","description":"k8s label selectors for node discovery"}}},"node_metrics":{"type":"object","description":"k8s resource selectors for node_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for node_metrics discovery"}}},"pod":{"type":"object","description":"k8s resource selectors for pod discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod discovery"},"labels":{"type":"object","description":"k8s label selectors for pod discovery"}}},"pod_metrics":{"type":"object","description":"k8s resource selectors for pod_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for pod_metrics discovery"}}}}}}},"enabled":{"type":"boolean","description":"discoverer enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of discoverer deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceAccount":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates service account"},"name":{"type":"string","description":"name of service account"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"gateway":{"type":"object","properties":{"filter":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"egress_filter":{"type":"object","description":"gRPC client config for egress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"distance_filters":{"type":"array","description":"distance egress vector filter targets","items":{"type":"string"}},"object_filters":{"type":"array","description":"object egress vector filter targets","items":{"type":"string"}}}},"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"ingress_filter":{"type":"object","description":"gRPC client config for ingress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"insert_filters":{"type":"array","description":"insert ingress vector filter targets","items":{"type":"string"}},"search_filters":{"type":"array","description":"search ingress vector filter targets","items":{"type":"string"}},"update_filters":{"type":"array","description":"update ingress vector filter targets","items":{"type":"string"}},"upsert_filters":{"type":"array","description":"upsert ingress vector filter targets","items":{"type":"string"}},"vectorizer":{"type":"string","description":"object ingress vectorize filter targets"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of filter gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"lb":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"agent namespace"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","description":"number of index replica","minimum":1},"node_name":{"type":"string","description":"node name"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}},"manager":{"type":"object","properties":{"index":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"index manager enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"indexer":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"namespace of agent pods to manage"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration_limit":{"type":"string","description":"limit duration of automatic index saving"},"auto_save_index_wait_duration":{"type":"string","description":"duration of automatic index saving wait duration for next saving"},"concurrency":{"type":"integer","description":"concurrency","minimum":1},"creation_pool_size":{"type":"integer","description":"number of pool size of create index processing"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string","description":"refresh duration to discover"}}},"node_name":{"type":"string","description":"node name"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"name":{"type":"string","description":"name of index manager deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"otlp":{"type":"object","properties":{"attribute":{"type":"object","description":"default resource attribute","properties":{"namespace":{"type":"string","description":"namespace"},"node_name":{"type":"string","description":"node name"},"pod_name":{"type":"string","description":"pod name"},"service_name":{"type":"string","description":"service name"}}},"collector_endpoint":{"type":"string","description":"OpenTelemetry Collector endpoint"},"metrics_export_interval":{"type":"string","description":"metrics export interval"},"metrics_export_timeout":{"type":"string","description":"metrics export timeout"},"trace_batch_timeout":{"type":"string","description":"trace batch timeout"},"trace_export_timeout":{"type":"string","description":"trace export timeout"},"trace_max_export_batch_size":{"type":"integer","description":"trace maximum export batch size"},"trace_max_queue_size":{"type":"integer","description":"trace maximum queue size"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"replicas":{"type":"integer","description":"number of replicas","minimum":0},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}}}} +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Values", + "type": "object", + "properties": { + "agent": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "node affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "description": "node affinity required node selectors", + "items": { "type": "object" } + } + } + } + } + }, + "podAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity required scheduling terms", + "items": { "type": "object" } + } + } + }, + "podAntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity required scheduling terms", + "items": { "type": "object" } + } + } + } + } + }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "enabled": { "type": "boolean", "description": "agent enabled" }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "hpa": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "HPA enabled" }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "description": "HPA CPU utilization percentage" + } + } + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "initContainers": { + "type": "array", + "description": "init containers", + "items": { "type": "object" } + }, + "kind": { + "type": "string", + "description": "deployment kind: Deployment, DaemonSet or StatefulSet", + "enum": ["StatefulSet", "Deployment", "DaemonSet"] + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "maxReplicas": { + "type": "integer", + "description": "maximum number of replicas. if HPA is disabled, this value will be ignored.", + "minimum": 0 + }, + "maxUnavailable": { + "type": "string", + "description": "maximum number of unavailable replicas" + }, + "minReplicas": { + "type": "integer", + "description": "minimum number of replicas. if HPA is disabled, the replicas will be set to this value", + "minimum": 0 + }, + "name": { "type": "string", "description": "name of agent deployment" }, + "ngt": { + "type": "object", + "properties": { + "auto_create_index_pool_size": { + "type": "integer", + "description": "batch process pool size of automatic create index operation" + }, + "auto_index_check_duration": { + "type": "string", + "description": "check duration of automatic indexing" + }, + "auto_index_duration_limit": { + "type": "string", + "description": "limit duration of automatic indexing" + }, + "auto_index_length": { + "type": "integer", + "description": "number of cache to trigger automatic indexing" + }, + "auto_save_index_duration": { + "type": "string", + "description": "duration of automatic save index" + }, + "bulk_insert_chunk_size": { + "type": "integer", + "description": "bulk insert chunk size" + }, + "creation_edge_size": { + "type": "integer", + "description": "creation edge size" + }, + "default_epsilon": { + "type": "number", + "description": "default epsilon used for search" + }, + "default_pool_size": { + "type": "integer", + "description": "default create index batch pool size" + }, + "default_radius": { + "type": "number", + "description": "default radius used for search" + }, + "dimension": { + "type": "integer", + "description": "vector dimension", + "minimum": 1 + }, + "distance_type": { + "type": "string", + "description": "distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants", + "enum": [ + "l1", + "l2", + "ang", + "angle", + "ham", + "hamming", + "cos", + "cosine", + "poincare", + "poinc", + "lorentz", + "loren", + "jac", + "jaccard", + "spjac", + "sparsejaccard", + "norml2", + "normalizedl2", + "normang", + "normalizedangle", + "normcos", + "normalizedcosine" + ] + }, + "enable_copy_on_write": { + "type": "boolean", + "description": "enable copy on write saving for more stable backup" + }, + "enable_in_memory_mode": { + "type": "boolean", + "description": "in-memory mode enabled" + }, + "enable_proactive_gc": { + "type": "boolean", + "description": "enable proactive GC call for reducing heap memory allocation" + }, + "index_path": { + "type": "string", + "description": "path to index data" + }, + "initial_delay_max_duration": { + "type": "string", + "description": "maximum duration for initial delay" + }, + "kvsdb": { + "type": "object", + "properties": { + "concurrency": { + "type": "integer", + "description": "kvsdb processing concurrency" + } + } + }, + "load_index_timeout_factor": { + "type": "string", + "description": "a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) * (factor)." + }, + "max_load_index_timeout": { + "type": "string", + "description": "maximum duration of load index timeout" + }, + "min_load_index_timeout": { + "type": "string", + "description": "minimum duration of load index timeout" + }, + "object_type": { + "type": "string", + "description": "object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference", + "enum": ["float", "float16", "uint8"] + }, + "search_edge_size": { + "type": "integer", + "description": "search edge size" + }, + "vqueue": { + "type": "object", + "properties": { + "delete_buffer_pool_size": { + "type": "integer", + "description": "delete slice pool buffer size" + }, + "insert_buffer_pool_size": { + "type": "integer", + "description": "insert slice pool buffer size" + } + } + } + } + }, + "nodeName": { "type": "string", "description": "node name" }, + "nodeSelector": { "type": "object", "description": "node selector" }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { "type": "string", "description": "pod name" }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "trace enabled" } + } + } + } + }, + "persistentVolume": { + "type": "object", + "properties": { + "accessMode": { + "type": "string", + "description": "agent pod storage accessMode" + }, + "enabled": { + "type": "boolean", + "description": "enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode" + }, + "mountPropagation": { + "type": "string", + "description": "agent pod storage mountPropagation" + }, + "size": { + "type": "string", + "description": "size of agent pod volume" + }, + "storageClass": { + "type": "string", + "description": "storageClass name for agent pod volume" + } + } + }, + "podAnnotations": { + "type": "object", + "description": "pod annotations" + }, + "podManagementPolicy": { + "type": "string", + "description": "pod management policy: OrderedReady or Parallel", + "enum": ["OrderedReady", "Parallel"] + }, + "podPriority": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gateway pod PriorityClass enabled" + }, + "value": { + "type": "integer", + "description": "gateway pod PriorityClass value" + } + } + }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "progressDeadlineSeconds": { + "type": "integer", + "description": "progress deadline seconds" + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "revisionHistoryLimit": { + "type": "integer", + "description": "number of old history to retain to allow rollback", + "minimum": 0 + }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "string", + "description": "max surge of rolling update" + }, + "maxUnavailable": { + "type": "string", + "description": "max unavailable of rolling update" + }, + "partition": { + "type": "integer", + "description": "StatefulSet partition" + } + } + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { "type": "string", "description": "TLS cert path" }, + "enabled": { "type": "boolean", "description": "TLS enabled" }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "labels": { "type": "object", "description": "service labels" } + } + }, + "serviceType": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + }, + "sidecar": { + "type": "object", + "properties": { + "config": { + "type": "object", + "properties": { + "auto_backup_duration": { + "type": "string", + "description": "auto backup duration" + }, + "auto_backup_enabled": { + "type": "boolean", + "description": "auto backup triggered by timer is enabled" + }, + "blob_storage": { + "type": "object", + "properties": { + "bucket": { + "type": "string", + "description": "bucket name" + }, + "cloud_storage": { + "type": "object", + "properties": { + "client": { + "type": "object", + "properties": { + "credentials_file_path": { + "type": "string", + "description": "credentials file path" + }, + "credentials_json": { + "type": "string", + "description": "credentials json" + } + } + }, + "url": { + "type": "string", + "description": "cloud storage url" + }, + "write_buffer_size": { + "type": "integer", + "description": "bytes of the chunks for upload" + }, + "write_cache_control": { + "type": "string", + "description": "Cache-Control of HTTP Header" + }, + "write_content_disposition": { + "type": "string", + "description": "Content-Disposition of HTTP Header" + }, + "write_content_encoding": { + "type": "string", + "description": "the encoding of the blob's content" + }, + "write_content_language": { + "type": "string", + "description": "the language of blob's content" + }, + "write_content_type": { + "type": "string", + "description": "MIME type of the blob" + } + } + }, + "s3": { + "type": "object", + "properties": { + "access_key": { + "type": "string", + "description": "s3 access key" + }, + "enable_100_continue": { + "type": "boolean", + "description": "enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content." + }, + "enable_content_md5_validation": { + "type": "boolean", + "description": "enable the S3 client to add MD5 checksum to upload API calls." + }, + "enable_endpoint_discovery": { + "type": "boolean", + "description": "enable endpoint discovery" + }, + "enable_endpoint_host_prefix": { + "type": "boolean", + "description": "enable prefixing request endpoint hosts with modeled information" + }, + "enable_param_validation": { + "type": "boolean", + "description": "enables semantic parameter validation" + }, + "enable_ssl": { + "type": "boolean", + "description": "enable ssl for s3 session" + }, + "endpoint": { + "type": "string", + "description": "s3 endpoint" + }, + "force_path_style": { + "type": "boolean", + "description": "use path-style addressing" + }, + "max_chunk_size": { + "type": "string", + "description": "s3 download max chunk size", + "pattern": "^[0-9]+(kb|mb|gb)$" + }, + "max_part_size": { + "type": "string", + "description": "s3 multipart upload max part size", + "pattern": "^[0-9]+(kb|mb|gb)$" + }, + "max_retries": { + "type": "integer", + "description": "maximum number of retries of s3 client" + }, + "region": { + "type": "string", + "description": "s3 region" + }, + "secret_access_key": { + "type": "string", + "description": "s3 secret access key" + }, + "token": { + "type": "string", + "description": "s3 token" + }, + "use_accelerate": { + "type": "boolean", + "description": "enable s3 accelerate feature" + }, + "use_arn_region": { + "type": "boolean", + "description": "s3 service client to use the region specified in the ARN" + }, + "use_dual_stack": { + "type": "boolean", + "description": "use dual stack" + } + } + }, + "storage_type": { + "type": "string", + "description": "storage type", + "enum": ["s3", "cloud_storage"] + } + } + }, + "client": { + "type": "object", + "properties": { + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "transport": { + "type": "object", + "properties": { + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "round_tripper": { + "type": "object", + "properties": { + "expect_continue_timeout": { + "type": "string", + "description": "expect continue timeout" + }, + "force_attempt_http_2": { + "type": "boolean", + "description": "force attempt HTTP2" + }, + "idle_conn_timeout": { + "type": "string", + "description": "timeout for idle connections" + }, + "max_conns_per_host": { + "type": "integer", + "description": "maximum count of connections per host" + }, + "max_idle_conns": { + "type": "integer", + "description": "maximum count of idle connections" + }, + "max_idle_conns_per_host": { + "type": "integer", + "description": "maximum count of idle connections per host" + }, + "max_response_header_size": { + "type": "integer", + "description": "maximum response header size" + }, + "read_buffer_size": { + "type": "integer", + "description": "read buffer size" + }, + "response_header_timeout": { + "type": "string", + "description": "timeout for response header" + }, + "tls_handshake_timeout": { + "type": "string", + "description": "TLS handshake timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "write buffer size" + } + } + } + } + } + } + }, + "compress": { + "type": "object", + "properties": { + "compress_algorithm": { + "type": "string", + "description": "compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd`", + "enum": ["gob", "gzip", "lz4", "zstd"] + }, + "compression_level": { + "type": "integer", + "description": "compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: \u003e= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress." + } + } + }, + "filename": { + "type": "string", + "description": "backup filename" + }, + "filename_suffix": { + "type": "string", + "description": "suffix for backup filename" + }, + "post_stop_timeout": { + "type": "string", + "description": "timeout for observing file changes during post stop" + }, + "restore_backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "restore_backoff_enabled": { + "type": "boolean", + "description": "restore backoff enabled" + }, + "watch_enabled": { + "type": "boolean", + "description": "auto backup triggered by file changes is enabled" + } + } + }, + "enabled": { "type": "boolean", "description": "sidecar enabled" }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "initContainerEnabled": { + "type": "boolean", + "description": "sidecar on initContainer mode enabled." + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "name": { + "type": "string", + "description": "name of agent sidecar" + }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { + "type": "string", + "description": "pod name" + }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "trace enabled" + } + } + } + } + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "agent sidecar service annotations" + }, + "enabled": { + "type": "boolean", + "description": "agent sidecar service enabled" + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "labels": { + "type": "object", + "description": "agent sidecar service labels" + }, + "type": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + } + } + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + } + } + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "description": "duration in seconds pod needs to terminate gracefully", + "minimum": 0 + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "topologySpreadConstraints": { + "type": "array", + "description": "topology spread constraints of gateway pods", + "items": { "type": "object" } + }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + }, + "volumeMounts": { + "type": "array", + "description": "volume mounts", + "items": { "type": "object" } + }, + "volumes": { + "type": "array", + "description": "volumes", + "items": { "type": "object" } + } + } + }, + "defaults": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + }, + "wait_for_ready": { "type": "boolean" } + } + } + } + }, + "image": { + "type": "object", + "properties": { + "tag": { "type": "string", "description": "docker image tag" } + } + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { "type": "string", "description": "pod name" }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "trace enabled" } + } + } + } + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { "type": "string", "description": "TLS cert path" }, + "enabled": { "type": "boolean", "description": "TLS enabled" }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "time_zone": { "type": "string", "description": "Time zone" } + } + }, + "discoverer": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "node affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "description": "node affinity required node selectors", + "items": { "type": "object" } + } + } + } + } + }, + "podAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity required scheduling terms", + "items": { "type": "object" } + } + } + }, + "podAntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity required scheduling terms", + "items": { "type": "object" } + } + } + } + } + }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "clusterRole": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "creates clusterRole resource" + }, + "name": { "type": "string", "description": "name of clusterRole" } + } + }, + "clusterRoleBinding": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "creates clusterRoleBinding resource" + }, + "name": { + "type": "string", + "description": "name of clusterRoleBinding" + } + } + }, + "discoverer": { + "type": "object", + "properties": { + "discovery_duration": { + "type": "string", + "description": "duration to discovery" + }, + "name": { "type": "string", "description": "name to discovery" }, + "namespace": { + "type": "string", + "description": "namespace to discovery" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "selectors": { + "type": "object", + "description": "k8s resource selectors", + "properties": { + "node": { + "type": "object", + "description": "k8s resource selectors for node discovery", + "properties": { + "fields": { + "type": "object", + "description": "k8s field selectors for node discovery" + }, + "labels": { + "type": "object", + "description": "k8s label selectors for node discovery" + } + } + }, + "node_metrics": { + "type": "object", + "description": "k8s resource selectors for node_metrics discovery", + "properties": { + "fields": { + "type": "object", + "description": "k8s field selectors for node_metrics discovery" + }, + "labels": { + "type": "object", + "description": "k8s label selectors for node_metrics discovery" + } + } + }, + "pod": { + "type": "object", + "description": "k8s resource selectors for pod discovery", + "properties": { + "fields": { + "type": "object", + "description": "k8s field selectors for pod discovery" + }, + "labels": { + "type": "object", + "description": "k8s label selectors for pod discovery" + } + } + }, + "pod_metrics": { + "type": "object", + "description": "k8s resource selectors for pod_metrics discovery", + "properties": { + "fields": { + "type": "object", + "description": "k8s field selectors for pod_metrics discovery" + }, + "labels": { + "type": "object", + "description": "k8s label selectors for pod_metrics discovery" + } + } + } + } + } + } + }, + "enabled": { "type": "boolean", "description": "discoverer enabled" }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "hpa": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "HPA enabled" }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "description": "HPA CPU utilization percentage" + } + } + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "initContainers": { + "type": "array", + "description": "init containers", + "items": { "type": "object" } + }, + "internalTrafficPolicy": { + "type": "string", + "description": "internal traffic policy : Cluster or Local" + }, + "kind": { + "type": "string", + "description": "deployment kind: Deployment or DaemonSet", + "enum": ["Deployment", "DaemonSet"] + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "maxReplicas": { + "type": "integer", + "description": "maximum number of replicas. if HPA is disabled, this value will be ignored.", + "minimum": 0 + }, + "maxUnavailable": { + "type": "string", + "description": "maximum number of unavailable replicas" + }, + "minReplicas": { + "type": "integer", + "description": "minimum number of replicas. if HPA is disabled, the replicas will be set to this value", + "minimum": 0 + }, + "name": { + "type": "string", + "description": "name of discoverer deployment" + }, + "nodeName": { "type": "string", "description": "node name" }, + "nodeSelector": { "type": "object", "description": "node selector" }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { "type": "string", "description": "pod name" }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "trace enabled" } + } + } + } + }, + "podAnnotations": { + "type": "object", + "description": "pod annotations" + }, + "podPriority": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gateway pod PriorityClass enabled" + }, + "value": { + "type": "integer", + "description": "gateway pod PriorityClass value" + } + } + }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "progressDeadlineSeconds": { + "type": "integer", + "description": "progress deadline seconds" + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "revisionHistoryLimit": { + "type": "integer", + "description": "number of old history to retain to allow rollback", + "minimum": 0 + }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "string", + "description": "max surge of rolling update" + }, + "maxUnavailable": { + "type": "string", + "description": "max unavailable of rolling update" + } + } + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { "type": "string", "description": "TLS cert path" }, + "enabled": { "type": "boolean", "description": "TLS enabled" }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "labels": { "type": "object", "description": "service labels" } + } + }, + "serviceAccount": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "creates service account" + }, + "name": { + "type": "string", + "description": "name of service account" + } + } + }, + "serviceType": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "description": "duration in seconds pod needs to terminate gracefully", + "minimum": 0 + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "topologySpreadConstraints": { + "type": "array", + "description": "topology spread constraints of gateway pods", + "items": { "type": "object" } + }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + }, + "volumeMounts": { + "type": "array", + "description": "volume mounts", + "items": { "type": "object" } + }, + "volumes": { + "type": "array", + "description": "volumes", + "items": { "type": "object" } + } + } + }, + "gateway": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "node affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "description": "node affinity required node selectors", + "items": { "type": "object" } + } + } + } + } + }, + "podAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity required scheduling terms", + "items": { "type": "object" } + } + } + }, + "podAntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity required scheduling terms", + "items": { "type": "object" } + } + } + } + } + }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "enabled": { "type": "boolean", "description": "gateway enabled" }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "gateway_config": { + "type": "object", + "properties": { + "egress_filter": { + "type": "object", + "description": "gRPC client config for egress filter", + "properties": { + "client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "distance_filters": { + "type": "array", + "description": "distance egress vector filter targets", + "items": { "type": "string" } + }, + "object_filters": { + "type": "array", + "description": "object egress vector filter targets", + "items": { "type": "string" } + } + } + }, + "gateway_client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "ingress_filter": { + "type": "object", + "description": "gRPC client config for ingress filter", + "properties": { + "client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "insert_filters": { + "type": "array", + "description": "insert ingress vector filter targets", + "items": { "type": "string" } + }, + "search_filters": { + "type": "array", + "description": "search ingress vector filter targets", + "items": { "type": "string" } + }, + "update_filters": { + "type": "array", + "description": "update ingress vector filter targets", + "items": { "type": "string" } + }, + "upsert_filters": { + "type": "array", + "description": "upsert ingress vector filter targets", + "items": { "type": "string" } + }, + "vectorizer": { + "type": "string", + "description": "object ingress vectorize filter targets" + } + } + } + } + }, + "hpa": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "HPA enabled" }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "description": "HPA CPU utilization percentage" + } + } + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "ingress": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "annotations for ingress" + }, + "enabled": { + "type": "boolean", + "description": "gateway ingress enabled" + }, + "host": { "type": "string", "description": "ingress hostname" }, + "pathType": { + "type": "string", + "description": "gateway ingress pathType" + }, + "servicePort": { + "type": "string", + "description": "service port to be exposed by ingress" + } + } + }, + "initContainers": { + "type": "array", + "description": "init containers", + "items": { "type": "object" } + }, + "internalTrafficPolicy": { + "type": "string", + "description": "internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "kind": { + "type": "string", + "description": "deployment kind: Deployment or DaemonSet", + "enum": ["Deployment", "DaemonSet"] + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "maxReplicas": { + "type": "integer", + "description": "maximum number of replicas. if HPA is disabled, this value will be ignored.", + "minimum": 0 + }, + "maxUnavailable": { + "type": "string", + "description": "maximum number of unavailable replicas" + }, + "minReplicas": { + "type": "integer", + "description": "minimum number of replicas. if HPA is disabled, the replicas will be set to this value", + "minimum": 0 + }, + "name": { + "type": "string", + "description": "name of filter gateway deployment" + }, + "nodeName": { "type": "string", "description": "node name" }, + "nodeSelector": { + "type": "object", + "description": "node selector" + }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { + "type": "string", + "description": "pod name" + }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "trace enabled" + } + } + } + } + }, + "podAnnotations": { + "type": "object", + "description": "pod annotations" + }, + "podPriority": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gateway pod PriorityClass enabled" + }, + "value": { + "type": "integer", + "description": "gateway pod PriorityClass value" + } + } + }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "progressDeadlineSeconds": { + "type": "integer", + "description": "progress deadline seconds" + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "revisionHistoryLimit": { + "type": "integer", + "description": "number of old history to retain to allow rollback", + "minimum": 0 + }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "string", + "description": "max surge of rolling update" + }, + "maxUnavailable": { + "type": "string", + "description": "max unavailable of rolling update" + } + } + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "labels": { "type": "object", "description": "service labels" } + } + }, + "serviceType": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "description": "duration in seconds pod needs to terminate gracefully", + "minimum": 0 + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "topologySpreadConstraints": { + "type": "array", + "description": "topology spread constraints of gateway pods", + "items": { "type": "object" } + }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + }, + "volumeMounts": { + "type": "array", + "description": "volume mounts", + "items": { "type": "object" } + }, + "volumes": { + "type": "array", + "description": "volumes", + "items": { "type": "object" } + } + } + }, + "lb": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "node affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "description": "node affinity required node selectors", + "items": { "type": "object" } + } + } + } + } + }, + "podAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity required scheduling terms", + "items": { "type": "object" } + } + } + }, + "podAntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity required scheduling terms", + "items": { "type": "object" } + } + } + } + } + }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "enabled": { "type": "boolean", "description": "gateway enabled" }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "gateway_config": { + "type": "object", + "properties": { + "agent_namespace": { + "type": "string", + "description": "agent namespace" + }, + "discoverer": { + "type": "object", + "properties": { + "agent_client_options": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "duration": { "type": "string" } + } + }, + "index_replica": { + "type": "integer", + "description": "number of index replica", + "minimum": 1 + }, + "node_name": { "type": "string", "description": "node name" } + } + }, + "hpa": { + "type": "object", + "properties": { + "enabled": { "type": "boolean", "description": "HPA enabled" }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "description": "HPA CPU utilization percentage" + } + } + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "ingress": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "annotations for ingress" + }, + "enabled": { + "type": "boolean", + "description": "gateway ingress enabled" + }, + "host": { "type": "string", "description": "ingress hostname" }, + "pathType": { + "type": "string", + "description": "gateway ingress pathType" + }, + "servicePort": { + "type": "string", + "description": "service port to be exposed by ingress" + } + } + }, + "initContainers": { + "type": "array", + "description": "init containers", + "items": { "type": "object" } + }, + "internalTrafficPolicy": { + "type": "string", + "description": "internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "kind": { + "type": "string", + "description": "deployment kind: Deployment or DaemonSet", + "enum": ["Deployment", "DaemonSet"] + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "maxReplicas": { + "type": "integer", + "description": "maximum number of replicas. if HPA is disabled, this value will be ignored.", + "minimum": 0 + }, + "maxUnavailable": { + "type": "string", + "description": "maximum number of unavailable replicas" + }, + "minReplicas": { + "type": "integer", + "description": "minimum number of replicas. if HPA is disabled, the replicas will be set to this value", + "minimum": 0 + }, + "name": { + "type": "string", + "description": "name of gateway deployment" + }, + "nodeName": { "type": "string", "description": "node name" }, + "nodeSelector": { + "type": "object", + "description": "node selector" + }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { + "type": "string", + "description": "pod name" + }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "trace enabled" + } + } + } + } + }, + "podAnnotations": { + "type": "object", + "description": "pod annotations" + }, + "podPriority": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gateway pod PriorityClass enabled" + }, + "value": { + "type": "integer", + "description": "gateway pod PriorityClass value" + } + } + }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "progressDeadlineSeconds": { + "type": "integer", + "description": "progress deadline seconds" + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "revisionHistoryLimit": { + "type": "integer", + "description": "number of old history to retain to allow rollback", + "minimum": 0 + }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "string", + "description": "max surge of rolling update" + }, + "maxUnavailable": { + "type": "string", + "description": "max unavailable of rolling update" + } + } + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "labels": { "type": "object", "description": "service labels" } + } + }, + "serviceType": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "description": "duration in seconds pod needs to terminate gracefully", + "minimum": 0 + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "topologySpreadConstraints": { + "type": "array", + "description": "topology spread constraints of gateway pods", + "items": { "type": "object" } + }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + }, + "volumeMounts": { + "type": "array", + "description": "volume mounts", + "items": { "type": "object" } + }, + "volumes": { + "type": "array", + "description": "volumes", + "items": { "type": "object" } + } + } + } + } + }, + "manager": { + "type": "object", + "properties": { + "index": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "node affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "description": "node affinity required node selectors", + "items": { "type": "object" } + } + } + } + } + }, + "podAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod affinity required scheduling terms", + "items": { "type": "object" } + } + } + }, + "podAntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity preferred scheduling terms", + "items": { "type": "object" } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "description": "pod anti-affinity required scheduling terms", + "items": { "type": "object" } + } + } + } + } + }, + "annotations": { + "type": "object", + "description": "deployment annotations" + }, + "enabled": { + "type": "boolean", + "description": "index manager enabled" + }, + "env": { + "type": "array", + "description": "environment variables", + "items": { "type": "object" } + }, + "externalTrafficPolicy": { + "type": "string", + "description": "external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local" + }, + "image": { + "type": "object", + "properties": { + "pullPolicy": { + "type": "string", + "description": "image pull policy", + "enum": ["Always", "Never", "IfNotPresent"] + }, + "repository": { + "type": "string", + "description": "image repository" + }, + "tag": { + "type": "string", + "description": "image tag (overrides defaults.image.tag)" + } + } + }, + "indexer": { + "type": "object", + "properties": { + "agent_namespace": { + "type": "string", + "description": "namespace of agent pods to manage" + }, + "auto_index_check_duration": { + "type": "string", + "description": "check duration of automatic indexing" + }, + "auto_index_duration_limit": { + "type": "string", + "description": "limit duration of automatic indexing" + }, + "auto_index_length": { + "type": "integer", + "description": "number of cache to trigger automatic indexing" + }, + "auto_save_index_duration_limit": { + "type": "string", + "description": "limit duration of automatic index saving" + }, + "auto_save_index_wait_duration": { + "type": "string", + "description": "duration of automatic index saving wait duration for next saving" + }, + "concurrency": { + "type": "integer", + "description": "concurrency", + "minimum": 1 + }, + "creation_pool_size": { + "type": "integer", + "description": "number of pool size of create index processing" + }, + "discoverer": { + "type": "object", + "properties": { + "agent_client_options": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "client": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "description": "gRPC client addresses", + "items": { "type": "string" } + }, + "backoff": { + "type": "object", + "properties": { + "backoff_factor": { + "type": "number", + "description": "gRPC client backoff factor" + }, + "backoff_time_limit": { + "type": "string", + "description": "gRPC client backoff time limit" + }, + "enable_error_log": { + "type": "boolean", + "description": "gRPC client backoff log enabled" + }, + "initial_duration": { + "type": "string", + "description": "gRPC client backoff initial duration" + }, + "jitter_limit": { + "type": "string", + "description": "gRPC client backoff jitter limit" + }, + "maximum_duration": { + "type": "string", + "description": "gRPC client backoff maximum duration" + }, + "retry_count": { + "type": "integer", + "description": "gRPC client backoff retry count" + } + } + }, + "call_option": { "type": "object" }, + "circuit_breaker": { + "type": "object", + "properties": { + "closed_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker closed error rate" + }, + "closed_refresh_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker closed refresh timeout" + }, + "half_open_error_rate": { + "type": "number", + "description": "gRPC client circuitbreaker half-open error rate" + }, + "min_samples": { + "type": "integer", + "description": "gRPC client circuitbreaker minimum sampling count" + }, + "open_timeout": { + "type": "string", + "description": "gRPC client circuitbreaker open timeout" + } + } + }, + "connection_pool": { + "type": "object", + "properties": { + "enable_dns_resolver": { + "type": "boolean", + "description": "enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance" + }, + "enable_rebalance": { + "type": "boolean", + "description": "enables gRPC client connection pool rebalance" + }, + "old_conn_close_duration": { + "type": "string", + "description": "makes delay before gRPC client connection closing during connection pool rebalance" + }, + "rebalance_duration": { + "type": "string", + "description": "gRPC client connection pool rebalance duration" + }, + "size": { + "type": "integer", + "description": "gRPC client connection pool size" + } + } + }, + "dial_option": { + "type": "object", + "properties": { + "backoff_base_delay": { + "type": "string", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_jitter": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "backoff_max_delay": { + "type": "string", + "description": "gRPC client dial option max backoff delay" + }, + "backoff_multiplier": { + "type": "number", + "description": "gRPC client dial option base backoff delay" + }, + "enable_backoff": { + "type": "boolean", + "description": "gRPC client dial option backoff enabled" + }, + "initial_connection_window_size": { + "type": "integer", + "description": "gRPC client dial option initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC client dial option initial window size" + }, + "insecure": { + "type": "boolean", + "description": "gRPC client dial option insecure enabled" + }, + "interceptors": { + "type": "array", + "description": "gRPC client interceptors", + "items": { + "type": "string", + "enum": ["TraceInterceptor"] + } + }, + "keepalive": { + "type": "object", + "properties": { + "permit_without_stream": { + "type": "boolean", + "description": "gRPC client keep alive permit without stream" + }, + "time": { + "type": "string", + "description": "gRPC client keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC client keep alive timeout" + } + } + }, + "max_msg_size": { + "type": "integer", + "description": "gRPC client dial option max message size" + }, + "min_connection_timeout": { + "type": "string", + "description": "gRPC client dial option minimum connection timeout" + }, + "net": { + "type": "object", + "properties": { + "dialer": { + "type": "object", + "properties": { + "dual_stack_enabled": { + "type": "boolean", + "description": "gRPC client TCP dialer dual stack enabled" + }, + "keepalive": { + "type": "string", + "description": "gRPC client TCP dialer keep alive" + }, + "timeout": { + "type": "string", + "description": "gRPC client TCP dialer timeout" + } + } + }, + "dns": { + "type": "object", + "properties": { + "cache_enabled": { + "type": "boolean", + "description": "gRPC client TCP DNS cache enabled" + }, + "cache_expiration": { + "type": "string", + "description": "gRPC client TCP DNS cache expiration" + }, + "refresh_duration": { + "type": "string", + "description": "gRPC client TCP DNS cache refresh duration" + } + } + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + } + } + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC client dial option read buffer size" + }, + "timeout": { + "type": "string", + "description": "gRPC client dial option timeout" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC client dial option write buffer size" + } + } + }, + "health_check_duration": { + "type": "string", + "description": "gRPC client health check duration" + }, + "max_recv_msg_size": { "type": "integer" }, + "max_retry_rpc_buffer_size": { "type": "integer" }, + "max_send_msg_size": { "type": "integer" }, + "tls": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "description": "TLS ca path" + }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { + "type": "string", + "description": "TLS key path" + } + } + }, + "wait_for_ready": { "type": "boolean" } + } + }, + "duration": { + "type": "string", + "description": "refresh duration to discover" + } + } + }, + "node_name": { "type": "string", "description": "node name" } + } + }, + "initContainers": { + "type": "array", + "description": "init containers", + "items": { "type": "object" } + }, + "kind": { + "type": "string", + "description": "deployment kind: Deployment or DaemonSet", + "enum": ["Deployment", "DaemonSet"] + }, + "logging": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "logging format. logging format must be `raw` or `json`", + "enum": ["raw", "json"] + }, + "level": { + "type": "string", + "description": "logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.", + "enum": ["debug", "info", "warn", "error", "fatal"] + }, + "logger": { + "type": "string", + "description": "logger name. currently logger must be `glg` or `zap`.", + "enum": ["glg", "zap"] + } + } + }, + "maxUnavailable": { + "type": "string", + "description": "maximum number of unavailable replicas" + }, + "name": { + "type": "string", + "description": "name of index manager deployment" + }, + "nodeName": { "type": "string", "description": "node name" }, + "nodeSelector": { + "type": "object", + "description": "node selector" + }, + "observability": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "observability features enabled" + }, + "metrics": { + "type": "object", + "properties": { + "enable_cgo": { + "type": "boolean", + "description": "CGO metrics enabled" + }, + "enable_goroutine": { + "type": "boolean", + "description": "goroutine metrics enabled" + }, + "enable_memory": { + "type": "boolean", + "description": "memory metrics enabled" + }, + "enable_version_info": { + "type": "boolean", + "description": "version info metrics enabled" + }, + "version_info_labels": { + "type": "array", + "description": "enabled label names of version info", + "items": { + "type": "string", + "enum": [ + "vald_version", + "server_name", + "git_commit", + "build_time", + "go_version", + "go_os", + "go_arch", + "cgo_enabled", + "ngt_version", + "build_cpu_info_flags" + ] + } + } + } + }, + "otlp": { + "type": "object", + "properties": { + "attribute": { + "type": "object", + "description": "default resource attribute", + "properties": { + "namespace": { + "type": "string", + "description": "namespace" + }, + "node_name": { + "type": "string", + "description": "node name" + }, + "pod_name": { + "type": "string", + "description": "pod name" + }, + "service_name": { + "type": "string", + "description": "service name" + } + } + }, + "collector_endpoint": { + "type": "string", + "description": "OpenTelemetry Collector endpoint" + }, + "metrics_export_interval": { + "type": "string", + "description": "metrics export interval" + }, + "metrics_export_timeout": { + "type": "string", + "description": "metrics export timeout" + }, + "trace_batch_timeout": { + "type": "string", + "description": "trace batch timeout" + }, + "trace_export_timeout": { + "type": "string", + "description": "trace export timeout" + }, + "trace_max_export_batch_size": { + "type": "integer", + "description": "trace maximum export batch size" + }, + "trace_max_queue_size": { + "type": "integer", + "description": "trace maximum queue size" + } + } + }, + "trace": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "trace enabled" + } + } + } + } + }, + "podAnnotations": { + "type": "object", + "description": "pod annotations" + }, + "podPriority": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gateway pod PriorityClass enabled" + }, + "value": { + "type": "integer", + "description": "gateway pod PriorityClass value" + } + } + }, + "podSecurityContext": { + "type": "object", + "description": "security context for pod" + }, + "progressDeadlineSeconds": { + "type": "integer", + "description": "progress deadline seconds" + }, + "replicas": { + "type": "integer", + "description": "number of replicas", + "minimum": 0 + }, + "resources": { + "type": "object", + "description": "compute resources", + "properties": { + "limits": { "type": "object" }, + "requests": { "type": "object" } + } + }, + "revisionHistoryLimit": { + "type": "integer", + "description": "number of old history to retain to allow rollback", + "minimum": 0 + }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "string", + "description": "max surge of rolling update" + }, + "maxUnavailable": { + "type": "string", + "description": "max unavailable of rolling update" + } + } + }, + "securityContext": { + "type": "object", + "description": "security context for container" + }, + "server_config": { + "type": "object", + "properties": { + "full_shutdown_duration": { + "type": "string", + "description": "server full shutdown duration" + }, + "healths": { + "type": "object", + "properties": { + "liveness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "liveness server enabled" + }, + "host": { + "type": "string", + "description": "liveness server host" + }, + "livenessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "liveness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "liveness probe path" + }, + "port": { + "type": "string", + "description": "liveness probe port" + }, + "scheme": { + "type": "string", + "description": "liveness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "liveness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "liveness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "liveness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "liveness probe timeout seconds" + } + } + }, + "port": { + "type": "integer", + "description": "liveness server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "liveness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "liveness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "liveness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "liveness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "liveness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "liveness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "liveness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "liveness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "liveness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "readiness": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "readiness server enabled" + }, + "host": { + "type": "string", + "description": "readiness server host" + }, + "port": { + "type": "integer", + "description": "readiness server port", + "maximum": 65535, + "minimum": 0 + }, + "readinessProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "readiness probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "readiness probe path" + }, + "port": { + "type": "string", + "description": "readiness probe port" + }, + "scheme": { + "type": "string", + "description": "readiness probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "readiness probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "readiness probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "readiness probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "readiness probe timeout seconds" + } + } + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "readiness server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "readiness server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "readiness server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "readiness server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "readiness server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "readiness server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "readiness server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "readiness server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "readiness server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "startup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "startup server enabled" + }, + "port": { + "type": "integer", + "description": "startup server port", + "maximum": 65535, + "minimum": 0 + }, + "startupProbe": { + "type": "object", + "properties": { + "failureThreshold": { + "type": "integer", + "description": "startup probe failure threshold" + }, + "httpGet": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "startup probe path" + }, + "port": { + "type": "string", + "description": "startup probe port" + }, + "scheme": { + "type": "string", + "description": "startup probe scheme" + } + } + }, + "initialDelaySeconds": { + "type": "integer", + "description": "startup probe initial delay seconds" + }, + "periodSeconds": { + "type": "integer", + "description": "startup probe period seconds" + }, + "successThreshold": { + "type": "integer", + "description": "startup probe success threshold" + }, + "timeoutSeconds": { + "type": "integer", + "description": "startup probe timeout seconds" + } + } + } + } + } + } + }, + "metrics": { + "type": "object", + "properties": { + "pprof": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "pprof server enabled" + }, + "host": { + "type": "string", + "description": "pprof server host" + }, + "port": { + "type": "integer", + "description": "pprof server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "pprof server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "pprof server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "pprof server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "pprof server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "pprof server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "pprof server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "pprof server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "pprof server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "pprof server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "gRPC server enabled" + }, + "host": { + "type": "string", + "description": "gRPC server host" + }, + "port": { + "type": "integer", + "description": "gRPC server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "grpc": { + "type": "object", + "properties": { + "bidirectional_stream_concurrency": { + "type": "integer", + "description": "gRPC server bidirectional stream concurrency" + }, + "connection_timeout": { + "type": "string", + "description": "gRPC server connection timeout" + }, + "enable_reflection": { + "type": "boolean", + "description": "gRPC server reflection option" + }, + "header_table_size": { + "type": "integer", + "description": "gRPC server header table size" + }, + "initial_conn_window_size": { + "type": "integer", + "description": "gRPC server initial connection window size" + }, + "initial_window_size": { + "type": "integer", + "description": "gRPC server initial window size" + }, + "interceptors": { + "type": "array", + "description": "gRPC server interceptors", + "items": { + "type": "string", + "enum": [ + "RecoverInterceptor", + "AccessLogInterceptor", + "TraceInterceptor", + "MetricInterceptor" + ] + } + }, + "keepalive": { + "type": "object", + "properties": { + "max_conn_age": { + "type": "string", + "description": "gRPC server keep alive max connection age" + }, + "max_conn_age_grace": { + "type": "string", + "description": "gRPC server keep alive max connection age grace" + }, + "max_conn_idle": { + "type": "string", + "description": "gRPC server keep alive max connection idle" + }, + "min_time": { + "type": "string", + "description": "gRPC server keep alive min_time" + }, + "permit_without_stream": { + "type": "boolean", + "description": "gRPC server keep alive permit_without_stream" + }, + "time": { + "type": "string", + "description": "gRPC server keep alive time" + }, + "timeout": { + "type": "string", + "description": "gRPC server keep alive timeout" + } + } + }, + "max_header_list_size": { + "type": "integer", + "description": "gRPC server max header list size" + }, + "max_receive_message_size": { + "type": "integer", + "description": "gRPC server max receive message size" + }, + "max_send_message_size": { + "type": "integer", + "description": "gRPC server max send message size" + }, + "read_buffer_size": { + "type": "integer", + "description": "gRPC server read buffer size" + }, + "write_buffer_size": { + "type": "integer", + "description": "gRPC server write buffer size" + } + } + }, + "mode": { + "type": "string", + "description": "gRPC server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "gRPC server probe wait time" + }, + "restart": { + "type": "boolean", + "description": "gRPC server restart" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "gRPC server service port", + "maximum": 65535, + "minimum": 0 + } + } + }, + "rest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "REST server enabled" + }, + "host": { + "type": "string", + "description": "REST server host" + }, + "port": { + "type": "integer", + "description": "REST server port", + "maximum": 65535, + "minimum": 0 + }, + "server": { + "type": "object", + "properties": { + "http": { + "type": "object", + "properties": { + "handler_timeout": { + "type": "string", + "description": "REST server handler timeout" + }, + "idle_timeout": { + "type": "string", + "description": "REST server idle timeout" + }, + "read_header_timeout": { + "type": "string", + "description": "REST server read header timeout" + }, + "read_timeout": { + "type": "string", + "description": "REST server read timeout" + }, + "shutdown_duration": { + "type": "string", + "description": "REST server shutdown duration" + }, + "write_timeout": { + "type": "string", + "description": "REST server write timeout" + } + } + }, + "mode": { + "type": "string", + "description": "REST server server mode" + }, + "network": { + "type": "string", + "description": "mysql network", + "enum": [ + "tcp", + "tcp4", + "tcp6", + "udp", + "udp4", + "udp6", + "unix", + "unixgram", + "unixpacket" + ] + }, + "probe_wait_time": { + "type": "string", + "description": "REST server probe wait time" + }, + "socket_option": { + "type": "object", + "properties": { + "ip_recover_destination_addr": { + "type": "boolean", + "description": "server listen socket option for ip_recover_destination_addr functionality" + }, + "ip_transparent": { + "type": "boolean", + "description": "server listen socket option for ip_transparent functionality" + }, + "reuse_addr": { + "type": "boolean", + "description": "server listen socket option for reuse_addr functionality" + }, + "reuse_port": { + "type": "boolean", + "description": "server listen socket option for reuse_port functionality" + }, + "tcp_cork": { + "type": "boolean", + "description": "server listen socket option for tcp_cork functionality" + }, + "tcp_defer_accept": { + "type": "boolean", + "description": "server listen socket option for tcp_defer_accept functionality" + }, + "tcp_fast_open": { + "type": "boolean", + "description": "server listen socket option for tcp_fast_open functionality" + }, + "tcp_no_delay": { + "type": "boolean", + "description": "server listen socket option for tcp_no_delay functionality" + }, + "tcp_quick_ack": { + "type": "boolean", + "description": "server listen socket option for tcp_quick_ack functionality" + } + } + }, + "socket_path": { + "type": "string", + "description": "mysql socket_path" + } + } + }, + "servicePort": { + "type": "integer", + "description": "REST server service port", + "maximum": 65535, + "minimum": 0 + } + } + } + } + }, + "tls": { + "type": "object", + "properties": { + "ca": { "type": "string", "description": "TLS ca path" }, + "cert": { + "type": "string", + "description": "TLS cert path" + }, + "enabled": { + "type": "boolean", + "description": "TLS enabled" + }, + "insecure_skip_verify": { + "type": "boolean", + "description": "enable/disable skip SSL certificate verification" + }, + "key": { "type": "string", "description": "TLS key path" } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "description": "service annotations" + }, + "labels": { "type": "object", "description": "service labels" } + } + }, + "serviceType": { + "type": "string", + "description": "service type: ClusterIP, LoadBalancer or NodePort", + "enum": ["ClusterIP", "LoadBalancer", "NodePort"] + }, + "terminationGracePeriodSeconds": { + "type": "integer", + "description": "duration in seconds pod needs to terminate gracefully", + "minimum": 0 + }, + "time_zone": { "type": "string", "description": "Time zone" }, + "tolerations": { + "type": "array", + "description": "tolerations", + "items": { "type": "object" } + }, + "topologySpreadConstraints": { + "type": "array", + "description": "topology spread constraints of gateway pods", + "items": { "type": "object" } + }, + "version": { + "type": "string", + "description": "version of gateway config", + "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]$" + }, + "volumeMounts": { + "type": "array", + "description": "volume mounts", + "items": { "type": "object" } + }, + "volumes": { + "type": "array", + "description": "volumes", + "items": { "type": "object" } + } + } + } + } + } + } +} diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 522ccccab1..f79d96b268 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1639,7 +1639,8 @@ agent: # it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. # for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference # and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants - distance_type: l2 + distance_type: + l2 # @schema {"name": "agent.ngt.object_type", "type": "string", "enum": ["float", "float16", "uint8"]} # agent.ngt.object_type -- object type. # it should be `float` or `uint8` or `float16`. diff --git a/charts/vald/values/vald-backup-via-pv-and-s3.yaml b/charts/vald/values/vald-backup-via-pv-and-s3.yaml index ff1a807d87..77ba3f20a4 100644 --- a/charts/vald/values/vald-backup-via-pv-and-s3.yaml +++ b/charts/vald/values/vald-backup-via-pv-and-s3.yaml @@ -98,7 +98,7 @@ manager: # concurrency for indexing operation. concurrency: 1 # limit duration of automatic indexing. - auto_index_duration_limit: 10m + auto_index_duration_limit: 10m # check duration of automatic indexing. auto_index_check_duration: 1m # limit duration of automatic index saving. diff --git a/charts/vald/values/vald-backup-via-pv.yaml b/charts/vald/values/vald-backup-via-pv.yaml index 800f2ea07f..ec34660dbf 100644 --- a/charts/vald/values/vald-backup-via-pv.yaml +++ b/charts/vald/values/vald-backup-via-pv.yaml @@ -75,7 +75,7 @@ manager: # concurrency for indexing operation. concurrency: 1 # limit duration of automatic indexing. - auto_index_duration_limit: 10m + auto_index_duration_limit: 10m # check duration of automatic indexing. auto_index_check_duration: 1m # limit duration of automatic index saving. diff --git a/charts/vald/values/vald-backup-via-s3.yaml b/charts/vald/values/vald-backup-via-s3.yaml index 737b8a23ba..f1c4b8667e 100644 --- a/charts/vald/values/vald-backup-via-s3.yaml +++ b/charts/vald/values/vald-backup-via-s3.yaml @@ -91,7 +91,7 @@ manager: # concurrency for indexing operation. concurrency: 1 # limit duration of automatic indexing. - auto_index_duration_limit: 10m + auto_index_duration_limit: 10m # check duration of automatic indexing. auto_index_check_duration: 1m # limit duration of automatic index saving. diff --git a/charts/vald/values/vald-in-memory-mode-no-backup.yaml b/charts/vald/values/vald-in-memory-mode-no-backup.yaml index fee6a5ad2e..2738704381 100644 --- a/charts/vald/values/vald-in-memory-mode-no-backup.yaml +++ b/charts/vald/values/vald-in-memory-mode-no-backup.yaml @@ -66,7 +66,7 @@ manager: # concurrency for indexing operation. concurrency: 1 # limit duration of automatic indexing. - auto_index_duration_limit: 10m + auto_index_duration_limit: 10m # check duration of automatic indexing. auto_index_check_duration: 1m # limit duration of automatic index saving. diff --git a/docs/api/README.md b/docs/api/README.md index 62ed698784..16bd12206e 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -8,14 +8,14 @@ Using **gRPC** is preferred for better performance. The APIs overview tables is here: -| Service | Description | API NAMES | LINK | -| :------------: | :------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | -| Insert Service | Insert new vector(s) into the Vald Agent Pods. | [Insert](../api/insert.md#insert-rpc)
[StreamInsert](../api/insert.md#streaminsert-rpc)
[MultiInsert](../api/insert.md#multiinsert-rpc) | [Vald Insert APIs](../api/insert.md) | -| Update Service | Update the exists vector(s) in the Vald Agent Pods. | [Update](../api/update.md#update-rpc)
[StreamUpdate](../api/update.md#streamupdate-rpc)
[MultiUpdate](../api/update.md#multiupdate-rpc) | [Vald Update APIs](../api/update.md) | -| Upsert Service | Update the exists vector(s) in the Vald Agent Pods or Insert new vector(s) into the Vald Agent Pods if the vector is not exists. | [Upsert](../api/upsert.md#upsert-rpc)
[StreamUpsert](../api/upsert.md#streamupsert-rpc)
[MultiUpdate](../api/upsert.md#multiupsert-rpc) | [Vald Upsert APIs](../api/upsert.md) | -| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc)
[LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | [Vald Search APIs](../api/search.md) | -| Remove Service | Remove the exists vector(s) from the Vald Agent Pods. | [Remove](../api/remove.md#remove-rpc)
[StreamRemove](../api/remove.md#streamremove-rpc)
[MultiRemove](../api/remove.md#multiremove-rpc) | [Vald Remove APIs](../api/remove.md) | -| Object Service | Get information of vector(s) indexed into the Vald Agent Pods. | [Exists](../api/object.md#exists-rpc)
[GetObject](../api/object.md#getobject-rpc)
[StreamGetObject](../api/object.md#streamgetobject-rpc) | [Vald Object APIs](../api/object.md) | +| Service | Description | API NAMES | LINK | +| :------------: | :------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | +| Insert Service | Insert new vector(s) into the Vald Agent Pods. | [Insert](../api/insert.md#insert-rpc)
[StreamInsert](../api/insert.md#streaminsert-rpc)
[MultiInsert](../api/insert.md#multiinsert-rpc) | [Vald Insert APIs](../api/insert.md) | +| Update Service | Update the exists vector(s) in the Vald Agent Pods. | [Update](../api/update.md#update-rpc)
[StreamUpdate](../api/update.md#streamupdate-rpc)
[MultiUpdate](../api/update.md#multiupdate-rpc) | [Vald Update APIs](../api/update.md) | +| Upsert Service | Update the exists vector(s) in the Vald Agent Pods or Insert new vector(s) into the Vald Agent Pods if the vector is not exists. | [Upsert](../api/upsert.md#upsert-rpc)
[StreamUpsert](../api/upsert.md#streamupsert-rpc)
[MultiUpdate](../api/upsert.md#multiupsert-rpc) | [Vald Upsert APIs](../api/upsert.md) | +| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc)
[LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | [Vald Search APIs](../api/search.md) | +| Remove Service | Remove the exists vector(s) from the Vald Agent Pods. | [Remove](../api/remove.md#remove-rpc)
[StreamRemove](../api/remove.md#streamremove-rpc)
[MultiRemove](../api/remove.md#multiremove-rpc) | [Vald Remove APIs](../api/remove.md) | +| Object Service | Get information of vector(s) indexed into the Vald Agent Pods. | [Exists](../api/object.md#exists-rpc)
[GetObject](../api/object.md#getobject-rpc)
[StreamGetObject](../api/object.md#streamgetobject-rpc) | [Vald Object APIs](../api/object.md) |

diff --git a/docs/api/build_proto.md b/docs/api/build_proto.md index d56fd25e07..8057b81cf1 100644 --- a/docs/api/build_proto.md +++ b/docs/api/build_proto.md @@ -12,8 +12,8 @@ If you can use one of the SDKs we recommend using it. Vald defines the proto file for each API. Let's check the below table for the details. -| API service name | proto | dependencies | usage | -| :--------------: | :---------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------- | +| API service name | proto | dependencies | usage | +| :--------------: | :-------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------- | | Insert | [insert.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/vald/insert.proto) | [payload.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/payload/payload.proto)
[annotation.proto](https://github.com/googleapis/googleapis/blob/master/google/api/annotations.proto) | Insert vectors into Vald Agent | | Update | [update.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/vald/update.proto) | [payload.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/payload/payload.proto)
[annotation.proto](https://github.com/googleapis/googleapis/blob/master/google/api/annotations.proto) | Update vectors stored in Vald Agent | | Upsert | [upsert.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/vald/upsert.proto) | [payload.proto](https://github.com/vdaas/vald/blob/main/apis/proto/v1/payload/payload.proto)
[annotation.proto](https://github.com/googleapis/googleapis/blob/master/google/api/annotations.proto) | Update vectors stored Vald Agent or Insert vectors into Vald Agent | diff --git a/docs/api/filter-gateway.md b/docs/api/filter-gateway.md index 990dddbf22..09bb0aad94 100644 --- a/docs/api/filter-gateway.md +++ b/docs/api/filter-gateway.md @@ -54,26 +54,26 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Insert.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be inserted | - | config | Config | | \* | the configuration of the insert request | + | object | Object.Blob | | \* | the binary object to be inserted | + | config | Config | | \* | the configuration of the insert request | | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Insert.Config @@ -85,16 +85,16 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -174,26 +174,26 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Insert.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be inserted | - | config | Config | | \* | the configuration of the insert request | + | object | Object.Blob | | \* | the binary object to be inserted | + | config | Config | | \* | the configuration of the insert request | | vectorizer | Filter.Target | | \* | filter configurations | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Insert.Config @@ -205,16 +205,16 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -292,7 +292,7 @@ service Filter { ```rpc message Insert { message MultiObjectRequest { - repeated ObjectRequest requests = 1; + repeated ObjectRequest requests = 1; } message ObjectRequest { @@ -321,32 +321,32 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Insert.MultiObjectRequest - | field | type | label | required | desc. | - | :--------: | :------------ | :------------------------------------ | :------: | :--------------------------------------------------- | - | requests | ObjectRequest | repeated(Array[Insert.ObjectRequest]) | \* | the multiple search by binary object request content | + | field | type | label | required | desc. | + | :------: | :------------ | :------------------------------------ | :------: | :--------------------------------------------------- | + | requests | ObjectRequest | repeated(Array[Insert.ObjectRequest]) | \* | the multiple search by binary object request content | - Insert.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be inserted | - | config | Config | | \* | the configuration of the insert request | + | object | Object.Blob | | \* | the binary object to be inserted | + | config | Config | | \* | the configuration of the insert request | | vectorizer | Filter.Target | | \* | filter configurations | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Insert.Config @@ -358,16 +358,16 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -456,47 +456,47 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Update.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be updated | - | config | Config | | \* | the configuration of the update request | + | object | Object.Blob | | \* | the binary object to be updated | + | config | Config | | \* | the configuration of the update request | | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config - | field | type | label | required | desc. | - | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :-------------------------------------------------------------------------------------------------- | | skip_strict_exist_check | bool | | | check the same vector is already updated or not.
the ID should be unique if the value is `true`. | | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - | filters | Filter.Config | | | configuration for filter | + | filters | Filter.Config | | | configuration for filter | - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -514,8 +514,8 @@ service Filter { - Object.Location - | field | type | label | desc. | - | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | | name | string | | the name of vald agent pod where the request vector is updated. | | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | @@ -575,47 +575,47 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Update.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be updated | - | config | Config | | \* | the configuration of the update request | + | object | Object.Blob | | \* | the binary object to be updated | + | config | Config | | \* | the configuration of the update request | | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config - | field | type | label | required | desc. | - | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :-------------------------------------------------------------------------------------------------- | | skip_strict_exist_check | bool | | | check the same vector is already updated or not.
the ID should be unique if the value is `true`. | | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - | filters | Filter.Config | | | configuration for filter | + | filters | Filter.Config | | | configuration for filter | - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -647,11 +647,11 @@ service Filter { - Object.Location - | field | type | label | desc. | - | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | - | name | string | | the name of vald agent pod where the request vector is updated . | - | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | - | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated . | + | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | - [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) @@ -727,8 +727,8 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` @@ -741,39 +741,39 @@ service Filter { - Update.ObjectRequest - | field | type | label | required | desc. | + | field | type | label | required | desc. | | :--------: | :------------ | :---- | :------: | :-------------------------------------- | - | object | Object.Blob | | \* | the binary object to be updated | - | config | Config | | \* | the configuration of the update request | + | object | Object.Blob | | \* | the binary object to be updated | + | config | Config | | \* | the configuration of the update request | | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config - | field | type | label | required | desc. | - | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :-------------------------------------------------------------------------------------------------- | | skip_strict_exist_check | bool | | | check the same vector is already updated or not.
the ID should be unique if the value is `true`. | | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - | filters | Filter.Config | | | configuration for filter | + | filters | Filter.Config | | | configuration for filter | - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -799,8 +799,8 @@ service Filter { - Object.Location - | field | type | label | desc. | - | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | | name | string | | the name of vald agent pod where the request vector is updated. | | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | @@ -862,26 +862,26 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Upsert.ObjectRequest - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :--------------------------------------- | - | object | Object.Blob | | \* | the binary object to be upserted | - | config | Config | | \* | the configuration of the upsert request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | Object.Blob | | \* | the binary object to be upserted | + | config | Config | | \* | the configuration of the upsert request | + | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config @@ -893,16 +893,16 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -978,26 +978,26 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Upsert.ObjectRequest - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :--------------------------------------- | - | object | Object.Blob | | \* | the binary object to be upserted | - | config | Config | | \* | the configuration of the upsert request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | Object.Blob | | \* | the binary object to be upserted | + | config | Config | | \* | the configuration of the upsert request | + | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config @@ -1009,17 +1009,17 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | - + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + ### Output - the scheme of `payload.v1.Object.StreamLocation` @@ -1130,8 +1130,8 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` @@ -1144,18 +1144,18 @@ service Filter { - Upsert.ObjectRequest - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :--------------------------------------- | - | object | Object.Blob | | \* | the binary object to be upserted | - | config | Config | | \* | the configuration of the upsert request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | Object.Blob | | \* | the binary object to be upserted | + | config | Config | | \* | the configuration of the upsert request | + | vectorizer | Filter.Target | | \* | filter target | - Object.Blob - | field | type | label | required | desc. | - | :--------: | :------------ | :---- | :------: | :---------------- | - | id | string | | \* | the object ID | - | object | bytes | | \* | the binary object | + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :---------------- | + | id | string | | \* | the object ID | + | object | bytes | | \* | the binary object | - Update.Config @@ -1167,16 +1167,16 @@ service Filter { - Filter.Target - | field | type | label | required | desc. | - | :-------: | :------- | :---- | :------: | :------------------- | - | host | string | | \* | the target hostname | - | port | port | | \* | the target port | + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------ | + | host | string | | \* | the target hostname | + | port | port | | \* | the target port | - Filter.Config - | field | type | label | required | desc. | - | :-------: | :------------ | :----------------------------- | :------: | :------------------------------- | - | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | + | field | type | label | required | desc. | + | :-----: | :------------ | :----------------------------- | :------: | :------------------------------ | + | targets | Filter.Target | repeated(Array[Filter.Target]) | \* | the filter target configuration | ### Output @@ -1263,32 +1263,32 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Search.ObjectRequest - | field | type | label | required | desc. | - | :----: | :---------------- | :----- | :------: | :------------------------------------------------------ | - | object | bytes | | \* | the binary object to be searched | - | config | Config | | \* | the configuration of the search request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | bytes | | \* | the binary object to be searched | + | config | Config | | \* | the configuration of the search request | + | vectorizer | Filter.Target | | \* | filter target | - Search.Config - | field | type | label | required | desc. | - | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | - | request_id | string | | | unique request ID | - | num | uint32 | | \* | the maximum number of result to be returned | - | radius | float | | \* | the search radius | - | epsilon | float | | \* | the search coefficient (default value is `0.1`) | - | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | - | ingress_filters | Filter.Config | | | Ingress Filter configuration | - | egress_filters | Filter.Config | | | Egress Filter configuration | - | min_num | uint32 | | | the minimum number of result to be returned | + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | | the minimum number of result to be returned | ### Output @@ -1376,32 +1376,32 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` - Search.ObjectRequest - | field | type | label | required | desc. | - | :----: | :---------------- | :----- | :------: | :------------------------------------------------------ | - | object | bytes | | \* | the binary object to be searched | - | config | Config | | \* | the configuration of the search request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | bytes | | \* | the binary object to be searched | + | config | Config | | \* | the configuration of the search request | + | vectorizer | Filter.Target | | \* | filter target | - Search.Config - | field | type | label | required | desc. | - | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | - | request_id | string | | | unique request ID | - | num | uint32 | | \* | the maximum number of result to be returned | - | radius | float | | \* | the search radius | - | epsilon | float | | \* | the search coefficient (default value is `0.1`) | - | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | - | ingress_filters | Filter.Config | | | Ingress Filter configuration | - | egress_filters | Filter.Config | | | Egress Filter configuration | - | min_num | uint32 | | | the minimum number of result to be returned | + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | | the minimum number of result to be returned | ### Output @@ -1478,8 +1478,8 @@ service Filter { ```rpc message Search { - message MultiObjectRequest { - repeated ObjectRequest requests = 1; + message MultiObjectRequest { + repeated ObjectRequest requests = 1; } message ObjectRequest { @@ -1506,8 +1506,8 @@ service Filter { uint32 port = 2; } - message Config { - repeated Target targets = 1; + message Config { + repeated Target targets = 1; } } ``` @@ -1520,24 +1520,24 @@ service Filter { - Search.ObjectRequest - | field | type | label | required | desc. | - | :----: | :---------------- | :----- | :------: | :------------------------------------------------------ | - | object | bytes | | \* | the binary object to be searched | - | config | Config | | \* | the configuration of the search request | - | vectorizer | Filter.Target | | \* | filter target | + | field | type | label | required | desc. | + | :--------: | :------------ | :---- | :------: | :-------------------------------------- | + | object | bytes | | \* | the binary object to be searched | + | config | Config | | \* | the configuration of the search request | + | vectorizer | Filter.Target | | \* | filter target | - Search.Config - | field | type | label | required | desc. | - | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | - | request_id | string | | | unique request ID | - | num | uint32 | | \* | the maximum number of result to be returned | - | radius | float | | \* | the search radius | - | epsilon | float | | \* | the search coefficient (default value is `0.1`) | - | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | - | ingress_filters | Filter.Config | | | Ingress Filter configuration | - | egress_filters | Filter.Config | | | Egress Filter configuration | - | min_num | uint32 | | | the minimum number of result to be returned | + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | | the minimum number of result to be returned | ### Output @@ -1590,4 +1590,4 @@ service Filter { | 0 | OK | | 3 | INVALID_ARGUMENT | | 4 | DEADLINE_EXCEEDED | -| 5 | NOT_FOUND | \ No newline at end of file +| 5 | NOT_FOUND | diff --git a/docs/contributing/coding-style.md b/docs/contributing/coding-style.md index 0ecc4af0ac..da6644f1c5 100644 --- a/docs/contributing/coding-style.md +++ b/docs/contributing/coding-style.md @@ -1160,7 +1160,7 @@ Still, in some cases, you may need to change the generated code to meet your req ngt: test.fields.ngt, eg: test.fields.eg, streamConcurrency: test.fields.streamConcurrency, - // we may have more fields defined in the struct, + // we may have more fields defined in the struct, // and we need to set them all here } @@ -1225,7 +1225,7 @@ The generated test case will enable these two parallel modes by default. It is i func Test_server_CreateIndex(t *testing.T) { t.Parallel() // parallel for the test function type args struct { - + ... for _, tc := range tests { diff --git a/docs/overview/about-vald.md b/docs/overview/about-vald.md index 8250bf2b89..dc1fb00b39 100644 --- a/docs/overview/about-vald.md +++ b/docs/overview/about-vald.md @@ -5,6 +5,7 @@ This document gives an overview of what is Vald and what you can do with Vald. ## What is Vald? + Vald is a highly scalable distributed fast approximate nearest neighbor dense vector search engine. Vald is designed and implemented based on Cloud-Native architecture. @@ -18,38 +19,47 @@ Vald is easy to use, feature-rich and highly customizable as you needed. ### What Vald can do? + - 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. + + - 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. + + - 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. + + - 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. + + - 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. + + - 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. + + - 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. + + - 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. + + - You can configure the number of vector dimensions, the number of replica and etc. - Multi language supported - - Go, Java, Clojure, Node.js, and Python client library are supported. - - gRPC APIs can be triggered by any programming languages which support gRPC. - - REST API is also supported. + - Go, Java, Clojure, Node.js, and Python client library are supported. + - gRPC APIs can be triggered by any programming languages which support gRPC. + - REST API is also supported. ### Use cases diff --git a/docs/overview/architecture.md b/docs/overview/architecture.md index 39d76107e3..13149194c7 100644 --- a/docs/overview/architecture.md +++ b/docs/overview/architecture.md @@ -14,20 +14,20 @@ Vald is based on the following technologies. - [Kubernetes](https://kubernetes.io/) - To easily scale and manage Vald, it is used by deploying and running on [Kubernetes](https://kubernetes.io/). - Vald takes all of the advantages of using Kubernetes. - For more details please read the [next section](#concept). + To easily scale and manage Vald, it is used by deploying and running on [Kubernetes](https://kubernetes.io/). + Vald takes all of the advantages of using Kubernetes. + For more details please read the [next section](#concept). - [Helm](https://helm.sh/) - Helm helps you to deploy and configure Vald. - 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. + Helm helps you to deploy and configure Vald. + 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 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. + 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. ### Concept diff --git a/docs/overview/component/README.md b/docs/overview/component/README.md index 4cc4a6ff1c..49461c6b9b 100644 --- a/docs/overview/component/README.md +++ b/docs/overview/component/README.md @@ -44,6 +44,7 @@ This component can reorder the searching result from multiple Vald Agents based ### Vald Filter Gateway Vald Filter Gateway forwards the request to Vald Ingress Filter before processing it and forwards the response to the Vald Egress Filter before returning the searching result to the user. + ## Vald Load Balancing Load balancing is one of the important concepts in distributed computing, which means it distributes a set of tasks over a set of resources aiming for making the overall processing more efficient. diff --git a/docs/overview/component/discoverer.md b/docs/overview/component/discoverer.md index 8d3802ef41..691dca6308 100644 --- a/docs/overview/component/discoverer.md +++ b/docs/overview/component/discoverer.md @@ -40,7 +40,6 @@ The kind of metrics are here: | CPU | CPU limit and CPU request | | Memory | Memory limit and Memory request | - When syncing success, Vald Discoverer chooses the necessary metrics from the result and stores them into their four kinds of `Map` on their local memory: | Map name | Description | diff --git a/docs/overview/component/filter-gateway.md b/docs/overview/component/filter-gateway.md index b97516d68d..1561363016 100644 --- a/docs/overview/component/filter-gateway.md +++ b/docs/overview/component/filter-gateway.md @@ -105,13 +105,12 @@ Vector filtering allows you to add the process: for example, to remove different If you want to use this feature, please deploy your own egress filter component, which meets the following interface. - - The scheme of egress filter service ```rpc // https://github.com/vdaas/vald/blob/main/apis/proto/v1/filter/ingress/egress_filter.proto service Filter { - + // Represent the RPC to filter the distance. rpc FilterDistance(payload.v1.Object.Distance) returns (payload.v1.Object.Distance) { @@ -120,7 +119,7 @@ If you want to use this feature, please deploy your own egress filter component, body : "*" }; } - + // Represent the RPC to filter the vector. rpc FilterVector(payload.v1.Object.Vector) returns (payload.v1.Object.Vector) { @@ -143,7 +142,7 @@ If you want to use this feature, please deploy your own egress filter component, // The distance. float distance = 2; } - + // Represent a vector. message Vector { // The vector ID. diff --git a/docs/overview/component/index-manager.md b/docs/overview/component/index-manager.md index 432869c89f..edc59215ec 100644 --- a/docs/overview/component/index-manager.md +++ b/docs/overview/component/index-manager.md @@ -40,4 +40,5 @@ Vald Index Manager runs this process periodically by set time intervals. Concurrency means the number of Vald Agent pods for simultaneously sending requests for the indexing operation.
When the Vald Agent pod has no uncommitted index or is running the indexing function already, it does not send the request. + diff --git a/docs/support/contacts.md b/docs/support/contacts.md index d0102af6ad..87b1c042c2 100644 --- a/docs/support/contacts.md +++ b/docs/support/contacts.md @@ -7,8 +7,8 @@ Vald is an open source project and we would like to hear from you. If you are interested in Vald, or you have any questions about Vald, please feel free to contact us. We recommend communicating on slack, but using E-mail is also welcome. - -Slack: [Vald Community](https://join.slack.com/t/vald-community/shared_invite/zt-db2ky9o4-R_9p2sVp8xRwztVa8gfnPA) + +Slack: [Vald Community](https://join.slack.com/t/vald-community/shared_invite/zt-db2ky9o4-R_9p2sVp8xRwztVa8gfnPA) E-mail: [vald@vdaas.org](mailto:vald@vdaas.org) diff --git a/docs/support/faq.md b/docs/support/faq.md index 833a80db27..7d22acc470 100644 --- a/docs/support/faq.md +++ b/docs/support/faq.md @@ -75,6 +75,7 @@ There are three ways to backup index data: 1. Using the external storage and Persistent Volume + Please refer to [the sample configurations](https://github.com/vdaas/vald/tree/main/charts/vald/values). --- diff --git a/docs/troubleshooting/client-side.md b/docs/troubleshooting/client-side.md index a0e49c8bfe..c59e60d1e8 100644 --- a/docs/troubleshooting/client-side.md +++ b/docs/troubleshooting/client-side.md @@ -27,16 +27,16 @@ There are two possible reasons. 1. Indexing has not finished in Vald Agent - Vald will search the nearest vectors of query from the indexing in Vald Agent. - If the indexing process is running, Vald Agent returns no search result. - - It will resolve when completed indexing instructions, like `CreateIndex`. + Vald will search the nearest vectors of query from the indexing in Vald Agent. + If the indexing process is running, Vald Agent returns no search result. + + It will resolve when completed indexing instructions, like `CreateIndex`. 1. Too short timeout for searching - When the search timeout configuration is too short, Vald LB Gateway stops the searching process before getting the search result from Vald Agent. + When the search timeout configuration is too short, Vald LB Gateway stops the searching process before getting the search result from Vald Agent. - In the sense of search operation, you can modify search timeout by [payload config](../api/search.md). + In the sense of search operation, you can modify search timeout by [payload config](../api/search.md).
It is easy to find out which problem occurs by inspections of the log of each Pod, like stern. diff --git a/docs/troubleshooting/provisioning.md b/docs/troubleshooting/provisioning.md index 6df03d665c..f19fe942f9 100644 --- a/docs/troubleshooting/provisioning.md +++ b/docs/troubleshooting/provisioning.md @@ -13,4 +13,3 @@ If any components output the `INTERNAL` error log, let us know the detail. ## Related Document - [Client Side Troubleshooting](../troubleshooting/client-side.md) - diff --git a/docs/tutorial/get-started.md b/docs/tutorial/get-started.md index 6468404927..ec8b8addea 100644 --- a/docs/tutorial/get-started.md +++ b/docs/tutorial/get-started.md @@ -407,21 +407,21 @@ If you are interested, please refer to [SDKs](../user-guides/sdks.md).
- Remove 400 indexed training datasets from the Vald agent.
example code
- ```go - for i := range ids [:insertCount] { - _, err := client.Remove(ctx, &payload.Remove_Request{ - Id: &payload.Object_ID{ - Id: ids[i], - }, - }) - if err != nil { - glg.Fatal(err) - } - if i%10 == 0 { - glg.Infof("Removed %d", i) - } - } - ``` + ```go + for i := range ids [:insertCount] { + _, err := client.Remove(ctx, &payload.Remove_Request{ + Id: &payload.Object_ID{ + Id: ids[i], + }, + }) + if err != nil { + glg.Fatal(err) + } + if i%10 == 0 { + glg.Infof("Removed %d", i) + } + } + ```
diff --git a/docs/tutorial/vald-agent-standalone-on-docker.md b/docs/tutorial/vald-agent-standalone-on-docker.md index 8ca2e59c02..81debbf370 100644 --- a/docs/tutorial/vald-agent-standalone-on-docker.md +++ b/docs/tutorial/vald-agent-standalone-on-docker.md @@ -13,6 +13,7 @@ Fashion-MNIST is used as an example dataset, same as [Get Started](../tutorial/g - libhdf5 (_only required for this tutorial._) HDF5 is required for this tutorial. If hdf5 is not installed, please install [HDF5](https://www.hdfgroup.org/). +
[Optional] Install HDF5
```bash @@ -25,6 +26,7 @@ apt-get install libhdf5-serial-dev # homebrew brew install hdf5 ``` +
## Deploy @@ -34,174 +36,177 @@ This chapter will use NGT for the core engine of Vald Agent. 1. Clone the vdaas/vald repository - ```bash - git clone https://github.com/vdaas/vald.git - ``` + ```bash + git clone https://github.com/vdaas/vald.git + ``` 1. Create a directory for setting deploy vald-agent-ngt - ```bash - cd vald && mkdir -p tutorial && cd tutorial - ``` + ```bash + cd vald && mkdir -p tutorial && cd tutorial + ``` 1. Create the `config.yaml` - The configuration of Vald agent for docker is set using `config.yaml`
- You can also check [the sample configuration](https://github.com/vdaas/vald/blob/main/cmd/agent/core/ngt/sample.yaml). - - ```bash - cat << EOF > config.yaml - --- - version: v0.0.0 - time_zone: JST - logging: - logger: glg - level: debug - format: raw - server_config: - servers: - - name: agent-grpc - host: 0.0.0.0 - port: 8081 - mode: GRPC - probe_wait_time: "3s" - http: - shutdown_duration: "5s" - handler_timeout: "" - idle_timeout: "" - read_header_timeout: "" - read_timeout: "" - write_timeout: "" - startup_strategy: - - agent-grpc - shutdown_strategy: - - agent-grpc - full_shutdown_duration: 600s - tls: - enabled: false - # cert: /path/to/cert - # key: /path/to/key - # ca: /path/to/ca - ngt: - # path to index data - index_path: "/etc/server/backup" - # vector dimension - dimension: 784 - # bulk insert chunk size - bulk_insert_chunk_size: 10 - # distance_type, which should be "l1", "l2" "angle", "hamming", "cosine", "normalizedangle", "normalizedcosine" or "jaccard" - distance_type: l2 - # object_type, which should be "float" or "uint8" - object_type: float - # creation edge size - creation_edge_size: 20 - # search edge size - search_edge_size: 10 - # The limit duration of automatic indexing - # auto_index_duration_limit should be 30m-6h for production use. Below setting is a just example - auto_index_duration_limit: 1m - # Check duration of automatic indexing. - # auto_index_check_duration be 10m-1h for production use. Below setting is a just example - auto_index_check_duration: 10s - # The number of cache to trigger automatic indexing - auto_index_length: 100 - # The limit duration of auto saving indexing - # auto_save_index_duration should be 30m-60m for production use. The below setting is a just example. - auto_save_index_duration: 90s - # The maximum limit duration for an initial delay - # initial_delay_max_duration should be 3m-5m for production use. The below setting is a just example. - initial_delay_max_duration: 60s - # The default create index batch pool size. - # When it is too large comparing to machine resource, the docker container will be crash. - default_pool_size: 500 - EOF - ``` + The configuration of Vald agent for docker is set using `config.yaml`
+ You can also check [the sample configuration](https://github.com/vdaas/vald/blob/main/cmd/agent/core/ngt/sample.yaml). + + ```bash + cat << EOF > config.yaml + --- + version: v0.0.0 + time_zone: JST + logging: + logger: glg + level: debug + format: raw + server_config: + servers: + - name: agent-grpc + host: 0.0.0.0 + port: 8081 + mode: GRPC + probe_wait_time: "3s" + http: + shutdown_duration: "5s" + handler_timeout: "" + idle_timeout: "" + read_header_timeout: "" + read_timeout: "" + write_timeout: "" + startup_strategy: + - agent-grpc + shutdown_strategy: + - agent-grpc + full_shutdown_duration: 600s + tls: + enabled: false + # cert: /path/to/cert + # key: /path/to/key + # ca: /path/to/ca + ngt: + # path to index data + index_path: "/etc/server/backup" + # vector dimension + dimension: 784 + # bulk insert chunk size + bulk_insert_chunk_size: 10 + # distance_type, which should be "l1", "l2" "angle", "hamming", "cosine", "normalizedangle", "normalizedcosine" or "jaccard" + distance_type: l2 + # object_type, which should be "float" or "uint8" + object_type: float + # creation edge size + creation_edge_size: 20 + # search edge size + search_edge_size: 10 + # The limit duration of automatic indexing + # auto_index_duration_limit should be 30m-6h for production use. Below setting is a just example + auto_index_duration_limit: 1m + # Check duration of automatic indexing. + # auto_index_check_duration be 10m-1h for production use. Below setting is a just example + auto_index_check_duration: 10s + # The number of cache to trigger automatic indexing + auto_index_length: 100 + # The limit duration of auto saving indexing + # auto_save_index_duration should be 30m-60m for production use. The below setting is a just example. + auto_save_index_duration: 90s + # The maximum limit duration for an initial delay + # initial_delay_max_duration should be 3m-5m for production use. The below setting is a just example. + initial_delay_max_duration: 60s + # The default create index batch pool size. + # When it is too large comparing to machine resource, the docker container will be crash. + default_pool_size: 500 + EOF + ``` 1. Create a backup directory - To avoid removing the indexing data due to any trouble after finishing indexing, we should prepare the path for auto backup. + To avoid removing the indexing data due to any trouble after finishing indexing, we should prepare the path for auto backup. - ```bash - mkdir -p backup - ``` + ```bash + mkdir -p backup + ``` 1. Deploy Vald Agent on Docker - 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. + 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 - docker run -v $(pwd):/etc/server -u "$(id -u $USER):$(id -g $USER)" -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -p 8081:8081 --rm -it vdaas/vald-agent-ngt - ``` + ```bash + docker run -v $(pwd):/etc/server -u "$(id -u $USER):$(id -g $USER)" -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -p 8081:8081 --rm -it vdaas/vald-agent-ngt + ``` 1. Verify - If the deployment success, you can confirm the output will be similar to below. + If the deployment success, you can confirm the output will be similar to below. - ```bash - 2020-07-01 03:02:41 [INFO]: maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined - 2020-07-01 03:02:41 [INFO]: service agent ngt v0.0.0 starting... - 2020-07-01 03:02:41 [INFO]: executing daemon pre-start function - 2020-07-01 03:02:41 [INFO]: executing daemon start function - 2020-07-01 03:02:41 [INFO]: server agent-grpc executing preStartFunc - 2020-07-01 12:02:41 [INFO]: gRPC server agent-grpc starting on 0.0.0.0:8081 - ``` + ```bash + 2020-07-01 03:02:41 [INFO]: maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined + 2020-07-01 03:02:41 [INFO]: service agent ngt v0.0.0 starting... + 2020-07-01 03:02:41 [INFO]: executing daemon pre-start function + 2020-07-01 03:02:41 [INFO]: executing daemon start function + 2020-07-01 03:02:41 [INFO]: server agent-grpc executing preStartFunc + 2020-07-01 12:02:41 [INFO]: gRPC server agent-grpc starting on 0.0.0.0:8081 + ``` ## Run using example code 1. Download dataset - This tutorial uses [Fashion-MNIST](https://github.com/zalandoresearch/fashion-mnist) as a dataset for indexing and search query. + This tutorial uses [Fashion-MNIST](https://github.com/zalandoresearch/fashion-mnist) as a dataset for indexing and search query. - ```bash - # move to the working directory - cd example/client/agent - ``` + ```bash + # move to the working directory + cd example/client/agent + ``` - ```bash - # download Fashion-MNIST testing dataset - wget http://ann-benchmarks.com/fashion-mnist-784-euclidean.hdf5 - ``` + ```bash + # download Fashion-MNIST testing dataset + wget http://ann-benchmarks.com/fashion-mnist-784-euclidean.hdf5 + ``` 1. Running example - Vald provides multiple language client libraries such as Go, Java, Node.js, Python, etc.
- This example will insert and index 400 vectors into the Vald from the Fashion-MNIST dataset via gRPC. - And then, after waiting for indexing, it will request to search the nearest vector 10 times. - You will get the 10 nearest neighbor vectors for each search query.
+ Vald provides multiple language client libraries such as Go, Java, Node.js, Python, etc.
+ This example will insert and index 400 vectors into the Vald from the Fashion-MNIST dataset via gRPC. + And then, after waiting for indexing, it will request to search the nearest vector 10 times. + You will get the 10 nearest neighbor vectors for each search query.
- We use [`example/client/agent/main.go`](https://github.com/vdaas/vald/blob/main/example/client/agent/main.go) to run the example. - The example code is the same as running an example-only Vald agent on Kubernetes. - If you want to learn the detail of running an example, please refer to the tutorial of [Vald Agent Standalone on kubernetes](../tutorial/get-started.md/#run-using-example-code). + We use [`example/client/agent/main.go`](https://github.com/vdaas/vald/blob/main/example/client/agent/main.go) to run the example. + The example code is the same as running an example-only Vald agent on Kubernetes. + If you want to learn the detail of running an example, please refer to the tutorial of [Vald Agent Standalone on kubernetes](../tutorial/get-started.md/#run-using-example-code). - ```bash - # run example - go run main.go - ``` + ```bash + # run example + go run main.go + ``` -
- It would be best to run CreateIndex() after Insert() without waiting for auto-indexing in your client code, even if you can wait for the finishing auto createIndex function, which sometimes takes a long time. - The backup files (e.g., ngt-meta.kvsdb) will be in your mount directory when vald-agent-ngt finishes indexing. -
+
+ It would be best to run CreateIndex() after Insert() without waiting for auto-indexing in your client code, even if you can wait for the finishing auto createIndex function, which sometimes takes a long time. + The backup files (e.g., ngt-meta.kvsdb) will be in your mount directory when vald-agent-ngt finishes indexing. +
-
- If you use Go(v1.16~) and catch the error like `missing go.sum entry to add it` when running `go run main.go`, please run `go mod tidy` and retry. - This error comes from Go Command Changes of Go 1.16 Release Notes.(Please refer to https://golang.org/doc/go1.16#go-command for more details). -
+
+ If you use Go(v1.16~) and catch the error like `missing go.sum entry to add it` when running `go run main.go`, please run `go mod tidy` and retry. + This error comes from Go Command Changes of Go 1.16 Release Notes.(Please refer to https://golang.org/doc/go1.16#go-command for more details). +
1. Clean Up - Stop the Vald Agent docker container via `Ctrl+C`. + Stop the Vald Agent docker container via `Ctrl+C`. ## Recommended Documents Congratulation! You achieved this tutorial! If you want, you can try other tutorials such as: + - [Vald Agent Standalone on Kubernetes](../tutorial/vald-agent-standalone-on-k8s.md) For more information, we recommend you to check: + - [Architecture](../overview/architecture.md) - [Configuration](../user-guides/configuration.md) - [Operations](../user-guides/operations.md) diff --git a/docs/tutorial/vald-agent-standalone-on-k8s.md b/docs/tutorial/vald-agent-standalone-on-k8s.md index 530479aad6..bdfcec848f 100644 --- a/docs/tutorial/vald-agent-standalone-on-k8s.md +++ b/docs/tutorial/vald-agent-standalone-on-k8s.md @@ -16,6 +16,7 @@ Using only Vald Agent, the auto indexing function is not in use.
The 5 steps to Vald Agent Standalone on Kubernetes with Vald: + 1. [Check and Satisfy the Requirements](#Requirements) 1. [Prepare Kubernetes Cluster](#Prepare-the-Kubernetes-Cluster) 1. [Deploy Vald Agent Standalone on Kubernetes cluster](#Deploy-Vald-Agent-Standalone-on-Kubernetes-Cluster) @@ -59,9 +60,9 @@ brew install hdf5 1. Prepare Kubernetes cluster - To complete get started, the Kubernetes cluster is required.
- Vald will run on Cloud Services such as GKE, AWS. - In the sense of trying to "Get-Started", [k3d](https://k3d.io/) or [kind](https://kind.sigs.k8s.io/) are easy Kubernetes tools to use. + To complete get started, the Kubernetes cluster is required.
+ Vald will run on Cloud Services such as GKE, AWS. + In the sense of trying to "Get-Started", [k3d](https://k3d.io/) or [kind](https://kind.sigs.k8s.io/) are easy Kubernetes tools to use. ## Deploy Vald Agent Standalone on Kubernetes Cluster @@ -70,46 +71,46 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf 1. Clone the repository - To use the `deployment yaml` for deployment, let's clone [`vdaas/vald`](https://github.com/vdaas/vald.git) repository. + To use the `deployment yaml` for deployment, let's clone [`vdaas/vald`](https://github.com/vdaas/vald.git) repository. - ```bash - git clone https://github.com/vdaas/vald.git && \ - cd vald - ``` + ```bash + git clone https://github.com/vdaas/vald.git && \ + cd vald + ``` 1. Deploy Vald Agent Standalone using Helm - There is the [values.yaml](https://github.com/vdaas/vald/blob/main/example/helm/values-standalone-agent-ngt.yaml) to deploy standalone Vald Agent. - Each component can be disabled by setting the value `false` to the `[component].enabled` field. - This is useful for deploying standalone Vald Agent NGT pods. + There is the [values.yaml](https://github.com/vdaas/vald/blob/main/example/helm/values-standalone-agent-ngt.yaml) to deploy standalone Vald Agent. + Each component can be disabled by setting the value `false` to the `[component].enabled` field. + This is useful for deploying standalone Vald Agent NGT pods. - ```bash - helm repo add vald https://vald.vdaas.org/charts && \ - helm install vald-agent-ngt vald/vald --values example/helm/values-standalone-agent-ngt.yaml - ``` + ```bash + helm repo add vald https://vald.vdaas.org/charts && \ + helm install vald-agent-ngt vald/vald --values example/helm/values-standalone-agent-ngt.yaml + ``` 1. Verify - ```bash - kubectl get pods - ``` + ```bash + kubectl get pods + ``` -
Example output
- If the deployment is successful, Vald Agent component should be running. +
Example output
+ If the deployment is successful, Vald Agent component should be running. - ```bash - NAME READY STATUS RESTARTS AGE - vald-agent-ngt-0 1/1 Running 0 20m - vald-agent-ngt-1 1/1 Running 0 20m - vald-agent-ngt-2 1/1 Running 0 20m - vald-agent-ngt-3 1/1 Running 0 20m - ``` + ```bash + NAME READY STATUS RESTARTS AGE + vald-agent-ngt-0 1/1 Running 0 20m + vald-agent-ngt-1 1/1 Running 0 20m + vald-agent-ngt-2 1/1 Running 0 20m + vald-agent-ngt-3 1/1 Running 0 20m + ``` -
+
## Run Example Code -1. Port Forward +1. Port Forward At first, port-forward the vald-lb-gateway is required to make request from your local environment possible. @@ -117,7 +118,7 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf kubectl port-forward service/vald-agent-ngt 8081:8081 ``` -1. Download dataset +1. Download dataset Download [Fashion-MNIST](https://github.com/zalandoresearch/fashion-mnist) that is used as a dataset for indexing and search query. @@ -131,7 +132,7 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf wget http://ann-benchmarks.com/fashion-mnist-784-euclidean.hdf5 ``` -1. Run Example +1. Run Example We use [`example/client/agent/main.go`](https://github.com/vdaas/vald/blob/main/example/client/agent/main.go) to run the example.
This example will insert and index 400 vectors into the Vald from the Fashion-MNIST dataset via gRPC. @@ -147,89 +148,89 @@ 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 + 1. init - Import packages
example code
- ```go - package main - - import ( - "context" - "encoding/json" - "flag" - "time" - - "github.com/kpango/fuid" - "github.com/kpango/glg" - agent "github.com/vdaas/vald-client-go/v1/agent/core" - "github.com/vdaas/vald-client-go/v1/vald" - "github.com/vdaas/vald-client-go/v1/payload" - - "gonum.org/v1/hdf5" - "google.golang.org/grpc" - ) - ``` + ```go + package main + + import ( + "context" + "encoding/json" + "flag" + "time" + + "github.com/kpango/fuid" + "github.com/kpango/glg" + agent "github.com/vdaas/vald-client-go/v1/agent/core" + "github.com/vdaas/vald-client-go/v1/vald" + "github.com/vdaas/vald-client-go/v1/payload" + + "gonum.org/v1/hdf5" + "google.golang.org/grpc" + ) + ```
- Set variables - - The constant number of training datasets and test datasets. -
example code
+ - The constant number of training datasets and test datasets. +
example code
- ```go - const ( - insertCount = 400 - testCount = 20 - ) - ``` + ```go + const ( + insertCount = 400 + testCount = 20 + ) + ``` -
+
- - The variables for configuration. -
example code
+ - The variables for configuration. +
example code
- ```go - const ( - datasetPath string - grpcServerAddr string - indexingWaitSeconds uint - ) - ``` + ```go + const ( + datasetPath string + grpcServerAddr string + indexingWaitSeconds uint + ) + ``` -
+
- Recognition parameters.
example code
- ```go - func init() { - flag.StringVar(&datasetPath, "path", "fashion-mnist-784-euclidean.hdf5", "set dataset path") - flag.StringVar(&grpcServerAddr, "addr", "127.0.0.1:8081", "set gRPC server address") - flag.UintVar(&indexingWaitSeconds, "wait", 60, "set indexing wait seconds") - flag.Parse() - } - ``` + ```go + func init() { + flag.StringVar(&datasetPath, "path", "fashion-mnist-784-euclidean.hdf5", "set dataset path") + flag.StringVar(&grpcServerAddr, "addr", "127.0.0.1:8081", "set gRPC server address") + flag.UintVar(&indexingWaitSeconds, "wait", 60, "set indexing wait seconds") + flag.Parse() + } + ```
- 1. load + 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
- ```go - ids, train, test, err := load(datasetPath) - if err != nil { - glg.Fatal(err) - } - ``` + ```go + ids, train, test, err := load(datasetPath) + if err != nil { + glg.Fatal(err) + } + ```
- 1. Create the gRPC connection and Vald client with gRPC connection. + 1. Create the gRPC connection and Vald client with gRPC connection.
example code
```go @@ -245,129 +246,130 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf
- 1. Insert and Index + 1. Insert and Index - Insert and Indexing 400 training datasets to the Vald agent.
example code
- ```go - for i := range ids [:insertCount] { - if i%10 == 0 { - glg.Infof("Inserted %d", i) - } - _, err := client.Insert(ctx, &payload.Insert_Request{ - Vector: &payload.Object_Vector{ - Id: ids[i], - Vector: train[i], - }, - Config: &payload.Insert_Config{ - SkipStrictExistCheck: true, - }, - }) - if err != nil { - glg.Fatal(err) - } - } - ``` + ```go + for i := range ids [:insertCount] { + if i%10 == 0 { + glg.Infof("Inserted %d", i) + } + _, err := client.Insert(ctx, &payload.Insert_Request{ + Vector: &payload.Object_Vector{ + Id: ids[i], + Vector: train[i], + }, + Config: &payload.Insert_Config{ + SkipStrictExistCheck: true, + }, + }) + if err != nil { + glg.Fatal(err) + } + } + ```
- Wait until indexing finish.
example code
- ```go - wt := time.Duration(indexingWaitSeconds) * time.Second - glg.Infof("Wait %s for indexing to finish", wt) - time.Sleep(wt) - ``` + ```go + wt := time.Duration(indexingWaitSeconds) * time.Second + glg.Infof("Wait %s for indexing to finish", wt) + time.Sleep(wt) + ```
- [Optional] Indexing manually instead of waiting for auto indexing - You can set Agent NGT configuration `auto_index_duration_limit` and `auto_index_check_duration` for auto indexing. - In this example, you can create index manually using `CreateAndSaveIndex()` method in the client library -
example code
+ You can set Agent NGT configuration `auto_index_duration_limit` and `auto_index_check_duration` for auto indexing. + In this example, you can create index manually using `CreateAndSaveIndex()` method in the client library +
example code
- ```go - _, err = client.CreateAndSaveIndex(ctx, &payload.Control_CreateIndexRequest{ - PoolSize: uint32(insertCount), - }) - if err != nil { - glg.Fatal(err) - } - ``` + ```go + _, err = client.CreateAndSaveIndex(ctx, &payload.Control_CreateIndexRequest{ + PoolSize: uint32(insertCount), + }) + if err != nil { + glg.Fatal(err) + } + ``` -
+
- 1. Search + 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.
example code
- ```go - glg.Infof("Start search %d times", testCount) - for i, vec := range test[:testCount] { - res, err := client.Search(ctx, &payload.Search_Request){ - Vector: vec, - Config: &payload.Search_Config{ - Num: 10, - Radius: -1, - Epsilon: 0.1, - Timeout: 100000000, - } - } - if err != nil { - glg.Fatal(err) - } - - b, _ := json.MarshalIndent(res.GetResults(), "", " ") - glg.Infof("%d - Results : %s\n\n", i+1, string(b)) - time.Sleep(1 * time.Second) - } - ``` + ```go + glg.Infof("Start search %d times", testCount) + for i, vec := range test[:testCount] { + res, err := client.Search(ctx, &payload.Search_Request){ + Vector: vec, + Config: &payload.Search_Config{ + Num: 10, + Radius: -1, + Epsilon: 0.1, + Timeout: 100000000, + } + } + if err != nil { + glg.Fatal(err) + } + + b, _ := json.MarshalIndent(res.GetResults(), "", " ") + glg.Infof("%d - Results : %s\n\n", i+1, string(b)) + time.Sleep(1 * time.Second) + } + ```
- 1. Remove + 1. Remove - - Remove indexed 400 training datasets from the Vald agent. -
example code
+ - Remove indexed 400 training datasets from the Vald agent. +
example code
- ```go - for i := range ids [:insertCount] { - _, err := client.Remove(ctx, &payload.Remove_Request{ - Id: &payload.Object_ID{ - Id: ids[i], - }, - }) - if err != nil { - glg.Fatal(err) - } - if i%10 == 0 { - glg.Infof("Removed %d", i) + ```go + for i := range ids [:insertCount] { + _, err := client.Remove(ctx, &payload.Remove_Request{ + Id: &payload.Object_ID{ + Id: ids[i], + }, + }) + if err != nil { + glg.Fatal(err) + } + if i%10 == 0 { + glg.Infof("Removed %d", i) + } } - } - ``` + ``` -
+
- - Remove from the index manually instead of waiting for auto indexing. - The removed vectors still exist in the NGT graph index before the SaveIndex (or CreateAndSaveIndex) API is called. - If you run the below code, the indexes will be removed completely from the Vald Agent NGT graph and the Backup file. -
example code
+ - Remove from the index manually instead of waiting for auto indexing. + The removed vectors still exist in the NGT graph index before the SaveIndex (or CreateAndSaveIndex) API is called. + If you run the below code, the indexes will be removed completely from the Vald Agent NGT graph and the Backup file. +
example code
- ```go - _, err = client.SaveIndex(ctx, &payload.Empty{}) - if err != nil { - glg.Fatal(err) - } - ``` + ```go + _, err = client.SaveIndex(ctx, &payload.Empty{}) + if err != nil { + glg.Fatal(err) + } + ``` -
-
+
+ +
It would be best to run CreateIndex() after Insert() without waiting for auto-indexing in your client code, even you can wait for the finishing auto createIndex function, which sometimes takes a long time. @@ -392,6 +394,7 @@ helm uninstall vald-agent-ngt Congratulation! You achieved this tutorial! For more information, we recommend you to check: + - [Architecture](../overview/architecture.md) - [Configuration](../user-guides/configuration.md) - [Operations](../user-guides/operations.md) diff --git a/docs/usecase/usage-example.md b/docs/usecase/usage-example.md index 84adca2a25..1e77873727 100644 --- a/docs/usecase/usage-example.md +++ b/docs/usecase/usage-example.md @@ -1,23 +1,23 @@ # 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. +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. - 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. - After converting them into vectors, you can insert them into the Vald cluster and process them in the Vald cluster. +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. +After converting them into vectors, you can insert them into the Vald cluster and process them in the Vald cluster. - Here are some general use cases of Vald or vector search engines. +Here are some general use cases of Vald or vector search engines. ## Image and video processing - You can use Vald as the image/video processing engine to search the similar images/videos or analyze the image/video for your use case. +You can use Vald as the image/video processing engine to search the similar images/videos or analyze the image/video for your use case. - Vald is capable of processing a huge number of images at the same time, so its case fits with your use case. +Vald is capable of processing a huge number of images at the same time, so its case fits with your use case. - Here are some examples of what you can do with images and videos using Vald. +Here are some examples of what you can do with images and videos using Vald. - Search by image - Face recognition @@ -29,11 +29,11 @@ - Audio processing is important for personal assistant implementation. +Audio processing is important for personal assistant implementation. - Vald can act as a brain of the personal assistant function, conversation interpreter, and natural language generation. +Vald can act as a brain of the personal assistant function, conversation interpreter, and natural language generation. - Here are some examples of what you can process using Vald. +Here are some examples of what you can process using Vald. - Personal assistant - Speech recognition @@ -43,9 +43,9 @@ - Using a text vectorizing model like BERT, you can process your text data in Vald. +Using a text vectorizing model like BERT, you can process your text data in Vald. - Here are some examples of the use case of text processing using Vald. +Here are some examples of the use case of text processing using Vald. - Search by text - Product recommendation based on text @@ -56,9 +56,9 @@ - Vald can process the vector data, you can analyze every data you can vectorize. +Vald can process the vector data, you can analyze every data you can vectorize. - Here are some examples of the use case of data analysis. +Here are some examples of the use case of data analysis. - AI malware detection @@ -68,7 +68,7 @@ - Price optimization - By applying the price optimization technique using Vald, you can find the most optimized price for your business. + By applying the price optimization technique using Vald, you can find the most optimized price for your business. You can apply models like GLMs to achieve it and use Vald as a machine learning engine for your business. - Social analysis @@ -78,10 +78,10 @@ ## Advanced use cases - Besides the general use case of Vald or vector search engine, Vald supports a user-defined filter that the user can customize the filter to filter the specific result. +Besides the general use case of Vald or vector search engine, Vald supports a user-defined filter that the user can customize the filter to filter the specific result. - For example when the user chose a man's t-shirt and the recommended product is going to be searched in Vald. +For example when the user chose a man's t-shirt and the recommended product is going to be searched in Vald. - Without the filtering functionality, the women's t-shirt may be searched in Vald and displayed because women's t-shirt is similar to the men's t-shirt and it is very hard to differentiate the image of men's and women's t-shirt. +Without the filtering functionality, the women's t-shirt may be searched in Vald and displayed because women's t-shirt is similar to the men's t-shirt and it is very hard to differentiate the image of men's and women's t-shirt. - By implementing the custom filter, you can filter only the man's t-shirt based on your criteria and needs. +By implementing the custom filter, you can filter only the man's t-shirt based on your criteria and needs. diff --git a/docs/user-guides/client-api-config.md b/docs/user-guides/client-api-config.md index e9a1822d9f..a42c858a28 100644 --- a/docs/user-guides/client-api-config.md +++ b/docs/user-guides/client-api-config.md @@ -371,7 +371,6 @@ message Filter { `timestamp` is the timestamp when the vector is inserted or updated. When `timestamp` is not set, the current time will be used. - ## Search Service Vald provides four types of search services. diff --git a/docs/user-guides/cluster-role-binding.md b/docs/user-guides/cluster-role-binding.md index d3bd0d19e2..3ade19d6d6 100644 --- a/docs/user-guides/cluster-role-binding.md +++ b/docs/user-guides/cluster-role-binding.md @@ -38,7 +38,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: discoverer -... +--- rules: - apiGroups: - apps @@ -109,23 +109,22 @@ To customize the cluster role configuration on the Helm chart for Vald Discovere ```yaml discoverer: -... - clusterRole: - # discoverer.clusterRole.enabled -- creates clusterRole resource - enabled: true - # discoverer.clusterRole.name -- name of clusterRole - name: discoverer - clusterRoleBinding: - # discoverer.clusterRoleBinding.enabled -- creates clusterRoleBinding resource - enabled: true - # discoverer.clusterRoleBinding.name -- name of clusterRoleBinding - name: discoverer - serviceAccount: - # discoverer.serviceAccount.enabled -- creates service account - enabled: true - # discoverer.serviceAccount.name -- name of service account - name: vald -... +--- +clusterRole: + # discoverer.clusterRole.enabled -- creates clusterRole resource + enabled: true + # discoverer.clusterRole.name -- name of clusterRole + name: discoverer +clusterRoleBinding: + # discoverer.clusterRoleBinding.enabled -- creates clusterRoleBinding resource + enabled: true + # discoverer.clusterRoleBinding.name -- name of clusterRoleBinding + name: discoverer +serviceAccount: + # discoverer.serviceAccount.enabled -- creates service account + enabled: true + # discoverer.serviceAccount.name -- name of service account + name: vald ```
@@ -139,6 +138,7 @@ If you want to modify or disable these configurations, you need to grant the [cl Please refer to the official guidelines to configure cluster role configuration for your cloud provider, and configure the service account name for Vald Discoverer. For example: + - [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) - [GKE](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control) diff --git a/docs/user-guides/configuration.md b/docs/user-guides/configuration.md index c2671f8ab4..b3b9e06d88 100644 --- a/docs/user-guides/configuration.md +++ b/docs/user-guides/configuration.md @@ -308,7 +308,6 @@ Each configuration file is the following: - [Cluster role binding](https://github.com/vdaas/vald/blob/main/k8s/discoverer/clusterrolebinding.yaml) - [Service account](https://github.com/vdaas/vald/blob/main/k8s/discoverer/serviceaccount.yaml) - #### Resource requests and limits The number of discoverer pods and resource limits can be estimated by the configurations of your LB gateways and index managers because its APIs are called by them. @@ -361,7 +360,6 @@ 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-apis-docs]: https://github.com/vdaas/vald/tree/main/apis/docs diff --git a/docs/user-guides/deployment.md b/docs/user-guides/deployment.md index 9279317de6..9ab1faaa80 100644 --- a/docs/user-guides/deployment.md +++ b/docs/user-guides/deployment.md @@ -3,15 +3,15 @@ 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 -- Using `vald-helm-operator` - - Monitoring the Vald deployments and Vald custom resource by `vald-helm-operator` - - Use `kubectl` command to set or update of the Vald cluster configuration - - Automate manage the Vald cluster based on CRD (Custom Resource Definitions) + - Easy to deploy + - Allow editing Vald configuration values when the user executes Helm command with inlining. + - Need Helm command when applying configuration +- Using `vald-helm-operator` + - Monitoring the Vald deployments and Vald custom resource by `vald-helm-operator` + - Use `kubectl` command to set or update of the Vald cluster configuration + - Automate manage the Vald cluster based on CRD (Custom Resource Definitions)
The benefit of using vald-helm-operator, it eliminates the need to check the status of the Vald cluster from the Vald cluster operator. @@ -39,6 +39,7 @@ Both ways need the configuration file when you need to overwrite the default con Please refer to [the basic configuration document](../user-guides/configuration.md). In addition, as you need, please refer to the followings: + - [Backup Configuration](../user-guides/backup-configuration.md) - [Filter Configuration](../user-guides/filtering-configuration.md) @@ -118,15 +119,15 @@ After create `values.yaml`, you can deploy by the following steps. 1. Add vald repo into the helm repo. - ```bash - helm repo add vald https://vdaas.vald.org/charts - ``` + ```bash + helm repo add vald https://vdaas.vald.org/charts + ``` 1. Deploy with the `values.yaml` - ```bash - helm install vald vald/vald --values - ``` + ```bash + helm install vald vald/vald --values + ``` ### Update Configuration @@ -185,7 +186,7 @@ spec: minReplicas: 2 maxReplicas: 2 gateway_config: - index_replica: 2 + index_replica: 2 ## vald-agent settings agent: @@ -243,7 +244,6 @@ 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). - After setting `vr.yaml` (and `vhor.yaml`), you can deploy by the following steps.
@@ -252,29 +252,29 @@ If you need to deploy ValdHelmOperatorRelease, you should apply vhor.yaml before 1. Add vald repo into the helm repo - ```bash - helm repo add vald https://vdaas.vald.org - ``` + ```bash + helm repo add vald https://vdaas.vald.org + ``` 1. Deploy `vald-helm-operator` - ```bash - helm install vald-helm-operator-release vald/vald-helm-operator - ``` + ```bash + helm install vald-helm-operator-release vald/vald-helm-operator + ``` 1. Apply `vhor.yaml` (optional) - ```bash - kubectl apply -f vhor.yaml - ``` + ```bash + kubectl apply -f vhor.yaml + ``` - After deployment success, the Kubernetes cluster runs the rolling update for vald-helm-operator components. + After deployment success, the Kubernetes cluster runs the rolling update for vald-helm-operator components. 1. Apply `vr.yaml` - ```bash - kubectl apply -f vr.yaml - ``` + ```bash + kubectl apply -f vr.yaml + ``` ### Update Configuration @@ -290,23 +290,22 @@ The Vald cluster can be removed by the following steps. 1. Delete the `ValdRelease` - ```bash - kubectl delete -f vr.yaml - ``` + ```bash + kubectl delete -f vr.yaml + ``` 1. Delete the `ValdHelmOperatorReleases` - ```bash - kubectl delete -f vhor.yaml - ``` + ```bash + kubectl delete -f vhor.yaml + ``` 1. Delete crd - ```bash - kubectl patch crd/valdhelmopratorreleases.vald.vdaas.org -p '{"metadata":{"finalizers":[]}}' -type=merge - ``` + ```bash + kubectl patch crd/valdhelmopratorreleases.vald.vdaas.org -p '{"metadata":{"finalizers":[]}}' -type=merge + ```
If using PV for the backup, PV won't delete automatically.
- diff --git a/docs/user-guides/filtering-configuration.md b/docs/user-guides/filtering-configuration.md index db2e6697ff..b2d864b093 100644 --- a/docs/user-guides/filtering-configuration.md +++ b/docs/user-guides/filtering-configuration.md @@ -17,48 +17,48 @@ Every filter component should meet Vald's filter gRPC interface. - The ingress RPC definition - ```rpc - service Filter { - // Represent the RPC to generate the vector. - rpc GenVector(payload.v1.Object.Blob) returns (payload.v1.Object.Vector) { - option (google.api.http) = { - post : "/filter/ingress/object" - body : "*" - }; - } - // Represent the RPC to filter the vector. - rpc FilterVector(payload.v1.Object.Vector) - returns (payload.v1.Object.Vector) { - option (google.api.http) = { - post : "/filter/ingress/vector" - body : "*" - }; - } + ```rpc + service Filter { + // Represent the RPC to generate the vector. + rpc GenVector(payload.v1.Object.Blob) returns (payload.v1.Object.Vector) { + option (google.api.http) = { + post : "/filter/ingress/object" + body : "*" + }; } - ``` + // Represent the RPC to filter the vector. + rpc FilterVector(payload.v1.Object.Vector) + returns (payload.v1.Object.Vector) { + option (google.api.http) = { + post : "/filter/ingress/vector" + body : "*" + }; + } + } + ``` - The egress RPC definition - ```rpc - service Filter { - // Represent the RPC to filter the distance. - rpc FilterDistance(payload.v1.Object.Distance) - returns (payload.v1.Object.Distance) { - option (google.api.http) = { - post : "/filter/egress/distance" - body : "*" - }; - } - // Represent the RPC to filter the vector. - rpc FilterVector(payload.v1.Object.Vector) - returns (payload.v1.Object.Vector) { - option (google.api.http) = { - post : "/filter/egress/vector" - body : "*" - }; - } + ```rpc + service Filter { + // Represent the RPC to filter the distance. + rpc FilterDistance(payload.v1.Object.Distance) + returns (payload.v1.Object.Distance) { + option (google.api.http) = { + post : "/filter/egress/distance" + body : "*" + }; + } + // Represent the RPC to filter the vector. + rpc FilterVector(payload.v1.Object.Vector) + returns (payload.v1.Object.Vector) { + option (google.api.http) = { + post : "/filter/egress/vector" + body : "*" + }; } - ``` + } + ``` For more details, please refer to [the Vald Filter Gateway document](../overview/component/filter-gateway.md) @@ -68,6 +68,7 @@ Vald provides the two types of ingress filter components. These will help you to implement your original filter component. Please refer to: + - [Vald ONNX Ingress Filter](https://github.com/vdaas/vald-onnx-ingress-filter) - [Vald Tensorflow Ingress Filter](https://github.com/vdaas/vald-tensorflow-ingress-filter) @@ -76,12 +77,11 @@ Please refer to: It is easy to enable the filtering feature. ```yaml -... +--- gateway: -... - filter: - enabled: true -... +--- +filter: + enabled: true ``` The Vald Filter gateway connects to the filter component specified in the users' request. diff --git a/docs/user-guides/operations.md b/docs/user-guides/operations.md index 8a9b4038b5..d8de2d6466 100644 --- a/docs/user-guides/operations.md +++ b/docs/user-guides/operations.md @@ -27,11 +27,11 @@ For example: If you’re going to deploy Vald on the multi-tenant cluster, please take care of the followings. - It is recommended to define PriorityClasses for agents not to be evicted. - - For more info, please visit the page [Pod Priority and Preemption][pod-priority-preemption]. - - If you are using [the Vald chart][vald-helm-chart], PriorityClasses are defined by default. + - For more info, please visit the page [Pod Priority and Preemption][pod-priority-preemption]. + - If you are using [the Vald chart][vald-helm-chart], PriorityClasses are defined by default. - Defining unique namespaces for each Vald and the other apps are recommended. - Then, please define ResourceQuotas for the namespace for the other apps to limit their memory usage. - - For more info, please visit this page, [Resource Quotas][resource-quota]. + - For more info, please visit this page, [Resource Quotas][resource-quota]. ## Monitoring @@ -93,12 +93,11 @@ This is an example of a custom dashboard. It is based on [our standard dashboard - ## Upgrading Our versioning strategy is based on [Semantic Versioning][semver]. Upgrading to a new version, such as minor or major, may require changing your configurations. -Please read the [CHANGELOG][CHANGELOG] before upgrading. +Please read the [CHANGELOG][changelog] before upgrading. ### In case of manual deploy @@ -129,23 +128,17 @@ On the other hand, please update the operator's deployment manually. After that, please update `image.tag` field in your valdrelease (or `vr`) resource. The operator will automatically detect the changes and update the deployed Vald cluster. - - - ### References - [vald-helm-chart][vald-helm-chart] - [vald-helm-operator-chart][vald-helm-operator-chart] -- [CHANGELOG][CHANGELOG] - +- [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 -[CHANGELOG]: https://vald.vdaas.org/docs/release/changelog/ - +[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/ - [prometheus-io]: https://prometheus.io/ [grafana]: https://grafana.com [vald-prometheus]: https://github.com/vdaas/vald/tree/main/k8s/metrics/prometheus diff --git a/hack/CHANGELOG.template.md b/hack/CHANGELOG.template.md index 38e37a7536..0a9df0b417 100644 --- a/hack/CHANGELOG.template.md +++ b/hack/CHANGELOG.template.md @@ -54,6 +54,7 @@ ### Documents + - [GoDoc](https://pkg.go.dev/github.com/vdaas/vald@{{ version }}) - [Helm Chart Reference](https://github.com/vdaas/vald/blob/{{ version }}/charts/vald/README.md) - [Helm Operator Chart Reference](https://github.com/vdaas/vald/blob/{{ version }}/charts/vald-helm-operator/README.md) diff --git a/hack/benchmark/internal/db/nosql/cassandra/testdata.json b/hack/benchmark/internal/db/nosql/cassandra/testdata.json index b9cf09e865..7afdd00da9 100644 --- a/hack/benchmark/internal/db/nosql/cassandra/testdata.json +++ b/hack/benchmark/internal/db/nosql/cassandra/testdata.json @@ -3,488 +3,366 @@ "uuid": "8a8dfec5-2115-45ae-9a07-f8634ff61477", "vector": "Sint aliqua anim mollit aute veniam non duis ut elit elit dolor occaecat nulla commodo. Lorem id qui nulla sit Lorem occaecat consectetur sunt duis nulla tempor. Irure occaecat nostrud ut cupidatat amet sit Lorem. Labore enim officia est sunt ullamco. Exercitation aute sunt dolor culpa ipsum elit irure fugiat aliqua voluptate occaecat Lorem dolor. Lorem fugiat consequat ipsum adipisicing commodo qui est cillum mollit quis culpa eiusmod.", "meta": "Eu et id dolore consequat consequat laboris consectetur do. Occaecat occaecat consequat velit dolore dolore nostrud anim culpa. Aliqua incididunt excepteur officia elit officia deserunt dolor aute culpa nostrud veniam.", - "ips": [ - "8.144.247.69" - ] + "ips": ["8.144.247.69"] }, { "uuid": "7b528973-6459-4af3-b0dd-9b6d341294b6", "vector": "Officia dolor dolore fugiat aliquip pariatur mollit non deserunt. Nulla voluptate laboris eiusmod cupidatat laboris aliquip et mollit in mollit ea nulla. Ad anim ullamco quis veniam deserunt reprehenderit quis velit cupidatat ad nisi. Consectetur non sit reprehenderit nulla officia laboris aliqua nisi reprehenderit velit labore incididunt id. Culpa sit sit aliqua consectetur. Labore voluptate minim consectetur quis aliqua aliqua elit consectetur elit laboris esse pariatur. Ea ut est et consequat minim.", "meta": "Ipsum veniam anim tempor qui consectetur occaecat fugiat magna exercitation adipisicing excepteur elit proident est. Laborum mollit duis deserunt exercitation adipisicing laboris duis duis mollit sunt est cupidatat dolore. Nostrud laborum tempor voluptate culpa occaecat cillum enim excepteur ut. Reprehenderit ea elit ex eiusmod eiusmod quis consectetur deserunt enim ipsum enim officia et qui.", - "ips": [ - "251.180.215.252" - ] + "ips": ["251.180.215.252"] }, { "uuid": "a109bcc3-cc27-4dcf-a31e-63cade795d29", "vector": "Qui irure sit eu qui enim veniam sint labore consequat elit aliqua nostrud irure pariatur. Quis deserunt nisi irure anim nisi do elit eu amet sint occaecat. Magna laborum magna do esse mollit Lorem eu nulla quis elit non. Nostrud fugiat exercitation occaecat ad aute do et. Sunt sint eu tempor mollit culpa ea enim exercitation non dolor. Ipsum non aute officia dolor non consectetur consequat ullamco nisi commodo esse.", "meta": "In id mollit exercitation ut cupidatat minim ea excepteur eu consequat proident ut nostrud. Aliquip consectetur ea velit dolor elit amet dolore. Aliqua sint cillum eiusmod non anim laboris consectetur nulla laborum dolor. Ad laboris officia ex cillum et sint. Consequat incididunt commodo labore esse duis incididunt. Est elit velit ullamco occaecat et voluptate amet est irure deserunt esse. Nulla qui velit labore ex.", - "ips": [ - "230.135.113.209" - ] + "ips": ["230.135.113.209"] }, { "uuid": "1a2e636c-8594-4567-a23f-37d7f537b3a7", "vector": "Qui adipisicing exercitation id deserunt consequat consequat proident. Fugiat cillum ullamco voluptate ad nulla nostrud sint consectetur. Ipsum qui aute laborum incididunt dolore ullamco amet qui do consectetur deserunt nulla exercitation sit.", "meta": "Eu irure non dolor est commodo ea laboris commodo. Amet laboris eiusmod ipsum velit. Quis nisi dolor sint nostrud quis reprehenderit ullamco aliquip aliqua aute exercitation eiusmod aute.", - "ips": [ - "133.129.82.227" - ] + "ips": ["133.129.82.227"] }, { "uuid": "3cd6a195-9178-4d60-91fa-8dcba46c61b3", "vector": "Consectetur fugiat quis sit proident consequat laborum exercitation consectetur sint aliqua sunt exercitation id deserunt. Do elit cillum excepteur incididunt mollit cillum. Ipsum nulla aute nostrud est ex sit enim quis adipisicing. Cupidatat ea tempor qui mollit occaecat id duis eu. Quis esse sint ipsum aute mollit cupidatat in elit adipisicing nostrud laboris.", "meta": "Cupidatat elit cupidatat minim laborum non minim elit. Est Lorem ipsum ex laborum qui. Esse ut mollit ullamco ut elit nulla labore eu id ad in in. Duis est magna laborum in culpa cupidatat mollit. Dolore aliqua aliquip officia do fugiat consequat. Elit qui culpa in ut ut sunt do culpa Lorem proident aliqua exercitation mollit occaecat.", - "ips": [ - "22.74.94.83" - ] + "ips": ["22.74.94.83"] }, { "uuid": "fa329eca-9a65-49e3-a2ca-aa74fe9eab4d", "vector": "Dolore laboris Lorem id ullamco velit nulla eu enim. Non amet excepteur laboris voluptate deserunt ipsum elit labore laborum pariatur nulla. Fugiat ut est ullamco ad voluptate non ipsum in ullamco dolor quis laboris sit.", "meta": "Ea sunt irure reprehenderit elit ea eiusmod ex non sunt in labore consequat. Eu consectetur eu ex minim fugiat aliquip sunt mollit ad anim id fugiat sit duis. Proident mollit ullamco proident sunt nisi ad officia est duis adipisicing consequat elit. Commodo occaecat ipsum et aliqua excepteur veniam ex aliqua anim.", - "ips": [ - "57.10.1.105" - ] + "ips": ["57.10.1.105"] }, { "uuid": "045b1014-7fab-4206-84d9-734b2fd2b813", "vector": "Enim minim enim magna qui reprehenderit sit dolore non. Commodo aliqua dolor nostrud exercitation ullamco laboris. Commodo do elit enim cillum culpa veniam pariatur. Voluptate non ut irure velit in amet commodo ea laboris. Aliqua mollit ipsum esse nulla eu nisi aliqua do tempor ullamco dolor. Tempor exercitation quis dolor ex dolor ea aliquip sint et sunt aliqua officia aute. Enim sint et sint esse aute et proident quis.", "meta": "Irure reprehenderit nostrud est esse. Veniam labore nisi culpa irure velit eiusmod ad ipsum dolore sint mollit aliqua. Et nostrud fugiat cupidatat magna occaecat duis nulla aute. Sint nostrud ea eiusmod qui enim cillum nostrud culpa cupidatat. Velit incididunt ullamco nostrud commodo.", - "ips": [ - "108.59.52.87" - ] + "ips": ["108.59.52.87"] }, { "uuid": "62d6d972-140e-4022-b523-8a1beadedbc5", "vector": "Aute non exercitation aliqua ut consequat minim. Ut ut ut officia et officia quis officia elit sit commodo. Sit Lorem dolore amet ullamco Lorem ea Lorem eiusmod consectetur proident in esse Lorem veniam. Fugiat ea nisi pariatur irure quis labore fugiat.", "meta": "Duis magna irure irure laborum id anim labore Lorem esse exercitation. Minim sint voluptate et in magna sit occaecat. Aliqua irure eu laboris pariatur. Ad ipsum esse culpa ullamco consectetur minim proident ullamco irure minim et ullamco commodo excepteur. Dolore amet sint excepteur occaecat proident ut. Lorem proident nostrud aute voluptate aliqua exercitation ullamco nisi minim aute anim commodo ad excepteur. Deserunt consectetur nisi consequat minim consequat nisi sunt est.", - "ips": [ - "178.72.12.38" - ] + "ips": ["178.72.12.38"] }, { "uuid": "40280b4e-8cd8-4473-af1c-9eaad5d5df33", "vector": "Elit id qui elit nostrud sit exercitation aliquip. Minim nostrud cillum amet esse consequat nulla ex in tempor nulla sit. Sint fugiat pariatur qui aliquip. Elit mollit laboris ex officia consequat cupidatat nostrud velit amet fugiat ullamco adipisicing ad. Incididunt excepteur et aliqua id cillum consectetur anim anim duis.", "meta": "Ex qui ullamco ipsum minim. Velit ut aute nostrud dolor laboris nostrud. Culpa incididunt nostrud voluptate magna et anim Lorem ullamco id sunt nostrud aliquip enim. Qui anim ad veniam veniam elit enim eu culpa mollit quis adipisicing laboris laboris eiusmod.", - "ips": [ - "96.211.93.91" - ] + "ips": ["96.211.93.91"] }, { "uuid": "5e300869-f1db-4a00-9af3-cd6e4b6cc64b", "vector": "Do do duis fugiat laboris tempor sit. Incididunt irure quis proident esse magna in. Eiusmod pariatur id magna consequat aute non magna fugiat irure. In deserunt est cupidatat ad ullamco quis veniam aliqua enim nostrud occaecat magna eu labore. Excepteur anim aliquip quis fugiat irure veniam cillum excepteur ad fugiat consequat officia. Enim ea incididunt Lorem in elit enim. Veniam et ipsum amet Lorem aute velit reprehenderit non non.", "meta": "Aute incididunt sint minim laboris nostrud non do irure ullamco esse. Sint magna ad magna sint aliqua in eu non nulla laboris non fugiat velit. Velit consectetur mollit excepteur officia aute adipisicing aliquip dolore velit laborum dolore. Minim culpa dolore cupidatat cillum adipisicing sint tempor velit dolore consequat. Cupidatat non deserunt ad duis exercitation proident deserunt occaecat nisi pariatur minim laboris ex. Sint elit mollit eiusmod reprehenderit irure do.", - "ips": [ - "100.86.51.200" - ] + "ips": ["100.86.51.200"] }, { "uuid": "fab2d4dd-9d12-4dd5-864d-4f6acb016c86", "vector": "Qui exercitation fugiat consectetur Lorem. Quis anim do et dolore aliquip id anim occaecat quis irure ad. Cupidatat do Lorem exercitation ex dolore duis est amet ea ullamco non eiusmod culpa dolor. Laboris ullamco proident dolor ullamco eiusmod velit. Qui cupidatat elit dolore anim in consectetur qui irure do. Incididunt eiusmod aliqua non non Lorem tempor minim Lorem occaecat excepteur adipisicing deserunt. Id duis ipsum cillum occaecat voluptate.", "meta": "Et veniam quis consectetur adipisicing elit. Laboris veniam aliquip quis enim dolor nostrud consectetur. Ad reprehenderit minim incididunt magna eiusmod esse proident aliqua aute. Sunt sint ex minim fugiat nostrud consequat nisi.", - "ips": [ - "34.57.190.71" - ] + "ips": ["34.57.190.71"] }, { "uuid": "b4871a21-add4-45d2-85cc-67589ea46bae", "vector": "Dolor cillum ad sit commodo magna dolore incididunt esse ipsum dolore. Deserunt consequat pariatur aliqua occaecat fugiat non et consequat ex nisi dolore tempor. Dolor nostrud consequat ipsum tempor et sint dolore minim consectetur eu. Enim reprehenderit est aliquip sint est ipsum. Id pariatur et aliqua exercitation voluptate sunt aliqua Lorem consequat dolore. Ipsum consectetur commodo aliquip eiusmod labore occaecat proident non id Lorem cupidatat ea id minim. Exercitation aliqua nostrud adipisicing qui nostrud quis nulla proident officia eiusmod anim.", "meta": "Ut tempor id mollit anim esse et qui sunt laborum. Nostrud occaecat enim duis cillum ea amet nulla labore culpa dolore amet nulla consectetur cillum. Nulla dolore eiusmod nulla voluptate. Mollit aliquip nostrud ad sit aliqua ex adipisicing sint sunt cupidatat. Ipsum minim magna pariatur minim magna occaecat adipisicing.", - "ips": [ - "103.116.240.218" - ] + "ips": ["103.116.240.218"] }, { "uuid": "9a6a838f-2b38-4067-8549-f617665cca46", "vector": "Nulla aliqua dolore pariatur pariatur adipisicing. Dolor incididunt aliqua id nisi quis reprehenderit fugiat dolor sit. Laboris consectetur ad aliquip eu amet veniam velit esse. Eu do do consequat sit.", "meta": "Commodo reprehenderit officia magna enim. Reprehenderit et amet magna deserunt Lorem do reprehenderit cupidatat eiusmod amet cillum occaecat esse culpa. Ut ipsum aliqua do duis incididunt laboris minim reprehenderit mollit aliqua dolore cupidatat voluptate. In reprehenderit amet reprehenderit veniam aliquip non cillum deserunt elit in adipisicing.", - "ips": [ - "15.63.160.66" - ] + "ips": ["15.63.160.66"] }, { "uuid": "55117bb2-0631-4539-99c2-c9c45e2bf149", "vector": "Adipisicing minim minim mollit et. Veniam nisi aliquip adipisicing non dolore culpa deserunt ut irure ea qui. Qui reprehenderit aliqua veniam deserunt. Mollit ipsum pariatur ipsum non veniam non. Ex reprehenderit sit eu anim sit incididunt ullamco laboris id ullamco duis. Lorem reprehenderit ea quis duis. Et eiusmod in cupidatat sint eiusmod esse cillum elit ut.", "meta": "Quis cillum aute nostrud non ut labore esse reprehenderit Lorem minim ea. Aliquip sint nisi incididunt labore esse cupidatat laboris. Cillum nostrud officia laborum velit officia nulla. Enim mollit laboris nulla fugiat voluptate minim.", - "ips": [ - "219.138.44.251" - ] + "ips": ["219.138.44.251"] }, { "uuid": "fb3d75e2-05be-4da3-8467-6ae9c8208109", "vector": "Duis tempor ex minim ex cupidatat reprehenderit anim ipsum in do. Culpa labore nisi proident aute quis eiusmod. Irure ea ullamco aliquip ex ad amet mollit nulla. Est laborum id ea et ipsum velit est nisi officia consequat incididunt excepteur dolore. Laboris enim laborum qui mollit id consectetur sint esse duis. Proident ea qui ut occaecat amet eu pariatur consectetur deserunt esse dolor voluptate in. Amet pariatur enim non minim irure amet minim exercitation sint mollit sint adipisicing Lorem voluptate.", "meta": "Elit magna amet do adipisicing adipisicing do velit culpa nisi excepteur magna cillum sint ex. Dolor quis Lorem irure Lorem voluptate minim ad amet officia occaecat anim ut. Nostrud eiusmod veniam cillum ea mollit ipsum mollit Lorem ut sit. Dolor aliquip aliqua incididunt nostrud voluptate qui ut nisi cupidatat velit elit anim laborum fugiat. Laboris est dolor minim est ex eiusmod reprehenderit deserunt mollit duis. Aliqua laboris amet nostrud Lorem voluptate aute reprehenderit duis velit id et consectetur non. Incididunt ex laborum labore duis sunt ut in incididunt.", - "ips": [ - "198.98.227.210" - ] + "ips": ["198.98.227.210"] }, { "uuid": "1247f391-1805-474e-a770-75845d171d70", "vector": "Anim amet irure duis laboris velit exercitation cupidatat elit reprehenderit ipsum eiusmod. Minim officia occaecat proident id. Irure est nisi commodo proident duis et proident elit aliquip deserunt.", "meta": "Culpa velit laborum eu cupidatat. Eu et ullamco enim id minim enim ullamco ex elit exercitation laboris. Culpa et anim ad incididunt eiusmod sit cillum culpa laboris commodo Lorem ut. Nostrud reprehenderit irure Lorem dolore minim deserunt ipsum id reprehenderit occaecat ipsum fugiat. Culpa eiusmod pariatur nulla quis consectetur magna irure. Enim commodo esse duis ut incididunt dolore eiusmod ipsum commodo est mollit nisi.", - "ips": [ - "90.121.224.191" - ] + "ips": ["90.121.224.191"] }, { "uuid": "0843c861-e548-475c-b4ba-5a428678b4da", "vector": "Fugiat in irure dolore non esse culpa anim ea dolore reprehenderit voluptate elit commodo. Nisi nisi ut ut labore culpa irure incididunt elit aute quis laborum laboris duis. Sit commodo irure adipisicing sit non amet. Minim excepteur aute deserunt elit amet exercitation qui anim ea minim amet. Ad quis Lorem nulla dolore nostrud veniam cillum. Deserunt deserunt aute irure reprehenderit non deserunt ut duis officia.", "meta": "Et dolore adipisicing amet ea. Ullamco sit duis proident dolore. Et ipsum velit do occaecat aliquip quis adipisicing duis enim in et qui. Duis incididunt nulla ad ad dolor est fugiat eiusmod non amet eiusmod. Cupidatat fugiat qui mollit magna aute ullamco veniam aliqua ea anim exercitation. Magna laborum in eu minim et excepteur velit exercitation consequat pariatur mollit aliquip. Ullamco aliqua do voluptate consequat ad laboris adipisicing anim consequat ad culpa commodo.", - "ips": [ - "77.151.18.67" - ] + "ips": ["77.151.18.67"] }, { "uuid": "acefb442-54cb-4f9d-ae99-6acc1efddf49", "vector": "Amet non incididunt enim ut voluptate ea nisi est. Veniam occaecat mollit voluptate occaecat amet pariatur nisi id. In consectetur et est aute.", "meta": "Quis est velit velit officia esse quis elit aliqua anim sint ex mollit. Velit reprehenderit do ipsum deserunt non culpa ea. Eu irure deserunt officia Lorem ullamco exercitation do sint irure mollit tempor. Ut elit eiusmod aute ut ut labore anim et officia. Tempor esse ea quis sint enim veniam dolore ad nisi laborum dolore.", - "ips": [ - "14.70.175.205" - ] + "ips": ["14.70.175.205"] }, { "uuid": "e929fb87-3fe9-4f67-93df-d6d84ee0f303", "vector": "Ex magna irure sint ut ad ea esse aliquip qui ea dolore Lorem eiusmod consequat. Sit mollit esse veniam non. Cupidatat do pariatur sunt mollit magna occaecat quis voluptate ullamco do id consequat deserunt.", "meta": "Ullamco est duis nostrud cupidatat non irure. In est sunt amet tempor amet culpa labore id commodo sunt nulla nisi. Eiusmod amet consequat occaecat id laborum cupidatat aliquip elit. Exercitation culpa excepteur qui culpa aute dolore laboris officia qui. Occaecat ea enim id dolore labore incididunt cupidatat est quis voluptate. Id officia non aliquip sunt duis dolore magna reprehenderit incididunt duis. Cupidatat enim in irure et voluptate mollit tempor aute officia dolore proident nulla.", - "ips": [ - "216.127.244.240" - ] + "ips": ["216.127.244.240"] }, { "uuid": "2a2f963d-b352-4dae-81f0-68ebd68296ee", "vector": "Elit tempor adipisicing consectetur fugiat amet officia laborum laborum. Velit eiusmod deserunt Lorem nisi reprehenderit nulla ipsum pariatur labore eu. Occaecat cupidatat duis commodo adipisicing excepteur aliqua in reprehenderit ex amet veniam. Ipsum dolore nisi ex dolore reprehenderit incididunt aliquip esse velit deserunt reprehenderit duis commodo. Ad occaecat aliqua consectetur cillum et ipsum. Ad deserunt irure velit excepteur sunt proident cupidatat deserunt sunt ipsum.", "meta": "Ipsum sit eiusmod quis ea do non. Sit ad sunt amet id id aute nisi sunt anim in id ullamco. Commodo ad reprehenderit sint eiusmod amet incididunt do ullamco qui ut anim nostrud id. Ullamco aliquip nulla commodo velit sit aliqua. Ex quis enim adipisicing non excepteur sunt ipsum duis ipsum. Ut amet elit aliqua laborum aliquip ex nostrud veniam sint in deserunt. Ea id voluptate qui non sunt mollit voluptate sint.", - "ips": [ - "57.29.209.151" - ] + "ips": ["57.29.209.151"] }, { "uuid": "394813f0-3fed-4150-841b-50cbdbe64189", "vector": "Deserunt cupidatat id nostrud pariatur consectetur proident exercitation esse tempor incididunt. Elit qui laborum et exercitation labore. Non consectetur excepteur quis aliqua tempor aute. Est pariatur veniam incididunt aliqua exercitation dolore ex ea sint sunt. Velit Lorem non anim deserunt irure ad aute qui occaecat sint laboris occaecat.", "meta": "Nostrud consectetur veniam aute irure. Proident labore deserunt nostrud labore esse. Aliqua occaecat enim sint laboris velit. Commodo excepteur exercitation aute incididunt eu irure ut nostrud. Amet ea ad quis pariatur.", - "ips": [ - "75.1.246.199" - ] + "ips": ["75.1.246.199"] }, { "uuid": "20c751f0-2af7-4f7c-bea3-f72b450b7911", "vector": "Mollit sit non pariatur qui aute consequat deserunt exercitation duis irure dolore nulla. Dolor magna deserunt et reprehenderit aliqua ad sint aliqua. Mollit minim sit incididunt ex ut consectetur ut occaecat ipsum do cillum duis aliquip consectetur. Lorem cupidatat fugiat anim sint occaecat id tempor voluptate nulla voluptate. Quis aute duis labore irure aute deserunt et occaecat.", "meta": "Culpa tempor commodo quis ipsum do commodo exercitation et enim. Aliquip sit ad do consequat nisi veniam magna incididunt dolor mollit mollit. Dolore enim velit sit adipisicing esse enim dolore nulla aliqua et commodo id. Duis quis deserunt ex sunt.", - "ips": [ - "180.250.237.201" - ] + "ips": ["180.250.237.201"] }, { "uuid": "7eb63376-271b-4909-9a8b-b4c1921922bc", "vector": "Incididunt aute proident qui do nisi id commodo sit aliqua mollit tempor mollit. Ipsum anim sunt laborum sunt in laboris aute. Cupidatat pariatur ipsum tempor ipsum sint officia. Adipisicing esse proident excepteur ea id sit. Labore sit officia id esse proident occaecat non velit anim irure ullamco nisi velit est. Ex enim deserunt adipisicing aliqua duis pariatur adipisicing dolor quis commodo ex sint anim commodo.", "meta": "Enim magna culpa voluptate duis. Veniam sunt ullamco nostrud ex ea non consectetur sunt ad nulla do incididunt et ea. Dolor reprehenderit proident sunt enim pariatur minim ullamco culpa enim. Irure et pariatur sunt excepteur id ea qui deserunt commodo ea est aliquip labore. Ut aliquip quis mollit qui pariatur duis elit velit magna reprehenderit minim. Do anim proident aute labore qui quis. Nulla et Lorem mollit veniam reprehenderit do nulla anim sit consequat.", - "ips": [ - "60.160.42.200" - ] + "ips": ["60.160.42.200"] }, { "uuid": "a1802817-6dc4-4838-8c34-0094deffcc8f", "vector": "Dolore nulla sit enim est qui consequat pariatur quis qui tempor ea ipsum. Veniam amet dolor deserunt in anim commodo tempor. Fugiat non adipisicing esse culpa dolor tempor velit anim. Deserunt laboris eu irure culpa consectetur id dolore dolore mollit ut duis amet. Irure pariatur sint enim consectetur nulla dolor ea velit duis fugiat consectetur Lorem eu deserunt.", "meta": "Et consectetur commodo excepteur anim proident nisi ut esse. Pariatur esse pariatur occaecat sunt ipsum ullamco aute. Ullamco laborum excepteur cillum nostrud. Sint consectetur irure duis aliqua pariatur nostrud id dolor et in est. Nisi aliqua pariatur ullamco sit nostrud quis officia in in consequat. Fugiat deserunt cupidatat excepteur laboris irure enim enim officia. Duis pariatur occaecat sint laboris nisi occaecat consectetur.", - "ips": [ - "59.40.69.90" - ] + "ips": ["59.40.69.90"] }, { "uuid": "3adc6d8d-7a12-488c-81b2-5dba7505d23b", "vector": "Magna reprehenderit adipisicing reprehenderit nostrud. Tempor amet ea est aliqua pariatur Lorem elit proident veniam Lorem reprehenderit. Irure aliquip labore enim nulla mollit. Minim consequat mollit voluptate consectetur irure ex culpa anim excepteur incididunt. Anim reprehenderit quis duis laborum velit enim reprehenderit. Nostrud ullamco voluptate ex laboris do velit et ex qui.", "meta": "Veniam in elit aliquip cupidatat ea laboris duis commodo nostrud aute adipisicing. Minim adipisicing aliqua qui excepteur enim cillum magna nulla eiusmod irure. Lorem elit exercitation elit id exercitation cillum non pariatur elit. Tempor ad exercitation ullamco mollit nostrud magna excepteur ullamco cillum veniam minim consectetur. Deserunt ex aliquip qui ad cupidatat veniam. Lorem eiusmod pariatur ad ipsum voluptate est amet consequat dolor nisi commodo exercitation enim. Proident amet mollit ut ullamco anim velit aliquip sint.", - "ips": [ - "209.175.27.58" - ] + "ips": ["209.175.27.58"] }, { "uuid": "9e011058-7908-4ca7-94f0-d9c91eb294bb", "vector": "Cupidatat irure fugiat ipsum ad est duis ea incididunt nulla Lorem nostrud Lorem cillum. Eu ad sint labore minim commodo ad. Consequat dolor ullamco ullamco elit fugiat do id. Eiusmod dolore eu aliqua pariatur excepteur eiusmod. Sint est ut eu culpa nulla est ad amet minim.", "meta": "Occaecat et nulla veniam quis. Non anim proident anim proident eu ipsum reprehenderit irure. Esse aliquip esse est nostrud ipsum elit.", - "ips": [ - "201.58.203.66" - ] + "ips": ["201.58.203.66"] }, { "uuid": "9b9359b9-088e-44b9-acee-fe82f5af43b4", "vector": "Mollit cillum excepteur enim commodo esse. Aute do culpa mollit cupidatat aliqua in minim velit consequat sit incididunt enim. Laborum ex cupidatat adipisicing ad ipsum nulla sunt laboris aliquip ad excepteur occaecat. Ut officia eiusmod id nostrud ullamco dolor sunt id. Occaecat est ad proident cillum aliquip culpa est reprehenderit excepteur ipsum ea est officia velit. Voluptate veniam ex mollit veniam consequat elit.", "meta": "Ex sunt nulla magna non mollit nisi nostrud elit. Duis nulla nisi exercitation officia quis eiusmod et mollit. Mollit laboris ad ut nostrud esse proident irure cupidatat est aliquip laborum minim. Amet sint commodo non dolore aliquip nisi. Incididunt adipisicing velit est deserunt aute proident eu laborum mollit sunt Lorem dolore ut. Voluptate enim sunt eiusmod sunt est deserunt enim pariatur aliqua aute et aliquip. Aute fugiat in irure mollit proident eu consequat labore culpa ea magna sunt.", - "ips": [ - "35.102.175.176" - ] + "ips": ["35.102.175.176"] }, { "uuid": "73b7881c-897f-4add-b4ab-6ffad573d260", "vector": "Ut ex elit pariatur non reprehenderit amet nisi aute deserunt eu. Sit voluptate esse sint veniam veniam irure ullamco. Cupidatat esse non do elit in. Ullamco id aliquip nostrud id tempor tempor ullamco fugiat elit officia laborum sunt id nulla.", "meta": "Aute aliquip anim excepteur eiusmod dolore quis excepteur quis ea Lorem velit. Cillum eu ea nulla ut in magna amet commodo. Deserunt cillum ut culpa commodo. Non et ut voluptate sunt elit aliquip fugiat aliqua sunt exercitation. Quis ex irure nisi fugiat dolor mollit et. Id ullamco elit id pariatur duis proident adipisicing excepteur veniam Lorem.", - "ips": [ - "132.37.56.199" - ] + "ips": ["132.37.56.199"] }, { "uuid": "ee157b5c-1e69-41af-83da-31ceac2c831d", "vector": "Ullamco cupidatat pariatur tempor voluptate est aliquip consectetur esse minim deserunt dolor ullamco. Consequat reprehenderit qui eiusmod dolor amet nulla incididunt non occaecat Lorem duis cupidatat labore. Ullamco cupidatat ipsum non velit proident nulla voluptate minim cupidatat adipisicing irure. Occaecat id do nulla pariatur enim velit adipisicing magna pariatur quis enim ullamco non eiusmod. Pariatur consequat aliquip reprehenderit mollit mollit consectetur dolore ipsum in nostrud duis proident et.", "meta": "Sunt sint ipsum sit irure cillum id. Aliquip enim duis officia fugiat aute reprehenderit enim. Anim Lorem incididunt excepteur proident nostrud. Ipsum nisi mollit labore ea consectetur laborum excepteur.", - "ips": [ - "151.211.148.176" - ] + "ips": ["151.211.148.176"] }, { "uuid": "7e454434-bdee-4550-b010-5b1c97485c39", "vector": "Irure culpa velit occaecat duis incididunt aute non consequat. Occaecat reprehenderit ut mollit esse pariatur laborum in qui eu. Incididunt exercitation culpa velit mollit velit ex reprehenderit nisi. Tempor nostrud sunt voluptate incididunt quis pariatur dolore sit sunt elit mollit commodo esse et. Nisi et incididunt cillum nostrud.", "meta": "Mollit qui enim incididunt nisi dolore ullamco qui non Lorem. Ex irure Lorem dolor occaecat. Nostrud nulla non qui fugiat ullamco et. Cillum do labore fugiat est ullamco.", - "ips": [ - "208.246.193.250" - ] + "ips": ["208.246.193.250"] }, { "uuid": "125be35e-8120-4139-a85e-4ebee3ee3b81", "vector": "Ex velit ullamco nostrud ipsum consequat in minim amet tempor. Ea est reprehenderit dolore qui cupidatat do. Ex eiusmod veniam sit dolore.", "meta": "Dolore consectetur proident et consectetur labore laboris irure enim ex tempor amet anim. Lorem labore est aliquip officia duis nulla et cillum. Esse excepteur dolore nulla officia aliquip consectetur pariatur ut aute ut. Cillum commodo reprehenderit sit dolor adipisicing excepteur qui elit consequat anim.", - "ips": [ - "203.81.134.224" - ] + "ips": ["203.81.134.224"] }, { "uuid": "88819104-72f4-4921-8fdd-74b65ea470ee", "vector": "Aute elit minim esse cupidatat. Consequat anim proident ullamco cillum veniam magna est aliqua laborum excepteur dolor labore esse. Proident aliquip ullamco deserunt Lorem do qui. Nulla Lorem culpa exercitation elit qui nostrud voluptate laboris. Ea est magna sunt minim nisi ipsum laborum quis sit ad. Tempor fugiat nostrud culpa nostrud elit qui esse est reprehenderit ipsum deserunt consectetur aliqua. Officia mollit culpa amet nisi in et amet dolore labore aliquip non dolore culpa.", "meta": "Aute occaecat eiusmod duis occaecat proident. Ex sint reprehenderit nisi adipisicing nisi minim tempor esse ea voluptate. Aliquip non cillum ea ex minim irure duis nostrud amet enim. Laboris est consectetur velit pariatur labore consectetur et exercitation minim. Adipisicing ad magna adipisicing nisi occaecat quis minim culpa nulla do nulla amet.", - "ips": [ - "228.111.206.253" - ] + "ips": ["228.111.206.253"] }, { "uuid": "8d73c832-59b5-48cc-918b-51e5cbd578b0", "vector": "Minim ex eu exercitation velit consequat aliqua adipisicing velit do excepteur excepteur excepteur sint elit. Tempor veniam eu non ut duis irure irure occaecat. Commodo amet pariatur consectetur id. Ut velit sit cillum irure exercitation est dolore dolor. Incididunt sit consequat quis exercitation deserunt deserunt laborum deserunt fugiat commodo in. Do do velit Lorem fugiat eiusmod ad non veniam non minim excepteur dolor occaecat. Velit non aliqua aute sint tempor mollit sit consectetur ex.", "meta": "Amet do reprehenderit culpa enim ullamco laborum dolore. Occaecat dolore aliquip labore pariatur cupidatat cupidatat. Commodo consectetur nisi pariatur reprehenderit culpa nulla quis irure aliqua pariatur anim velit. Cillum non incididunt esse incididunt ut laboris adipisicing duis incididunt ullamco esse ipsum minim sint.", - "ips": [ - "236.48.103.170" - ] + "ips": ["236.48.103.170"] }, { "uuid": "d16aaf4d-b7cd-4f36-a686-3622cfce0831", "vector": "Adipisicing sunt culpa laborum in qui ea ex nisi ullamco aute ullamco fugiat voluptate aute. Elit aute qui velit sit labore incididunt voluptate nulla non quis velit. Amet anim dolor eiusmod qui cillum velit exercitation eu sit dolore. Cupidatat excepteur nulla aliqua ut culpa fugiat ullamco qui occaecat enim.", "meta": "Consequat dolor ipsum minim eiusmod qui labore aute voluptate ipsum id tempor et. Reprehenderit duis aliqua elit reprehenderit sint mollit in adipisicing. Lorem in qui cupidatat ullamco. Minim culpa reprehenderit aliquip incididunt Lorem fugiat dolor culpa sit excepteur voluptate minim culpa ut. Eu qui incididunt est eu consectetur ipsum anim. Pariatur reprehenderit duis adipisicing aute officia reprehenderit sint reprehenderit excepteur irure reprehenderit consectetur culpa irure.", - "ips": [ - "90.222.42.30" - ] + "ips": ["90.222.42.30"] }, { "uuid": "66e21e37-4fb6-4f68-8915-aa8007afbaa5", "vector": "Cillum cupidatat eu reprehenderit laborum cupidatat sit dolor cupidatat voluptate. Consectetur qui aliqua consectetur ea qui in consectetur nulla enim adipisicing in id ea. Minim non ad laborum cupidatat elit adipisicing dolore commodo. Qui magna aute ea in qui labore. Laborum ipsum nisi do laborum officia aliquip id velit. Minim consectetur aliquip ullamco commodo.", "meta": "Excepteur ad aliqua laboris mollit et ullamco mollit nulla tempor et magna ad. Ex dolore commodo non ullamco mollit excepteur ipsum. Nostrud cupidatat voluptate sint esse laborum ex proident labore amet ex aliqua duis excepteur. Dolore non laborum occaecat quis esse laboris dolor aute quis.", - "ips": [ - "183.33.237.12" - ] + "ips": ["183.33.237.12"] }, { "uuid": "bbc01bd5-6db3-49ca-888f-7840bab78838", "vector": "Proident minim culpa laboris aute sit ut elit nisi nisi consequat quis anim. Eiusmod cillum fugiat pariatur voluptate cupidatat do esse eiusmod do. Velit sit aliqua aute quis officia reprehenderit reprehenderit laboris quis. Veniam proident consequat reprehenderit labore pariatur aliqua ipsum labore magna voluptate. Dolore non proident consectetur ut aute quis. In ut tempor id quis ex dolore culpa aliqua sunt quis dolore proident ipsum eiusmod. Laboris ipsum ullamco deserunt veniam ad enim esse duis sunt nostrud et eu proident velit.", "meta": "Duis et nulla aliquip fugiat enim nisi eu anim. Lorem laborum officia do elit et do cillum consequat ex exercitation do. Aliqua Lorem aute ut voluptate. Excepteur ullamco qui velit deserunt ea in. Fugiat deserunt exercitation proident elit id cillum. Voluptate irure exercitation et do. Nisi nulla commodo irure duis cupidatat consequat nulla irure minim eiusmod dolore.", - "ips": [ - "78.223.194.99" - ] + "ips": ["78.223.194.99"] }, { "uuid": "8cce1af2-1a70-4876-b6d8-fe5b2262d7e5", "vector": "Mollit nulla pariatur anim consectetur eiusmod. Ipsum eu Lorem in consectetur mollit consequat veniam. Culpa tempor ipsum id pariatur deserunt ea Lorem aliqua exercitation consectetur tempor nulla. Cillum nostrud et dolore non tempor proident. Magna commodo ut eu dolor sit ea aliquip est commodo ut irure nisi do et. Id minim anim ea aliqua.", "meta": "Officia exercitation exercitation consectetur mollit esse incididunt aliquip. Laborum voluptate elit dolore pariatur do. Nulla ea velit nulla adipisicing. Eu velit ea occaecat fugiat in irure consequat magna ipsum. Cupidatat nulla commodo sit amet eiusmod ea aliquip et eiusmod et cillum non.", - "ips": [ - "114.165.169.86" - ] + "ips": ["114.165.169.86"] }, { "uuid": "3e58c1bd-5f2b-4418-9d07-ec957f7335a4", "vector": "Enim enim eu sit in velit velit non in anim id mollit. Elit amet irure ex ipsum laborum nulla minim deserunt veniam qui ad. Nostrud labore culpa nulla enim consequat adipisicing culpa velit culpa enim non sit et. Dolor ut anim anim ad ex ad deserunt aute. Laboris aliquip in aliqua duis fugiat Lorem nisi fugiat deserunt consequat. Reprehenderit exercitation ut sit magna laboris et incididunt elit sint dolor.", "meta": "Amet adipisicing deserunt non et ea deserunt dolore cillum ad minim duis incididunt. Ex consectetur nisi qui sit aliqua minim. Dolore et eu ad non labore labore. Non proident voluptate eiusmod ad. Pariatur aliquip velit id aliquip consectetur esse magna. Quis ullamco est dolore aliquip laboris aute excepteur commodo sunt eu laboris pariatur quis. Proident consectetur excepteur dolor id mollit eiusmod aliquip labore.", - "ips": [ - "23.163.168.109" - ] + "ips": ["23.163.168.109"] }, { "uuid": "49fafa4c-0e80-40c7-911a-a2da0d43b8b3", "vector": "Tempor incididunt cillum ea minim in adipisicing eiusmod culpa aliqua aute cupidatat eiusmod. Nulla duis commodo ipsum commodo commodo. Ullamco consequat voluptate occaecat excepteur nostrud magna culpa exercitation cupidatat excepteur adipisicing aute non. Non officia nostrud non consectetur consequat irure. Irure incididunt eu elit proident enim irure. Nostrud quis ex fugiat voluptate.", "meta": "Id minim laborum tempor ut aliquip consectetur ipsum dolore proident consectetur pariatur labore eiusmod qui. Pariatur occaecat commodo et commodo eiusmod Lorem dolor laboris laborum mollit do ut aliqua quis. Velit eu veniam consectetur consectetur nulla cupidatat voluptate cillum aliqua.", - "ips": [ - "104.217.100.148" - ] + "ips": ["104.217.100.148"] }, { "uuid": "46f13e24-db99-4f91-bb21-73d32ba35e5a", "vector": "Cillum eiusmod incididunt deserunt sit aute laboris Lorem ullamco. Occaecat mollit irure minim eu et consequat est cillum sint. Irure excepteur excepteur ullamco mollit commodo enim mollit aliquip velit voluptate tempor nisi duis id. Ex ut commodo amet labore commodo duis cillum deserunt ex. Reprehenderit labore sunt laborum tempor culpa consequat eu ipsum deserunt dolor velit. Do duis excepteur amet deserunt exercitation esse officia consectetur fugiat. Amet incididunt ullamco laboris ullamco minim sint eiusmod ad ad.", "meta": "Mollit tempor magna enim adipisicing nostrud do. Velit occaecat aliqua nulla elit eiusmod anim incididunt exercitation mollit fugiat do. Pariatur quis consectetur amet cillum veniam eiusmod enim tempor qui laborum nulla in minim.", - "ips": [ - "82.64.135.156" - ] + "ips": ["82.64.135.156"] }, { "uuid": "55991c18-24e5-4055-a79c-d0f1cba04ad7", "vector": "Tempor ex esse incididunt ea. Adipisicing nulla laboris fugiat elit laboris ullamco qui exercitation reprehenderit non cillum cillum magna eiusmod. Anim cillum veniam nisi excepteur consectetur velit nostrud consectetur. Duis eu eiusmod aliqua ex eu qui fugiat cillum labore adipisicing ea laborum.", "meta": "Irure magna cillum aliquip do consectetur labore laboris fugiat dolor sint et. Cillum excepteur qui proident veniam voluptate nulla aliqua qui aliquip esse ea adipisicing velit. Ut adipisicing ullamco cillum culpa. Minim est amet magna nisi incididunt laboris irure duis ut magna irure veniam. Tempor elit ipsum aliqua qui. Sunt non pariatur deserunt pariatur id minim.", - "ips": [ - "135.222.69.138" - ] + "ips": ["135.222.69.138"] }, { "uuid": "1545b4a5-2072-4d0f-9551-a500a644f500", "vector": "Nostrud adipisicing dolore amet laborum. Voluptate mollit duis ipsum cillum cupidatat cupidatat qui pariatur non in amet consectetur. Mollit amet excepteur culpa cupidatat nisi excepteur minim do aliqua. Sit sit aute minim aliqua. Esse quis ad irure cupidatat aute proident.", "meta": "Voluptate esse elit ullamco ad ullamco aute ea cupidatat tempor fugiat qui qui. Excepteur anim ut adipisicing veniam enim. Veniam do tempor esse exercitation anim mollit id do dolor enim aliquip officia nostrud et. Esse laboris aliquip eu occaecat magna laboris. Cillum in amet do occaecat adipisicing reprehenderit sit reprehenderit quis aute laborum. Labore proident excepteur aliqua elit exercitation pariatur velit reprehenderit ex excepteur nostrud qui. Amet anim anim nisi incididunt tempor pariatur ipsum.", - "ips": [ - "176.187.120.160" - ] + "ips": ["176.187.120.160"] }, { "uuid": "3fbebaa1-991c-4e75-8bd7-e18cc567e9c0", "vector": "Elit dolor Lorem consectetur aliqua. Aute dolor laborum sint consequat sunt labore voluptate. Ex excepteur consequat aliquip tempor elit.", "meta": "Cupidatat officia pariatur proident sunt sunt proident id ex irure adipisicing in. Aliqua nisi tempor eiusmod mollit elit qui esse irure minim esse. Aliqua aliquip aute consequat deserunt consectetur commodo anim Lorem quis excepteur. Qui nisi id enim culpa labore deserunt. Proident ullamco nisi consequat dolor consectetur commodo. Anim labore consectetur exercitation ullamco nisi mollit exercitation consequat ex sit. Eiusmod fugiat in nisi do officia est voluptate eu occaecat.", - "ips": [ - "21.113.102.176" - ] + "ips": ["21.113.102.176"] }, { "uuid": "20104a70-e2f7-4f1a-8c0f-dd56accc8745", "vector": "Labore ullamco non fugiat ex sit commodo ea labore esse cillum do adipisicing. Elit esse dolore eu ea amet ea. Eu veniam ea consequat ipsum fugiat. Aliquip elit nostrud officia reprehenderit tempor ex nisi sunt.", "meta": "Cupidatat dolore ipsum cillum exercitation duis anim laboris occaecat officia et ex duis culpa laborum. Laborum ut esse ipsum ullamco magna quis voluptate. Nostrud tempor sint occaecat do ut.", - "ips": [ - "134.226.208.20" - ] + "ips": ["134.226.208.20"] }, { "uuid": "d6157bbc-2e3b-4294-96b2-7245e58c977f", "vector": "Cupidatat aliqua quis laborum enim laborum laboris dolor adipisicing minim ipsum. Voluptate officia exercitation ex aute quis labore qui velit amet nulla sint Lorem laborum irure. Officia sint aliquip do sit est exercitation dolore minim laborum incididunt eiusmod id velit.", "meta": "Do nulla tempor tempor consequat cupidatat consequat do. Ipsum enim commodo eu qui minim ipsum nisi laboris laborum exercitation velit. Sit irure fugiat proident consectetur mollit commodo culpa. Adipisicing incididunt veniam velit quis proident do minim anim nostrud labore sit dolore. Veniam aliquip laborum cupidatat officia minim pariatur anim mollit cillum.", - "ips": [ - "123.59.100.42" - ] + "ips": ["123.59.100.42"] }, { "uuid": "87c3e6da-7727-42ee-b336-11e39e8b22e8", "vector": "Elit magna in sunt fugiat ullamco do voluptate dolore eiusmod voluptate minim ad qui nisi. Ex irure ea commodo et deserunt elit cupidatat minim tempor enim elit ex. Consequat mollit velit dolore consectetur enim exercitation in Lorem culpa.", "meta": "Eu non sunt in esse laborum reprehenderit deserunt proident dolore eiusmod. Consectetur labore voluptate laboris consequat deserunt id qui. Exercitation incididunt aliquip commodo reprehenderit. Dolore voluptate qui in voluptate aute id ea culpa ex aliqua eiusmod.", - "ips": [ - "14.206.230.138" - ] + "ips": ["14.206.230.138"] }, { "uuid": "9dd0042a-1da4-43d9-a666-864f7e1121d3", "vector": "Id mollit mollit consequat consectetur voluptate exercitation velit quis labore. Pariatur aliquip sint nostrud voluptate sunt. Laboris est magna reprehenderit aute. Tempor est sunt anim consequat et ex excepteur officia enim. Excepteur mollit enim non amet nostrud aliquip sunt esse.", "meta": "Elit cillum nulla exercitation labore ad sint officia commodo elit qui laboris elit laborum. Amet nulla nostrud aliquip incididunt sit ad voluptate ipsum cupidatat elit velit mollit veniam cillum. Commodo incididunt mollit esse esse ea nostrud velit. Excepteur esse reprehenderit cupidatat ipsum tempor Lorem laboris esse duis. Reprehenderit officia duis eu ipsum id voluptate laboris laborum commodo tempor Lorem amet do occaecat. Consequat commodo id quis adipisicing mollit eu amet ipsum velit ex. Officia consequat laboris sint anim est do commodo eu.", - "ips": [ - "176.63.161.89" - ] + "ips": ["176.63.161.89"] }, { "uuid": "19ed8e02-cf58-4078-bd4d-ed3776d3ef72", "vector": "Minim qui eu commodo non deserunt culpa eiusmod ex duis eu mollit. Quis dolor tempor est consectetur laborum laborum velit. Cillum qui laborum sit nostrud. Sint Lorem magna pariatur elit do et fugiat commodo quis elit officia minim consectetur do. Magna ea et non aute.", "meta": "Officia ad mollit enim excepteur duis ad ut sint nisi veniam non elit. Magna nisi anim voluptate nostrud est est dolor amet labore et mollit adipisicing. Pariatur duis veniam sit excepteur anim veniam cillum ea.", - "ips": [ - "169.232.117.244" - ] + "ips": ["169.232.117.244"] }, { "uuid": "f95e4fa3-55da-4a8e-b2ba-a1d0b3fa5500", "vector": "Ea occaecat labore mollit do ex id in tempor amet ex mollit. Elit nulla deserunt culpa occaecat. Ut do ex tempor nisi culpa reprehenderit eiusmod quis elit nulla non qui aute.", "meta": "Duis dolor qui minim minim elit occaecat consectetur dolore dolore ea esse ex enim et. Irure veniam sint ut dolor amet ex aute irure quis sunt aute aliqua. Esse sit aute excepteur laboris excepteur culpa irure nulla aute minim exercitation. Commodo tempor ad ex esse ullamco nisi aute commodo occaecat. Commodo Lorem anim mollit cillum occaecat magna in non eu elit ullamco nostrud laborum sint. Ex officia aliqua ipsum non ad exercitation proident excepteur elit culpa.", - "ips": [ - "217.142.38.123" - ] + "ips": ["217.142.38.123"] }, { "uuid": "c20e658e-b595-4e45-a0a4-95e369ed0c57", "vector": "Velit officia tempor sint eu veniam aliquip Lorem officia sunt eu aliqua aliqua commodo. Reprehenderit culpa nulla elit amet aliquip aliquip anim nisi sit non duis in voluptate Lorem. Aliquip nisi fugiat cillum do ad incididunt consequat voluptate adipisicing id consequat velit minim sit. Est nostrud incididunt eu officia duis incididunt eu ipsum qui officia est officia. Veniam fugiat consectetur laborum laboris minim ea in ex aliqua incididunt. Dolore consectetur Lorem anim fugiat sunt incididunt sint do quis exercitation duis. Sunt id nisi quis laboris adipisicing commodo aliquip ipsum minim est aliquip culpa.", "meta": "Adipisicing non occaecat aliquip ea. Aliqua in cupidatat non cillum nostrud. Ipsum cillum laboris mollit cupidatat.", - "ips": [ - "112.30.218.83" - ] + "ips": ["112.30.218.83"] }, { "uuid": "d65b8ebd-2768-46fe-8f58-f1b7a5250cfc", "vector": "Quis incididunt Lorem sunt sit. Non adipisicing est ipsum non. Nostrud consectetur labore do tempor labore tempor reprehenderit esse occaecat sit quis mollit proident sint. Dolor ut mollit incididunt consectetur ex.", "meta": "Veniam anim consequat sunt cillum dolor aliqua consequat aliquip Lorem incididunt eu esse exercitation cillum. Tempor incididunt tempor enim quis irure pariatur dolore. In occaecat reprehenderit sunt nulla enim qui culpa Lorem veniam eu aliquip aliquip in incididunt. Laborum excepteur in in fugiat non adipisicing. Proident cillum nostrud mollit do ex culpa adipisicing elit. Occaecat sunt mollit commodo est nisi Lorem nostrud consectetur. Quis adipisicing dolor proident et.", - "ips": [ - "247.199.53.13" - ] + "ips": ["247.199.53.13"] }, { "uuid": "191be1f0-3aef-4ed6-af23-99f30568f256", "vector": "Tempor occaecat dolore adipisicing deserunt ex cillum duis eiusmod reprehenderit. Reprehenderit veniam exercitation eu sint commodo exercitation elit commodo irure nulla deserunt. Laboris irure mollit non exercitation Lorem qui laborum nulla commodo nisi Lorem amet. Adipisicing exercitation mollit qui dolore sint fugiat adipisicing. Do reprehenderit anim et amet.", "meta": "Ad veniam qui id qui Lorem aliqua tempor aliqua et amet ipsum duis. Occaecat eiusmod ipsum minim quis et magna excepteur fugiat aliquip aliquip. Pariatur voluptate laboris fugiat laborum in tempor laborum cillum laboris aliqua cillum.", - "ips": [ - "170.109.150.89" - ] + "ips": ["170.109.150.89"] }, { "uuid": "05dc462e-65e8-4766-9a49-5fe54b7bbfa4", "vector": "Ad labore ullamco voluptate reprehenderit ad sunt sunt excepteur proident. Nulla ex ut sint commodo elit amet Lorem magna sint. Exercitation sit et deserunt reprehenderit Lorem ex dolore ut.", "meta": "Ut dolore sint tempor officia. Excepteur velit pariatur sint excepteur dolor sit. Officia velit ipsum sint proident dolore.", - "ips": [ - "226.94.81.59" - ] + "ips": ["226.94.81.59"] }, { "uuid": "7ed16967-500b-4768-a9ff-a7bff718ebf2", "vector": "Aliqua eiusmod veniam deserunt minim aliqua anim in. Eu fugiat adipisicing labore dolor reprehenderit sit ex aliquip. Enim excepteur esse incididunt qui ipsum ut officia ex aliquip et mollit eu officia ea.", "meta": "Enim dolore nostrud ea officia incididunt velit esse officia commodo est. Cupidatat eu reprehenderit do nostrud culpa aute qui culpa mollit nostrud veniam est elit Lorem. Cupidatat labore laborum est ullamco do tempor est deserunt culpa laborum cupidatat culpa. Proident amet cillum dolore occaecat. Ea anim do aute nulla reprehenderit irure magna. Commodo nulla ad tempor fugiat.", - "ips": [ - "229.122.78.253" - ] + "ips": ["229.122.78.253"] }, { "uuid": "dfd349b1-9ce1-49d1-9662-418eaa0748ee", "vector": "Deserunt ullamco reprehenderit sint esse dolore minim enim excepteur sunt. Eu tempor reprehenderit aliquip nostrud. Labore deserunt cillum ad eu aute Lorem ea Lorem qui. In do culpa quis enim anim elit eiusmod et cupidatat.", "meta": "Fugiat quis labore culpa mollit incididunt dolore commodo labore minim elit. Consequat enim fugiat duis dolore proident. Id dolore duis ipsum ut. Ex ad sit mollit ad sint sit ipsum officia sit quis ut proident elit cupidatat.", - "ips": [ - "205.230.164.232" - ] + "ips": ["205.230.164.232"] }, { "uuid": "e6abe759-9e63-4cc2-8cbc-696d84d94620", "vector": "Fugiat ut in deserunt esse excepteur cillum commodo do anim commodo. Sint veniam non enim labore laborum. Ullamco minim sunt tempor cillum ex ex aliqua ad id esse enim irure. Est nisi proident veniam dolor et fugiat commodo irure. Cillum ad laborum esse ut.", "meta": "Eiusmod nostrud reprehenderit magna occaecat aute aute. Pariatur Lorem qui minim non irure non ut non. Minim elit aliquip laboris incididunt.", - "ips": [ - "155.78.36.98" - ] + "ips": ["155.78.36.98"] }, { "uuid": "abbe63fd-7d35-4b15-83b3-12589697663b", "vector": "Nulla labore veniam do laboris enim laboris cillum veniam sunt sint minim in. Enim esse magna labore ad consectetur id esse commodo ex. Occaecat ullamco nulla excepteur sit quis non. Cillum quis nisi ea elit dolor ad duis laborum eiusmod anim aliquip. Irure culpa ullamco excepteur fugiat nulla veniam aliquip enim officia qui. Nostrud minim do ipsum anim minim do esse.", "meta": "Veniam eu consectetur minim aliquip. Ex dolor anim excepteur veniam voluptate quis tempor. Mollit magna labore do est et fugiat ad aliquip ullamco tempor fugiat officia veniam. Exercitation veniam ipsum sunt consectetur Lorem mollit voluptate nostrud. Culpa aute sint ad et tempor. Exercitation est veniam id ad Lorem enim minim. Aliquip exercitation labore sunt fugiat magna ex consequat anim est.", - "ips": [ - "200.49.67.120" - ] + "ips": ["200.49.67.120"] }, { "uuid": "5f8d25d0-bafb-4600-b69f-084b7e250986", "vector": "Mollit anim est dolore ipsum voluptate est excepteur. Proident non ex pariatur consequat sunt eu minim velit deserunt nostrud occaecat mollit. Eiusmod aliqua nostrud sint amet tempor labore mollit excepteur excepteur aliquip sunt. Non duis minim adipisicing incididunt aute laborum. Quis id consectetur nulla aliquip dolore cupidatat consectetur officia. Sit tempor minim do adipisicing consequat elit laborum mollit.", "meta": "Deserunt cillum exercitation tempor officia amet enim sit sunt. Aliqua laborum ad excepteur sunt in sunt. Commodo sit veniam in laborum est ut veniam minim. Eu do nostrud voluptate do. Qui cillum adipisicing anim proident irure nulla aliquip reprehenderit veniam sit esse. Occaecat id culpa Lorem aliqua aliquip nostrud enim eiusmod pariatur incididunt ut eiusmod ex commodo. Eu est tempor laborum aute magna amet ex veniam mollit.", - "ips": [ - "108.201.167.239" - ] + "ips": ["108.201.167.239"] }, { "uuid": "5b3509b5-e1cf-4431-8b81-1c8229605424", "vector": "Exercitation sint Lorem culpa minim in quis aliquip cillum deserunt dolor nostrud sint. Incididunt eu in esse sunt nulla ut. Aliquip velit consectetur non est reprehenderit proident ipsum occaecat adipisicing officia Lorem nisi et. Est occaecat velit aliquip quis fugiat. Labore commodo quis tempor ad excepteur.", "meta": "Officia amet nulla cupidatat nostrud nisi commodo laboris magna eiusmod aliqua. Cillum tempor Lorem esse anim culpa duis aute consectetur adipisicing eiusmod proident elit dolor. Velit laborum incididunt laborum anim.", - "ips": [ - "253.72.192.63" - ] + "ips": ["253.72.192.63"] }, { "uuid": "7a248bf9-d1aa-4bd9-8b22-773a5cfc53ea", "vector": "Veniam sint officia aliqua magna tempor pariatur consectetur qui fugiat commodo velit. Enim deserunt officia non magna culpa. Nisi dolor pariatur ex velit ut sunt veniam sint minim occaecat nulla duis. Eiusmod irure exercitation in qui. Nostrud nulla minim velit et ex velit incididunt enim officia minim labore sunt.", "meta": "Sint quis exercitation nisi irure dolore occaecat laborum ullamco magna adipisicing. Commodo id ipsum ullamco velit do in aliqua esse exercitation quis aliquip sit. Id pariatur nisi pariatur sunt sint do excepteur excepteur excepteur labore occaecat ea non nostrud. Incididunt culpa id ex aliqua nostrud id sint consectetur aliqua proident quis veniam in officia. Deserunt consectetur ea non veniam proident anim labore laborum voluptate veniam.", - "ips": [ - "185.173.158.47" - ] + "ips": ["185.173.158.47"] }, { "uuid": "3d299fb2-1aaa-4309-a2e2-a95940f88f86", "vector": "Fugiat reprehenderit fugiat non non adipisicing laboris veniam ut aute pariatur dolore cupidatat ex duis. Do incididunt ipsum esse officia eu enim dolor mollit adipisicing cillum. Cillum consequat duis quis laborum aliqua officia nostrud. Voluptate sunt ea sit labore. Proident pariatur enim duis ullamco dolore nulla minim minim esse laboris est mollit do. Aliquip nisi eiusmod qui laboris proident exercitation anim commodo laborum nostrud incididunt consequat do.", "meta": "Velit ipsum exercitation amet anim fugiat deserunt nisi id id. Voluptate veniam sint pariatur ipsum non minim qui ut magna deserunt ut minim aliquip dolore. Cillum amet ullamco enim amet mollit voluptate. Amet ipsum officia dolor adipisicing. Minim duis labore laborum reprehenderit ullamco irure veniam qui nisi. Amet do non sint irure aliqua cillum non consequat elit consectetur. Est fugiat ea aliquip aliquip qui aliquip dolor duis sunt excepteur Lorem officia id amet.", - "ips": [ - "113.155.251.58" - ] + "ips": ["113.155.251.58"] } ] diff --git a/k8s/metrics/otel/README.md b/k8s/metrics/otel/README.md index 6b9c6a0961..fdad192253 100644 --- a/k8s/metrics/otel/README.md +++ b/k8s/metrics/otel/README.md @@ -18,40 +18,40 @@ Vald ===> OpenTelemetry Collector ==== 1. To deploy the operator in a Kubernetes Cluster, we first need to deploy [cert-manager](https://cert-manager.io/docs/installation/). - ```sh - make k8s/external/cert-manager/deploy - ``` + ```sh + make k8s/external/cert-manager/deploy + ``` 2. Deploy Jaeger and Prometheus to export traces and metrics from OpenTelemetry Collector. - - Deploy Jaeger + - Deploy Jaeger - ```sh - make k8s/metrics/jaeger/deploy - ``` + ```sh + make k8s/metrics/jaeger/deploy + ``` - - Deploy Prometheus + - Deploy Prometheus - ```sh - make k8s/metrics/prometheus/operator/deploy - ``` + ```sh + make k8s/metrics/prometheus/operator/deploy + ``` 3. Deploy Grafana and dashboard to visualize the metrics. - ```sh - make k8s/metrics/grafana/deploy - ``` + ```sh + make k8s/metrics/grafana/deploy + ``` 4. Deploy OpenTelemetry Operator and Collector. - - Deploy OpenTelemetry Operator + - Deploy OpenTelemetry Operator - ```sh - make k8s/otel/operator/install - ``` + ```sh + make k8s/otel/operator/install + ``` - - Deploy OpenTelemetry Collector + - Deploy OpenTelemetry Collector - ```sh - make k8s/otel/collector/install - ``` + ```sh + make k8s/otel/collector/install + ``` diff --git a/k8s/metrics/pyroscope/README.md b/k8s/metrics/pyroscope/README.md index 995c08bad9..9afcb2646f 100644 --- a/k8s/metrics/pyroscope/README.md +++ b/k8s/metrics/pyroscope/README.md @@ -2,7 +2,7 @@ This is the mafests to deploy pyroscope server and pyroscope agent. -The pyroscope server scrapes pprof data. +The pyroscope server scrapes pprof data. Which pod data to scrape is determined by `podAnnotations`. diff --git a/renovate.json b/renovate.json index f45d8f110c..4f39080e47 100755 --- a/renovate.json +++ b/renovate.json @@ -1,5 +1,3 @@ { - "extends": [ - "config:base" - ] + "extends": ["config:base"] } diff --git a/tests/chaos/chart/README.md b/tests/chaos/chart/README.md index b44b1506ab..0a5dbdc2cb 100644 --- a/tests/chaos/chart/README.md +++ b/tests/chaos/chart/README.md @@ -6,38 +6,39 @@ A Helm chart for testing Vald using Chaos Mesh. ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| networkChaos.bandwidth.buffer | int | `10000` | | -| networkChaos.bandwidth.duration | string | `"100ms"` | | -| networkChaos.bandwidth.enabled | bool | `false` | | -| networkChaos.bandwidth.limit | int | `100` | | -| networkChaos.bandwidth.minburst | int | `1000000` | | -| networkChaos.bandwidth.name | string | `"vald-network-bandwidth"` | | -| networkChaos.bandwidth.peakrate | int | `1000000` | | -| networkChaos.bandwidth.rate | string | `"100kbps"` | | -| networkChaos.bandwidth.schedule | string | `"*/3 * * * * *"` | | -| networkChaos.bandwidth.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | -| networkChaos.bandwidth.selector.namespaces[0] | string | `"default"` | | -| networkChaos.partition.duration | string | `"100ms"` | | -| networkChaos.partition.enabled | bool | `false` | | -| networkChaos.partition.name | string | `"vald-network-partition"` | | -| networkChaos.partition.schedule | string | `"*/3 * * * * *"` | | -| networkChaos.partition.selector.labelSelectors."app.kubernetes.io/component" | string | `"agent"` | | -| networkChaos.partition.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | -| networkChaos.partition.selector.namespaces[0] | string | `"default"` | | -| podChaos.failure.duration | string | `"10s"` | | -| podChaos.failure.enabled | bool | `false` | | -| podChaos.failure.name | string | `"vald-pod-failure"` | | -| podChaos.failure.schedule | string | `"*/1 * * * *"` | | -| podChaos.failure.selector.labelSelectors."app.kubernetes.io/component" | string | `"agent"` | | -| podChaos.failure.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | -| podChaos.failure.selector.namespaces[0] | string | `"default"` | | -| podChaos.kill.enabled | bool | `false` | | -| podChaos.kill.name | string | `"vald-pod-kill"` | | -| podChaos.kill.schedule | string | `"*/2 * * * *"` | | -| podChaos.kill.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | -| podChaos.kill.selector.namespaces[0] | string | `"default"` | | +| Key | Type | Default | Description | +| ---------------------------------------------------------------------------- | ------ | -------------------------- | ----------- | +| networkChaos.bandwidth.buffer | int | `10000` | | +| networkChaos.bandwidth.duration | string | `"100ms"` | | +| networkChaos.bandwidth.enabled | bool | `false` | | +| networkChaos.bandwidth.limit | int | `100` | | +| networkChaos.bandwidth.minburst | int | `1000000` | | +| networkChaos.bandwidth.name | string | `"vald-network-bandwidth"` | | +| networkChaos.bandwidth.peakrate | int | `1000000` | | +| networkChaos.bandwidth.rate | string | `"100kbps"` | | +| networkChaos.bandwidth.schedule | string | `"*/3 * * * * *"` | | +| networkChaos.bandwidth.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | +| networkChaos.bandwidth.selector.namespaces[0] | string | `"default"` | | +| networkChaos.partition.duration | string | `"100ms"` | | +| networkChaos.partition.enabled | bool | `false` | | +| networkChaos.partition.name | string | `"vald-network-partition"` | | +| networkChaos.partition.schedule | string | `"*/3 * * * * *"` | | +| networkChaos.partition.selector.labelSelectors."app.kubernetes.io/component" | string | `"agent"` | | +| networkChaos.partition.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | +| networkChaos.partition.selector.namespaces[0] | string | `"default"` | | +| podChaos.failure.duration | string | `"10s"` | | +| podChaos.failure.enabled | bool | `false` | | +| podChaos.failure.name | string | `"vald-pod-failure"` | | +| podChaos.failure.schedule | string | `"*/1 * * * *"` | | +| podChaos.failure.selector.labelSelectors."app.kubernetes.io/component" | string | `"agent"` | | +| podChaos.failure.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | +| podChaos.failure.selector.namespaces[0] | string | `"default"` | | +| podChaos.kill.enabled | bool | `false` | | +| podChaos.kill.name | string | `"vald-pod-kill"` | | +| podChaos.kill.schedule | string | `"*/2 * * * *"` | | +| podChaos.kill.selector.labelSelectors."app.kubernetes.io/name" | string | `"vald"` | | +| podChaos.kill.selector.namespaces[0] | string | `"default"` | | + +--- ----------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)