Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Backport PR #2565 to release/v1.7 for [BUGFIX] index correction process #2566

Conversation

vdaas-ci
Copy link
Collaborator

@vdaas-ci vdaas-ci commented Aug 6, 2024

Description

The Index Correction logic has been fundamentally revised, bugfixed, and refactored, addressing the issue of missing indexes in the Replica=2 case. The internal Key-Value Store (KVS) has been transitioned from bbolt to pogreb. External dependent images are now uploaded to ghcr.io periodically via Cron Action to mitigate CI failures due to rate limits, as specified in the modified _docker_image.yaml after this PR merge.

Internal Configuration:

internal/config/corrector.go has been updated to include new fields: KVSBackgroundSyncInterval and KVSBackgroundCompactionInterval.
A new Gateway configuration has been added.
The corresponding test file corrector_test.go has been updated accordingly.

Helm Charts:

charts/vald-helm-operator/crds/valdrelease.yaml now includes new configuration options for the gateway and KVS intervals.
charts/vald/templates/index/job/correction/configmap.yaml has been modified to integrate the new configuration options.
Updates to charts/vald/values.schema.json and charts/vald/values.yaml support the new configuration settings.

Dockerfiles:

Minor adjustments in dockers/agent/core/agent/Dockerfile and dockers/dev/Dockerfile ensure consistency.

Kubernetes Configurations:

Several Kubernetes configuration files for index correction, creation, and save jobs, as well as the index operator, have been added and updated. These changes ensure proper integration and utilization of the new configuration options, addressing the index correction process's bug fix.

New Features:

Comprehensive configuration for the Vald indexing service, enhancing observability, server management, and connection handling.
New configuration options for gateway behavior, including properties for connection management and error handling.
New Kubernetes ConfigMaps for the Vald indexing operator and correction service streamline configuration management.
Background synchronization and compaction intervals support in the KVS configuration.
New functional options for the index corrector improve error handling and concurrency configuration.
New Dockerfiles for managing multi-stage builds.
Updated Kubernetes deployment configurations to enhance modularity and flexibility.

Bug Fixes:

Improved error handling for gateway client interactions and enhanced logic for managing vector corrections.

Documentation:

Updated configuration files and README to reflect new features and parameters for the Vald indexing service.

Refactor:

Simplified variable naming and structure across various components for better readability and maintainability.
Replaced hardcoded paths with dynamic variables in deployment scripts for improved flexibility.

Chores:

Updated dependencies to their latest versions for improved performance and security.
Updated version numbers for several components, indicating minor revisions and enhancements.

Related Issue

Versions

  • Vald Version: v1.7.12
  • Go Version: v1.22.5
  • Rust Version: v1.80.0
  • Docker Version: v27.1.1
  • Kubernetes Version: v1.30.3
  • Helm Version: v3.15.3
  • NGT Version: v2.2.4
  • Faiss Version: v1.8.0

Checklist

Summary by CodeRabbit

  • New Features

    • Introduced a new configuration for gateway settings in the Kubernetes Custom Resource Definition, enhancing connection management.
    • Added a new CronJob for vald-index-correction, automating scheduled operations.
    • Created new ConfigMaps for vald-index-creation and vald-index-save, specifying operational parameters.
    • Enhanced GitHub Actions to streamline workflows for Docker image builds.
  • Bug Fixes

    • Updated error handling to include a specific error for agent removal scenarios.
  • Documentation

    • Updated configuration documentation in the README files with new settings and their purposes.
  • Chores

    • Updated Dockerfiles and CI/CD configurations to support new features and improve build processes.

* [BUGFIX] index correction process

Signed-off-by: kpango <[email protected]>

* fix: disable chaos deploy

Signed-off-by: hlts2 <[email protected]>

* Revert "fix: disable chaos deploy"

This reverts commit 48aa7a9.

* fix: add condition for k3d ingress

Signed-off-by: hlts2 <[email protected]>

---------

Signed-off-by: kpango <[email protected]>
Signed-off-by: hlts2 <[email protected]>
Co-authored-by: hlts2 <[email protected]>
Copy link

cloudflare-workers-and-pages bot commented Aug 6, 2024

Deploying vald with  Cloudflare Pages  Cloudflare Pages

Latest commit: c3a46df
Status: ✅  Deploy successful!
Preview URL: https://e98e37ea.vald.pages.dev
Branch Preview URL: https://backport-release-v1-7-bugfix-5m1q.vald.pages.dev

View logs

Copy link
Contributor

coderabbitai bot commented Aug 6, 2024

Caution

Review failed

The pull request is closed.

Walkthrough

[!WARNING]

Walkthrough skipped

File diffs could not be summarized.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@vdaas-ci
Copy link
Collaborator Author

vdaas-ci commented Aug 6, 2024

[CHATOPS:HELP] ChatOps commands.

  • 🙆‍♀️ /approve - approve
  • 🍱 /format - format codes and add licenses
  • /gen-test - generate test codes
  • 🏷️ /label - add labels
  • 🔚 2️⃣ 🔚 /label actions/e2e-deploy - run E2E deploy & integration test

@vdaas-ci
Copy link
Collaborator Author

vdaas-ci commented Aug 6, 2024

[WARNING:INTCFG] Changes in interal/config may require you to change Helm charts. Please check.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Outside diff range, codebase verification and nitpick comments (9)
dockers/binfmt/Dockerfile (1)

1-1: Add comments for clarity.

Consider adding comments to explain the purpose of each section of the Dockerfile for better readability and maintainability.

internal/config/corrector_test.go (2)

61-65: Ensure correct initialization of new fields in test cases.

The fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway are present in the test cases within internal/config/corrector_test.go but are initialized with empty values. Ensure that these fields are initialized with meaningful values in the test cases to properly test their functionality.

  • internal/config/corrector_test.go: Lines where fields are initialized with empty values.
Analysis chain

Ensure correct initialization of new fields in test cases.

The new fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway should be correctly initialized in the test cases.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correct initialization of new fields in test cases.

# Test: Search for the initialization of new fields in test cases. Expect: Proper initialization.
rg --type go -A 5 $'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway'

Length of output: 107923


Script:

#!/bin/bash
# Description: Verify the correct initialization of new fields in test cases within internal/config/corrector_test.go.

# Test: Search for the initialization of KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway fields in internal/config/corrector_test.go.
rg --type go -A 5 'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway' internal/config/corrector_test.go

Length of output: 1682


90-94: Ensure correct initialization of new fields in additional test cases.

The new fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway are being initialized to empty strings or default values in the test cases. Please ensure these fields are initialized with meaningful values to properly test their functionality.

  • internal/config/corrector_test.go: Lines where the fields are initialized.
Analysis chain

Ensure correct initialization of new fields in additional test cases.

The new fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway should be correctly initialized in additional test cases.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correct initialization of new fields in additional test cases.

# Test: Search for the initialization of new fields in additional test cases. Expect: Proper initialization.
rg --type go -A 5 $'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway'

Length of output: 107923


Script:

#!/bin/bash
# Description: Verify the correct initialization of new fields in additional test cases in internal/config/corrector_test.go.

# Test: Search for the initialization of new fields in the corrector_test.go file. Expect: Proper initialization.
rg --type go -A 5 'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway' internal/config/corrector_test.go

Length of output: 1682


Script:

#!/bin/bash
# Description: Extract more context around the initialization of new fields in the corrector_test.go file.

# Test: Search for the initialization of new fields in the corrector_test.go file with more context lines. Expect: Proper initialization.
rg --type go -A 10 'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway' internal/config/corrector_test.go

Length of output: 2100

pkg/index/job/correction/service/options_test.go (5)

Line range hint 102-272: Implement the test cases for TestWithIndexReplica.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?


Line range hint 273-442: Implement the test cases for TestWithDiscoverer.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?


Line range hint 443-526: Implement the test cases for TestWithGateway.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?


Line range hint 527-604: Implement the test cases for TestWithKVSSyncInterval.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?


Line range hint 605-686: Implement the test cases for TestWithKVSCompactionInterval.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?

internal/db/kvs/pogreb/pogreb_test.go (1)

Line range hint 605-686: Implement the test cases for Test_db_Set and Test_db_Close.

The function structures are well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 678e98d and c3a46df.

Files ignored due to path filters (3)
  • example/client/go.sum is excluded by !**/*.sum
  • go.sum is excluded by !**/*.sum
  • rust/Cargo.lock is excluded by !**/*.lock
Files selected for processing (54)
  • .gitfiles (3 hunks)
  • .github/actions/setup-k3d/action.yaml (1 hunks)
  • .github/helm/values/values-correction.yaml (1 hunks)
  • .github/workflows/dockers-binfmt-image.yaml (1 hunks)
  • .github/workflows/dockers-buildkit-image.yaml (1 hunks)
  • Makefile (2 hunks)
  • Makefile.d/dependencies.mk (1 hunks)
  • Makefile.d/docker.mk (2 hunks)
  • Makefile.d/e2e.mk (1 hunks)
  • Makefile.d/functions.mk (1 hunks)
  • Makefile.d/k8s.mk (2 hunks)
  • Makefile.d/proto.mk (2 hunks)
  • Makefile.d/test.mk (1 hunks)
  • charts/vald-helm-operator/crds/valdrelease.yaml (2 hunks)
  • charts/vald/README.md (1 hunks)
  • charts/vald/templates/gateway/lb/networkpolicy.yaml (2 hunks)
  • charts/vald/templates/index/job/correction/configmap.yaml (1 hunks)
  • charts/vald/templates/index/job/correction/networkpolicy.yaml (2 hunks)
  • charts/vald/values.schema.json (2 hunks)
  • charts/vald/values.yaml (1 hunks)
  • dockers/binfmt/Dockerfile (1 hunks)
  • dockers/buildkit/Dockerfile (1 hunks)
  • dockers/ci/base/Dockerfile (1 hunks)
  • example/client/go.mod (2 hunks)
  • go.mod (9 hunks)
  • internal/config/corrector.go (2 hunks)
  • internal/config/corrector_test.go (4 hunks)
  • internal/db/kvs/pogreb/options.go (2 hunks)
  • internal/db/kvs/pogreb/options_test.go (2 hunks)
  • internal/db/kvs/pogreb/pogreb.go (2 hunks)
  • internal/db/kvs/pogreb/pogreb_test.go (16 hunks)
  • internal/errors/corrector.go (1 hunks)
  • internal/servers/servers.go (2 hunks)
  • k8s/index/job/correction/configmap.yaml (1 hunks)
  • k8s/index/job/correction/cronjob.yaml (1 hunks)
  • k8s/index/job/creation/configmap.yaml (1 hunks)
  • k8s/index/job/creation/cronjob.yaml (1 hunks)
  • k8s/index/job/save/configmap.yaml (1 hunks)
  • k8s/index/job/save/cronjob.yaml (1 hunks)
  • k8s/index/operator/configmap.yaml (1 hunks)
  • k8s/index/operator/deployment.yaml (1 hunks)
  • k8s/index/operator/priorityclass.yaml (1 hunks)
  • k8s/operator/helm/crds/valdrelease.yaml (2 hunks)
  • pkg/agent/core/ngt/service/ngt_test.go (3 hunks)
  • pkg/gateway/lb/handler/grpc/handler_test.go (3 hunks)
  • pkg/index/job/correction/service/corrector.go (3 hunks)
  • pkg/index/job/correction/service/corrector_test.go (26 hunks)
  • pkg/index/job/correction/service/options.go (3 hunks)
  • pkg/index/job/correction/service/options_test.go (6 hunks)
  • pkg/index/job/correction/usecase/corrector.go (5 hunks)
  • tests/e2e/crud/crud_test.go (1 hunks)
  • versions/CMAKE_VERSION (1 hunks)
  • versions/PROMETHEUS_STACK_VERSION (1 hunks)
  • versions/YQ_VERSION (1 hunks)
Files not processed due to max files limit (1)
  • versions/actions/ACTIONS_UPLOAD_ARTIFACT
Files skipped from review due to trivial changes (7)
  • .gitfiles
  • dockers/buildkit/Dockerfile
  • dockers/ci/base/Dockerfile
  • pkg/agent/core/ngt/service/ngt_test.go
  • versions/CMAKE_VERSION
  • versions/PROMETHEUS_STACK_VERSION
  • versions/YQ_VERSION
Additional comments not posted (168)
charts/vald/README.md (2)

Line range hint 1-1:
Add documentation for new parameters.

Ensure that the new parameters gateway, kvs_background_compaction_interval, and kvs_background_sync_interval are clearly documented with examples.


Line range hint 1-1:
Verify removal of kvs_async_write_concurrency.

Ensure that the removal of the kvs_async_write_concurrency parameter does not affect existing functionality or performance.

charts/vald/values.schema.json (2)

Line range hint 1-1:
Add documentation for new gateway object.

Ensure that the new gateway object and its properties are clearly documented with examples.


Line range hint 1-1:
Verify replacement of kvs_async_write_concurrency.

Ensure that the new properties kvs_background_compaction_interval and kvs_background_sync_interval correctly replace the functionality of the removed kvs_async_write_concurrency.

dockers/binfmt/Dockerfile (1)

1-1: Ensure Dockerfile follows best practices.

Verify that the Dockerfile follows best practices for security, efficiency, and maintainability.

k8s/index/operator/priorityclass.yaml (1)

1-30: LGTM!

The PriorityClass configuration is correct and follows Kubernetes best practices.

.github/workflows/dockers-binfmt-image.yaml (1)

1-48: LGTM!

The GitHub Actions workflow for building the binfmt Docker image is correct and follows best practices.

.github/workflows/dockers-buildkit-image.yaml (1)

1-48: LGTM!

The GitHub Actions workflow for building the buildkit Docker image is correct and follows best practices.

internal/db/kvs/pogreb/options.go (2)

43-50: LGTM! But verify the function usage in the codebase.

The change to accept a time.Duration instead of a string improves type safety and simplifies the function. Ensure that all references to this function in the codebase are updated accordingly.

Verification successful

LGTM! The function usage has been updated correctly.

The change to accept a time.Duration instead of a string improves type safety and simplifies the function. All references to this function in the codebase have been updated accordingly.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all function calls to `WithBackgroundSyncInterval` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type go -A 5 $'WithBackgroundSyncInterval'

Length of output: 5663


55-62: LGTM! But verify the function usage in the codebase.

The change to accept a time.Duration instead of a string improves type safety and simplifies the function. Ensure that all references to this function in the codebase are updated accordingly.

Verification successful

Verify the function usage in pkg/index/job/correction/service/corrector.go to ensure it matches the new signature.

The function WithBackgroundCompactionInterval is used in pkg/index/job/correction/service/corrector.go. Ensure that it passes a time.Duration argument to match the updated function signature.


Verification successful.

The function WithBackgroundCompactionInterval is correctly used with a time.Duration argument in pkg/index/job/correction/service/corrector.go, matching the updated function signature.

  • pkg/index/job/correction/service/corrector.go
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all function calls to `WithBackgroundCompactionInterval` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type go -A 5 $'WithBackgroundCompactionInterval'

Length of output: 2034


Script:

#!/bin/bash
# Description: Verify the argument type for `WithBackgroundCompactionInterval` in `pkg/index/job/correction/service/corrector.go`.

# Search for the definition of `backgroundCompactionInterval` to ensure it is of type `time.Duration`.
rg --type go 'backgroundCompactionInterval'

Length of output: 2921

example/client/go.mod (5)

15-15: Dependency Update: google.golang.org/genproto/googleapis/api

The version has been updated from v0.0.0-20240730163845-b1a4ccb954bf to v0.0.0-20240805194559-2c9e96a0b5d4. Ensure that the updated version is compatible with the rest of the codebase.


6-6: Dependency Update: github.com/envoyproxy/protoc-gen-validate

The version has been updated from v1.0.4 to v1.1.0. Ensure that the updated version is compatible with the rest of the codebase.


40-40: ```shell
#!/bin/bash

Description: Verify compatibility of the updated dependency google.golang.org/genproto/googleapis/rpc in the identified files.

Test: Inspect usage in tests/e2e/performance/max_vector_dim_test.go

echo "Inspecting tests/e2e/performance/max_vector_dim_test.go"
rg --type go -A 10 'google.golang.org/genproto/googleapis/rpc' tests/e2e/performance/max_vector_dim_test.go

Test: Inspect usage in internal/net/grpc/status/status.go

echo "Inspecting internal/net/grpc/status/status.go"
rg --type go -A 10 'google.golang.org/genproto/googleapis/rpc' internal/net/grpc/status/status.go

Test: Inspect usage in internal/net/grpc/errdetails/errdetails.go

echo "Inspecting internal/net/grpc/errdetails/errdetails.go"
rg --type go -A 10 'google.golang.org/genproto/googleapis/rpc' internal/net/grpc/errdetails/errdetails.go

Test: Inspect usage in apis/grpc/v1/payload/payload_vtproto.pb.go

echo "Inspecting apis/grpc/v1/payload/payload_vtproto.pb.go"
rg --type go -A 10 'google.golang.org/genproto/googleapis/rpc' apis/grpc/v1/payload/payload_vtproto.pb.go

Test: Inspect usage in apis/grpc/v1/payload/payload.pb.go

echo "Inspecting apis/grpc/v1/payload/payload.pb.go"
rg --type go -A 10 'google.golang.org/genproto/googleapis/rpc' apis/grpc/v1/payload/payload.pb.go


---

`14-14`: ```shell
#!/bin/bash
# Description: List the tags or commit messages in the `google.golang.org/genproto` repository to find the correct versions.

# Fetch the tags or commit messages for `google.golang.org/genproto`
curl -s https://api.github.com/repos/googleapis/go-genproto/tags | jq '.[] | {name: .name, commit: .commit.sha}'

16-16: Dependency Update: google.golang.org/genproto/googleapis/rpc

The version has been updated from v0.0.0-20240730163845-b1a4ccb954bf to v0.0.0-20240805194559-2c9e96a0b5d4. Ensure that the updated version is compatible with the rest of the codebase.

.github/helm/values/values-correction.yaml (6)

17-21: Defaults Configuration: Logging and Network Policy

The logging level is set to info and the network policy is enabled. These configurations are standard and necessary for the application.


22-33: Gateway Configuration: Load Balancing and Resources

The load balancing is enabled with minimum replicas set to 1. The resource requests are set to reasonable values. The gateway configuration includes an index replica setting. These configurations are standard and necessary for the application.


34-48: Agent Configuration: Replicas, Resources, and NGT Settings

The agent configuration includes settings for minimum and maximum replicas, resource requests, and NGT-specific settings such as auto-index duration limit and dimension. These configurations are standard and necessary for the application.


49-56: Discoverer Configuration: Replicas and Resources

The discoverer configuration includes settings for minimum replicas and resource requests. These configurations are standard and necessary for the application.


57-67: Manager Configuration: Index Replicas, Resources, and Indexer Settings

The manager configuration includes settings for index replicas, resource requests, and indexer-specific settings such as auto-index duration limit and auto-index length. These configurations are standard and necessary for the application.


68-73: Corrector Configuration: Enabling, Suspending for CI, and Schedule

The corrector configuration includes settings for enabling the corrector, suspending it for CI, and setting a schedule. These configurations are standard and necessary for the application.

charts/vald/templates/index/job/correction/networkpolicy.yaml (2)

18-18: LGTM!

The new variable $lb declaration for the load balancer configuration is correct and aligns with Helm templating practices.


55-60: LGTM!

The new rules under the spec section enhance the template's flexibility in managing network policies and provide better integration with the load balancer's settings.

internal/errors/corrector.go (1)

29-30: LGTM!

The new error variable ErrNoAvailableAgentToRemove enhances the error handling capabilities by providing a specific error message for the scenario where there is no available agent to remove a replica.

charts/vald/templates/gateway/lb/networkpolicy.yaml (2)

22-22: LGTM!

The new variable $corrector declaration for the corrector configuration is correct and aligns with Helm templating practices.


52-57: LGTM!

The new ingress rules enhance the template's flexibility in managing network policies and provide better integration with the corrector's settings.

Makefile.d/proto.mk (2)

50-50: LGTM! Improved maintainability by using a variable instead of a hardcoded path.

The change enhances flexibility and makes future updates easier.


62-65: LGTM! Enhanced maintainability by using variables instead of hardcoded paths.

The changes improve readability and make future updates easier.

internal/config/corrector.go (3)

41-45: LGTM! Added new fields for KVS operation intervals.

The changes enhance configuration flexibility for KVS operations.


53-54: LGTM! Added a new field for gateway service configuration.

The change extends the service configuration capabilities.


63-71: LGTM! Updated the Bind method to process new fields.

The changes ensure proper handling of the new configuration options.

internal/servers/servers.go (1)

23-23: LGTM! Replaced the sort package with the slices package for better efficiency.

The changes streamline slice operations and improve code clarity.

Also applies to: 53-54

pkg/index/job/correction/service/options.go (4)

33-40: LGTM!

The function correctly checks for a nil error group before assigning it.


65-74: LGTM!

The function correctly checks for a nil gateway client before assigning it.


87-100: LGTM!

The function correctly parses the duration string and assigns it to the configuration.


102-113: LGTM!

The function correctly parses the duration string and assigns it to the configuration.

internal/db/kvs/pogreb/pogreb.go (2)

27-29: LGTM!

Renaming the interface to DB reflects a more generic usage, which is a good practice for standardizing database interactions.


46-47: LGTM!

Updating the return type to DB aligns with the new naming convention and reinforces the idea of a more generalized database interface.

.github/actions/setup-k3d/action.yaml (1)

84-95: LGTM!

The new logic improves flexibility and ensures consistent application of options regardless of the initial state of K3D_OPTIONS.

internal/config/corrector_test.go (2)

20-30: Ensure new fields are correctly integrated.

The new fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway have been added to the fields struct. Ensure that these fields are correctly initialized and utilized in the test cases.


125-135: Ensure correct assignment of new fields in the Corrector struct.

The new fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway should be correctly assigned in the Corrector struct.

Verification successful

Ensure correct assignment of new fields in the Corrector struct.

The fields KVSBackgroundSyncInterval, KVSBackgroundCompactionInterval, and Gateway are correctly assigned in the Corrector struct. The assignments are also covered in the test cases in internal/config/corrector_test.go.

  • KVSBackgroundSyncInterval is assigned in internal/config/corrector.go and tested in internal/config/corrector_test.go.
  • KVSBackgroundCompactionInterval is assigned in internal/config/corrector.go and tested in internal/config/corrector_test.go.
  • Gateway is assigned in internal/config/corrector.go and tested in internal/config/corrector_test.go.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correct assignment of new fields in the `Corrector` struct.

# Test: Search for the assignment of new fields in the `Corrector` struct. Expect: Proper assignment.
rg --type go -A 5 $'KVSBackgroundSyncInterval|KVSBackgroundCompactionInterval|Gateway'

Length of output: 107923

charts/vald/templates/index/job/correction/configmap.yaml (2)

54-55: Ensure correct integration of new KVS parameters.

The new parameters kvs_background_sync_interval and kvs_background_compaction_interval replace the existing kvs_async_write_concurrency parameter. Ensure that these new parameters are correctly integrated and align with the PR objectives.

Verification successful

The new KVS parameters are correctly integrated.

The parameters kvs_background_sync_interval and kvs_background_compaction_interval have been correctly integrated across the relevant configuration and CRD files. They are defined in charts/vald/values.yaml, referenced in charts/vald/templates/index/job/correction/configmap.yaml, and included in the CRD schemas.

  • Files reviewed:
    • k8s/operator/helm/crds/valdrelease.yaml
    • k8s/index/job/correction/configmap.yaml
    • charts/vald/values.yaml
    • charts/vald-helm-operator/crds/valdrelease.yaml
    • charts/vald/templates/index/job/correction/configmap.yaml
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correct integration of new KVS parameters.

# Test: Search for the usage of new KVS parameters. Expect: Proper integration.
rg --type yaml -A 5 $'kvs_background_sync_interval|kvs_background_compaction_interval'

Length of output: 3993


57-75: ```shell
#!/bin/bash

Description: Extract the relevant context around the gateway key and the conditional logic for $gateway.enabled in the file under review.

Extract 10 lines before and after the conditional logic for $gateway.enabled in the specified file.

rg --type yaml -A 10 -B 10 '{{- if $gateway.enabled -}}' charts/vald/templates/index/job/correction/configmap.yaml


</blockquote></details>
<details>
<summary>k8s/index/job/save/cronjob.yaml (3)</summary><blockquote>

`16-32`: **Ensure correct implementation of new CronJob configuration.**

The new Kubernetes CronJob configuration specifies a job that runs every three hours, with a policy to forbid concurrent executions. Ensure that the new CronJob configuration is correctly implemented and aligns with the PR objectives.

```shell
#!/bin/bash
# Description: Verify the correct implementation of new CronJob configuration.

# Test: Search for the new CronJob configuration. Expect: Proper implementation.
rg --type yaml -A 5 $'apiVersion: batch/v1|kind: CronJob'

53-76: Ensure correct implementation of initialization containers for readiness checks.

The job template includes initialization containers that check the readiness of dependent services before the main application container starts. Ensure that the initialization containers are correctly implemented and align with the PR objectives.

#!/bin/bash
# Description: Verify the correct implementation of initialization containers for readiness checks.

# Test: Search for the initialization containers for readiness checks. Expect: Proper implementation.
rg --type yaml -A 5 $'initContainers:|name: wait-for-agent|name: wait-for-discoverer'

77-125: Ensure correct implementation of main container configuration.

The main container, vald-index-save, is configured with several probes (liveness, readiness, and startup) to monitor its health and ensure it is functioning correctly. Ensure that the main container configuration is correctly implemented and aligns with the PR objectives.

#!/bin/bash
# Description: Verify the correct implementation of main container configuration.

# Test: Search for the main container configuration. Expect: Proper implementation.
rg --type yaml -A 5 $'containers:|name: vald-index-save|livenessProbe:|readinessProbe:|startupProbe:'
k8s/index/job/creation/cronjob.yaml (5)

16-27: Metadata section looks good.

The metadata section is well-configured with appropriate labels and Helm chart information.


28-32: Spec section looks good.

The spec section is well-configured with appropriate schedule, concurrency policy, and starting deadline seconds.


33-51: Job template metadata section looks good.

The job template metadata section is well-configured with appropriate labels and annotations for monitoring.


52-75: InitContainers section looks good.

The initContainers section is well-configured with appropriate readiness checks for vald-agent and vald-discoverer.


76-144: Containers section looks good.

The containers section is well-configured with appropriate probes, ports, environment variables, and volume mounts.

k8s/index/job/correction/cronjob.yaml (5)

16-27: Metadata section looks good.

The metadata section is well-configured with appropriate labels and Helm chart information.


28-32: Spec section looks good.

The spec section is well-configured with appropriate schedule, concurrency policy, and starting deadline seconds.


33-51: Job template metadata section looks good.

The job template metadata section is well-configured with appropriate labels and annotations for monitoring.


52-75: InitContainers section looks good.

The initContainers section is well-configured with appropriate readiness checks for vald-agent and vald-discoverer.


76-144: Containers section looks good.

The containers section is well-configured with appropriate probes, ports, environment variables, and volume mounts.

k8s/index/operator/deployment.yaml (5)

16-27: Metadata section looks good.

The metadata section is well-configured with appropriate labels and Helm chart information.


28-39: Spec section looks good.

The spec section is well-configured with appropriate replicas, update strategy, and pod template specifications.


40-54: Pod template metadata section looks good.

The pod template metadata section is well-configured with appropriate labels and annotations for monitoring.


55-172: Containers section looks good.

The containers section is well-configured with appropriate probes, ports, environment variables, and volume mounts.


173-173: Status section looks good.

The status section is empty as expected.

pkg/index/job/correction/usecase/corrector.go (5)

19-19: LGTM! Importing the slices package.

The import of the slices package is appropriate for reversing slices, improving readability and potentially performance.


52-57: LGTM! Retrieving and appending gateway options with error group handling.

The changes ensure that errors during concurrent operations are managed appropriately.


59-62: LGTM! Initializing the new gateway client.

The initialization of the new gateway client enhances the corrector's capabilities in managing client interactions.


89-90: LGTM! Using slices.Reverse to reverse the address list.

The use of slices.Reverse improves readability and potentially performance compared to manually reversing the list.


117-121: LGTM! Adding parameters for KVS synchronization and compaction intervals.

The addition of these parameters indicates a more robust configuration management for the corrector service.

Makefile.d/e2e.mk (1)

133-133: LGTM! Updating the Helm values file path.

The update from values-lb.yaml to values-correction.yaml suggests an adjustment in the configuration parameters for the deployment, which may affect the behavior or settings of the application being deployed.

Makefile.d/docker.mk (3)

19-41: LGTM!

The restructuring of the docker/build target enhances the modularity and maintainability of the build process.


200-210: LGTM!

The addition of .PHONY targets for docker/name/buildkit and docker/build/buildkit enhances the flexibility and clarity of the build process.


211-221: LGTM!

The addition of .PHONY targets for docker/name/binfmt and docker/build/binfmt enhances the flexibility and clarity of the build process.

Makefile.d/dependencies.mk (2)

228-228: LGTM!

The change to use the $(REPO) variable in the curl command enhances the flexibility of the Makefile.


233-233: LGTM!

The change to use the $(REPO) variable in the curl command enhances the flexibility of the Makefile.

k8s/index/job/save/configmap.yaml (3)

18-27: LGTM!

The metadata and labels for the ConfigMap are correctly defined.


36-165: LGTM!

The server configuration is comprehensive and well-structured, including settings for gRPC, health check servers, and metrics servers.


173-370: LGTM!

The observability and saver configuration is detailed and enhances the operational parameters of the vald-index-save component.

k8s/index/job/creation/configmap.yaml (6)

1-25: LGTM!

The header and metadata section are correctly defined.


27-35: LGTM!

The version, time zone, and logging configurations are appropriately defined.


36-78: LGTM!

The server configurations for gRPC and REST are appropriately defined.


79-155: LGTM!

The health check and metrics server configurations are appropriately defined.


156-165: LGTM!

The startup and shutdown strategies are appropriately defined.


167-370: LGTM!

The TLS, observability, and creator configurations are appropriately defined.

Makefile.d/test.mk (1)

Line range hint 347-364:
LGTM!

The modifications to replace hardcoded import paths with variable references are appropriately defined.

Makefile.d/functions.mk (1)

121-135: LGTM!

The modifications to the run-e2e-crud-test command, adding new parameters for granular control over data operations, are appropriately defined.

k8s/index/job/correction/configmap.yaml (6)

1-25: LGTM!

The licensing and metadata section follows standard practices and is correctly configured.


36-155: Verify default values for timeouts and buffer sizes.

Ensure that the default values for timeouts, buffer sizes, and other parameters meet performance and security requirements.


156-165: LGTM!

The startup and shutdown strategies section is well-defined and follows best practices.


167-172: Verify paths to certificates and keys.

Ensure that the paths to the certificates and keys are correct and accessible.


173-204: Verify OTLP collector endpoints and metrics settings.

Ensure that the OTLP collector endpoints and metrics settings are correctly configured to enhance observability.


205-451: Verify values for connection pooling, circuit breaker settings, and other parameters.

Ensure that the values for connection pooling, circuit breaker settings, and other parameters meet performance and reliability requirements.

internal/db/kvs/pogreb/pogreb_test.go (5)

54-62: LGTM!

The changes to the WithBackgroundSyncInterval option simplify the parameter type and align it with a more consistent usage pattern.


125-126: LGTM!

The changes to the beforeFunc and afterFunc function signatures enhance flexibility and potentially improve test coverage.

Also applies to: 159-165, 165-165


250-252: LGTM!

The changes to the checkFunc, beforeFunc, and afterFunc function signatures enhance flexibility and potentially improve test coverage.

Also applies to: 254-254, 271-275, 275-288, 288-294, 294-294


349-350: LGTM!

The changes to the beforeFunc and afterFunc function signatures enhance flexibility and potentially improve test coverage.

Also applies to: 387-395, 395-395


493-494: LGTM!

The changes to the beforeFunc and afterFunc function signatures enhance flexibility and potentially improve test coverage.

Also applies to: 519-527, 527-527

Makefile.d/k8s.mk (6)

40-43: Verify the impact of enabling new features.

The new settings enable the operator, saver, creator, and corrector features for the manager index component. Ensure that these changes are tested thoroughly to verify their impact on the deployment process.


543-543: LGTM!

The use of the $(REPO) variable enhances flexibility by dynamically constructing the deployment name.


548-548: LGTM!

The use of the $(REPO) variable enhances flexibility by dynamically constructing the deployment name.


553-553: LGTM!

The use of the $(REPO) variable enhances flexibility by dynamically constructing the deployment name.


558-558: LGTM!

The use of the $(REPO) variable enhances flexibility by dynamically constructing the deployment name.


563-563: LGTM!

The use of the $(REPO) variable enhances flexibility by dynamically constructing the deployment name.

tests/e2e/crud/crud_test.go (1)

80-80: Verify the impact of increasing correctionInsertNum.

The value for the correctionInsertNum flag has been increased from 3000 to 10000. Ensure that this change is tested thoroughly to verify its impact on test performance and resource usage.

k8s/index/operator/configmap.yaml (3)

1-15: LGTM!

The license header is standard and does not require any changes.


16-27: LGTM!

The metadata for the ConfigMap is well-structured and follows Kubernetes conventions.


28-28: Verify the comprehensive configuration in a staging environment.

The data section includes a comprehensive configuration for server and health check settings. Ensure that these settings are tested thoroughly in a staging environment to verify their correctness and impact on the application.

Makefile (4)

20-21: Good use of centralizing repository structure.

The introduction of the REPO variable enhances the clarity and maintainability of the Makefile.


25-25: Maintains consistency.

Updating the GHCRORG variable to use the REPO variable maintains consistency across the file.


26-34: Enhanced organization and scope expansion.

The introduction and reorganization of image variables reflect an expansion in the scope of images managed by the Makefile and enhance the organization.


357-363: Facilitates granular control over E2E testing.

The addition of new environment variables for E2E testing enhances the testing framework's capabilities by facilitating more granular control over the testing parameters.

pkg/index/job/correction/service/corrector.go (8)

30-31: Necessary imports for new functionality.

The new imports for vc and pogreb are necessary for the new gateway client and the transition to pogreb.


47-50: Improves observability and monitoring.

Adding methods for metrics to the Corrector interface improves observability and monitoring of the Corrector functionality.


55-67: Enhances functionality and maintainability.

The updates to the correct struct, including new fields and the removal of old ones, reflect the transition to pogreb and the introduction of the gateway client, enhancing its functionality and maintainability.


83-98: Crucial initialization for new functionality.

The New function has been updated to initialize the pogreb database, and error handling has been appropriately implemented.


102-130: Enhances robustness with improved error handling.

The StartClient method has been updated to initiate the new gateway client and handle errors more effectively using an errgroup, enhancing its robustness.


133-691: Improves clarity, error handling, and robustness.

The Start method and associated logic have been significantly updated to align with the new architecture, improving the clarity of the data flow and enhancing error handling, logging, and the overall robustness of the correction process.


697-699: Ensures data integrity and resource cleanup.

The PreStop method has been updated to close the pogreb database properly, ensuring data integrity and resource cleanup.


702-711: Improves observability and monitoring.

Adding methods for metrics to the correct struct improves observability and monitoring of the correct functionality.

pkg/index/job/correction/service/corrector_test.go (13)

112-122: Shift towards integrated or simplified dependency management.

The removal of the mockDiscovererClient struct and its associated methods suggests a shift in how dependencies are managed within the tests, possibly moving towards a more integrated or simplified approach.


155-165: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


187-197: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


228-238: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


254-264: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


293-303: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


325-335: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


366-376: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


392-402: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


431-441: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


463-473: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


504-514: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.


527-537: Ensures consistency in tests.

The updates to the correct struct's fields in the test cases align with the changes in the main correct struct, ensuring consistency in the tests.

go.mod (10)

319-321: Verify compatibility with google.golang.org/genproto v0.0.0-20240805194559-2c9e96a0b5d4.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


306-306: Verify compatibility with golang.org/x/sync v0.8.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


303-303: Verify compatibility with golang.org/x/mod v0.20.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


18-18: Verify compatibility with code.cloudfoundry.org/bytefmt v0.0.0-20240804182054-0a63f33a903d.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


173-173: Verify compatibility with github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.

Verification successful

The module github.com/ianlancetaylor/demangle is not currently used in the codebase. Therefore, updating its version to v0.0.0-20240805132620-81f5be970eca does not impact the existing code.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with `github.com/ianlancetaylor/demangle` v0.0.0-20240805132620-81f5be970eca.

# Test: Search for usage of `github.com/ianlancetaylor/demangle` in the codebase.
rg --type go 'github.com/ianlancetaylor/demangle'

Length of output: 49


Script:

#!/bin/bash
# Description: Verify compatibility with `github.com/ianlancetaylor/demangle` v0.0.0-20240805132620-81f5be970eca.

# Test 1: Search for import statements of `github.com/ianlancetaylor/demangle` in the codebase.
rg --type go 'import "github.com/ianlancetaylor/demangle"'

# Test 2: Search for any references to `demangle` functions or types in the codebase.
rg --type go 'demangle'

Length of output: 84


14-14: Verify compatibility with cloud.google.com/go/pubsub v1.41.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.

Verification successful

No active usage of cloud.google.com/go/pubsub found in the codebase.

The module is referenced in go.mod and go.sum, but no usage was found in .go files. The version update to v1.41.0 should not impact the codebase.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with `cloud.google.com/go/pubsub` v1.41.0.

# Test: Search for usage of `cloud.google.com/go/pubsub` in the codebase.
rg --type go 'cloud.google.com/go/pubsub'

Length of output: 41


Script:

#!/bin/bash
# Description: Verify compatibility with `cloud.google.com/go/pubsub` v1.41.0.

# Test: Search for usage of `cloud.google.com/go/pubsub` in the codebase.
rg 'cloud.google.com/go/pubsub' -g '*.go' -A 5

Length of output: 46


Script:

#!/bin/bash
# Description: Verify compatibility with `cloud.google.com/go/pubsub` v1.41.0.

# Test: Search for usage of `cloud.google.com/go/pubsub` in the codebase, including go.mod and go.sum files.
rg 'cloud.google.com/go/pubsub' -g '*.{go,mod,sum}' -A 5

Length of output: 1319


53-53: Verify compatibility with github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.10.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


305-305: Verify compatibility with golang.org/x/oauth2 v0.22.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.


307-307: Verify compatibility with golang.org/x/sys v0.23.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.

Verification successful

No issues found with the update to golang.org/x/sys v0.23.0.

The changelog for version v0.23.0 indicates the addition of a new Mount function for OpenBSD, with no breaking changes or modifications that affect existing functionality.

  • control_windows.go: No changes needed.
  • control_unix.go: No changes needed.
  • control_darwin.go: No changes needed.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with `golang.org/x/sys` v0.23.0.

# Test: Search for usage of `golang.org/x/sys` in the codebase.
rg --type go 'golang.org/x/sys'

Length of output: 237


Script:

#!/bin/bash
# Description: Check the usage of `golang.org/x/sys` in the identified files.

# Test: Search for usage of `golang.org/x/sys/windows` in control_windows.go
rg 'golang.org/x/sys/windows' internal/net/control/control_windows.go -A 10

# Test: Search for usage of `golang.org/x/sys/unix` in control_unix.go
rg 'golang.org/x/sys/unix' internal/net/control/control_unix.go -A 10

# Test: Search for usage of `golang.org/x/sys/unix` in control_darwin.go
rg 'golang.org/x/sys/unix' internal/net/control/control_darwin.go -A 10

Length of output: 940


Script:

#!/bin/bash
# Description: Fetch and review the changelog for `golang.org/x/sys` version `v0.23.0`.

# Fetch the changelog for golang.org/x/sys
curl -s https://api.github.com/repos/golang/sys/releases | jq '.[] | select(.tag_name == "v0.23.0") | .body'

Length of output: 110


Script:

#!/bin/bash
# Description: Search for the changelog for `golang.org/x/sys` version `v0.23.0`.

# Clone the golang/sys repository and search for the v0.23.0 changelog
git clone https://github.com/golang/sys.git
cd sys
git log v0.23.0 -n 1

Length of output: 753


96-96: Verify compatibility with github.com/envoyproxy/protoc-gen-validate v1.1.0.

Ensure that the new version does not introduce any breaking changes or require additional modifications in the codebase.

pkg/gateway/lb/handler/grpc/handler_test.go (2)

5653-5653: LGTM! The renaming improves readability.

The renaming of want to wantMerged and got to gotMerged enhances clarity.


5663-5665: Ensure consistency in renaming.

Verify that all instances of got and want are renamed to gotMerged and wantMerged respectively.

charts/vald/values.yaml (3)

3251-3253: LGTM!

The addition of the kvs_background_sync_interval parameter is well-documented and the default value of 5s seems reasonable.


3254-3256: LGTM!

The addition of the kvs_background_compaction_interval parameter is well-documented and the default value of 5s seems reasonable.


3263-3265: LGTM!

The addition of the gateway configuration is comprehensive and well-documented. The schema information is detailed and provides clear guidance on the usage of each parameter.

charts/vald-helm-operator/crds/valdrelease.yaml (14)

7891-7897: Define addresses for the gateway.

The addrs property is correctly defined as an array of strings to specify gateway addresses.


7898-7914: Configure backoff settings.

The backoff object includes properties such as backoff_factor, backoff_time_limit, enable_error_log, initial_duration, jitter_limit, maximum_duration, and retry_count. These properties are crucial for managing retry and backoff strategies during failures.


7915-7917: Preserve unknown fields in call options.

The call_option object allows for additional configuration, preserving unknown fields. This is a good practice to ensure flexibility.


7918-7930: Manage circuit breaker behavior.

The circuit_breaker object includes properties like closed_error_rate, closed_refresh_timeout, half_open_error_rate, min_samples, and open_timeout. These properties are essential for managing the circuit breaker behavior.


7931-7943: Set connection pool parameters.

The connection_pool object specifies parameters for managing connections, including DNS resolution and connection rebalancing.


7944-7966: Configure dial options.

The dial_option object includes properties that govern connection dialing, such as backoff_base_delay, backoff_jitter, backoff_max_delay, backoff_multiplier, enable_backoff, initial_connection_window_size, initial_window_size, insecure, interceptors, keepalive, max_msg_size, min_connection_timeout, net, read_buffer_size, timeout, and write_buffer_size. These settings are comprehensive and cover various aspects of connection dialing.


7970-7977: Set keepalive properties.

The keepalive object within dial_option includes properties like permit_without_stream, time, and timeout. These settings ensure that connections are kept alive appropriately.


7982-8024: Configure network properties.

The net object within dial_option includes properties for dialer, dns, and socket_option. These settings are crucial for managing network-related configurations.


8025-8036: Enable TLS settings.

The tls object includes properties such as ca, cert, enabled, insecure_skip_verify, and key. These settings are essential for enabling and configuring TLS.


8043-8044: Set health check duration.

The health_check_duration property is defined as a string to specify the duration for health checks.


8045-8050: Configure message size limits.

The properties max_recv_msg_size, max_retry_rpc_buffer_size, and max_send_msg_size are defined to enhance performance tuning by setting limits on message sizes.


8064-8065: Set wait for ready option.

The wait_for_ready property is defined as a boolean to ensure that the gateway waits for readiness before proceeding.


8084-8085: Add KVS background compaction interval.

The kvs_background_compaction_interval property is defined as a string to specify the interval for background compaction.


8086-8087: Add KVS background sync interval.

The kvs_background_sync_interval property is defined as a string to specify the interval for background synchronization.

k8s/operator/helm/crds/valdrelease.yaml (10)

7891-7897: Ensure addrs property is properly configured.

The addrs property should contain valid addresses for the gateway. Verify that the addresses are correctly specified and reachable.


7898-7914: Review backoff configuration for correctness.

The backoff property includes several parameters like backoff_factor, backoff_time_limit, enable_error_log, initial_duration, jitter_limit, maximum_duration, and retry_count. Ensure these parameters are set to appropriate values to handle retries and errors effectively.


7915-7917: Review call_option configuration.

The call_option property is marked with x-kubernetes-preserve-unknown-fields: true. Ensure that this configuration is intentional and necessary for preserving unknown fields.


7918-7930: Review circuit_breaker settings.

The circuit_breaker property includes parameters like closed_error_rate, closed_refresh_timeout, half_open_error_rate, min_samples, and open_timeout. Ensure these parameters are configured to handle circuit breaking effectively.


7931-7943: Review connection_pool settings.

The connection_pool property includes parameters like enable_dns_resolver, enable_rebalance, old_conn_close_duration, rebalance_duration, and size. Verify that these settings are optimized for connection pooling and DNS resolution.


7944-7967: Review dial_option settings.

The dial_option property includes several parameters like backoff_base_delay, backoff_jitter, backoff_max_delay, backoff_multiplier, enable_backoff, initial_connection_window_size, initial_window_size, insecure, interceptors, keepalive, max_msg_size, min_connection_timeout, net, read_buffer_size, timeout, and write_buffer_size. Ensure these parameters are configured correctly for establishing and maintaining connections.


7978-8043: Review health_check_duration, max_recv_msg_size, max_retry_rpc_buffer_size, max_send_msg_size, and tls settings.

These properties enhance the configurability of health checks and message size limits. Ensure that the values for these properties are set to appropriate levels to maintain system health and security.


8044-8065: Ensure wait_for_ready is correctly configured.

The wait_for_ready property should be set to ensure that the system waits for the gateway to be ready before proceeding with operations.


8084-8085: Review kvs_background_compaction_interval.

Ensure that the kvs_background_compaction_interval is set to an appropriate value to manage the compaction of the key-value store without impacting performance.


8086-8087: Review kvs_background_sync_interval.

Ensure that the kvs_background_sync_interval is set to an appropriate value to manage the synchronization of the key-value store without impacting performance.

Comment on lines +94 to +263
// if test.afterFunc != nil {
// defer test.afterFunc(tt, test.args)
// }
// checkFunc := test.checkFunc
// if test.checkFunc == nil {
// checkFunc = defaultCheckFunc
// }
//
// got := WithBackgroundSyncInterval(test.args.dur)
// if err := checkFunc(test.want, got); err != nil {
// tt.Errorf("error = %v", err)
// }
// })
// }
// }
//
// func TestWithBackgroundCompactionInterval(t *testing.T) {
// type args struct {
// dur time.Duration
// }
// type want struct {
// want Option
// }
// type test struct {
// name string
// args args
// want want
// checkFunc func(want, Option) error
// beforeFunc func(*testing.T, args)
// afterFunc func(*testing.T, args)
// }
// defaultCheckFunc := func(w want, got Option) error {
// if !reflect.DeepEqual(got, w.want) {
// return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want)
// }
// return nil
// }
// tests := []test{
// // TODO test cases
// /*
// {
// name: "test_case_1",
// args: args {
// dur:nil,
// },
// want: want{},
// checkFunc: defaultCheckFunc,
// beforeFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// afterFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// },
// */
//
// // TODO test cases
// /*
// func() test {
// return test {
// name: "test_case_2",
// args: args {
// dur:nil,
// },
// want: want{},
// checkFunc: defaultCheckFunc,
// beforeFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// afterFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// }
// }(),
// */
// }
//
// for _, tc := range tests {
// test := tc
// t.Run(test.name, func(tt *testing.T) {
// tt.Parallel()
// defer goleak.VerifyNone(tt, goleak.IgnoreCurrent())
// if test.beforeFunc != nil {
// test.beforeFunc(tt, test.args)
// }
// if test.afterFunc != nil {
// defer test.afterFunc(tt, test.args)
// }
// checkFunc := test.checkFunc
// if test.checkFunc == nil {
// checkFunc = defaultCheckFunc
// }
//
// got := WithBackgroundCompactionInterval(test.args.dur)
// if err := checkFunc(test.want, got); err != nil {
// tt.Errorf("error = %v", err)
// }
// })
// }
// }
Copy link
Contributor

Choose a reason for hiding this comment

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

Re-implement the removed test functions.

The removal of TestWithBackgroundSyncInterval and TestWithBackgroundCompactionInterval alters the testing coverage for the pogreb package. Re-implementing these tests is crucial to ensure the reliability of background interval configurations.

Comment on lines +18 to +101
// func TestWithErrGroup(t *testing.T) {
// type args struct {
// eg errgroup.Group
// }
// type want struct {
// want Option
// }
// type test struct {
// name string
// args args
// want want
// checkFunc func(want, Option) error
// beforeFunc func(*testing.T, args)
// afterFunc func(*testing.T, args)
// }
// defaultCheckFunc := func(w want, got Option) error {
// if !reflect.DeepEqual(got, w.want) {
// return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want)
// }
// return nil
// }
// tests := []test{
// // TODO test cases
// /*
// {
// name: "test_case_1",
// args: args {
// eg:nil,
// },
// want: want{},
// checkFunc: defaultCheckFunc,
// beforeFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// afterFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// },
// */
//
// // TODO test cases
// /*
// func() test {
// return test {
// name: "test_case_2",
// args: args {
// eg:nil,
// },
// want: want{},
// checkFunc: defaultCheckFunc,
// beforeFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// afterFunc: func(t *testing.T, args args) {
// t.Helper()
// },
// }
// }(),
// */
// }
//
// for _, tc := range tests {
// test := tc
// t.Run(test.name, func(tt *testing.T) {
// tt.Parallel()
// defer goleak.VerifyNone(tt, goleak.IgnoreCurrent())
// if test.beforeFunc != nil {
// test.beforeFunc(tt, test.args)
// }
// if test.afterFunc != nil {
// defer test.afterFunc(tt, test.args)
// }
// checkFunc := test.checkFunc
// if test.checkFunc == nil {
// checkFunc = defaultCheckFunc
// }
//
// got := WithErrGroup(test.args.eg)
// if err := checkFunc(test.want, got); err != nil {
// tt.Errorf("error = %v", err)
// }
// })
// }
// }
Copy link
Contributor

Choose a reason for hiding this comment

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

Implement the test cases for TestWithErrGroup.

The function structure is well-defined, but the test cases need to be implemented.

Do you want me to implement the test cases or open a GitHub issue to track this task?

},
}
for _, daddr := range addrs {
if diff > 0 && daddr != addr {
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [golangci] reported by reviewdog 🐶
282-349 lines are duplicate of pkg/index/job/correction/service/corrector.go:567-634 (dupl)

for _, daddr := range addrs {
if diff > 0 && daddr != addr {
_, ok := found[daddr]
if !ok {
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [golangci] reported by reviewdog 🐶
567-634 lines are duplicate of pkg/index/job/correction/service/corrector.go:282-349 (dupl)

)

// Option represents the functional option for index corrector.
type Option func(*correct) error

var defaultOpts = []Option{
WithStreamListConcurrency(200), //nolint:gomnd
WithKvsAsyncWriteConcurrency(2048), //nolint:gomnd
WithStreamListConcurrency(200), //nolint:gomnd
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [golangci] reported by reviewdog 🐶
directive //nolint:gomnd is unused for linter "gomnd" (nolintlint)

Copy link

codecov bot commented Aug 6, 2024

Codecov Report

Attention: Patch coverage is 1.21212% with 489 lines in your changes missing coverage. Please review.

Please upload report for BASE (release/v1.7@678e98d). Learn more about missing BASE report.

Files Patch % Lines
pkg/index/job/correction/service/corrector.go 0.00% 446 Missing ⚠️
pkg/index/job/correction/service/options.go 7.40% 24 Missing and 1 partial ⚠️
pkg/index/job/correction/usecase/corrector.go 0.00% 13 Missing ⚠️
internal/config/corrector.go 0.00% 4 Missing ⚠️
internal/db/kvs/pogreb/options.go 50.00% 1 Missing ⚠️
Additional details and impacted files
@@               Coverage Diff               @@
##             release/v1.7    #2566   +/-   ##
===============================================
  Coverage                ?   17.40%           
===============================================
  Files                   ?      566           
  Lines                   ?    69059           
  Branches                ?        0           
===============================================
  Hits                    ?    12021           
  Misses                  ?    56241           
  Partials                ?      797           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Collaborator

@hlts2 hlts2 left a comment

Choose a reason for hiding this comment

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

LGTM

@kpango kpango merged commit 2fc9958 into release/v1.7 Aug 6, 2024
322 of 326 checks passed
@kpango kpango deleted the backport/release/v1.7/bugfix/index-correction/refactor-and-bugfix-index-correction branch August 6, 2024 09:21
This was referenced Aug 6, 2024
kpango added a commit that referenced this pull request Aug 8, 2024
fix: git add chart directory for release (#2356) (#2357)
[patch] release v1.7.11 (#2358)
:bookmark: :robot: Release v1.7.11 (#2360)
Change docker scan timeout longer (#2363) (#2364)
refactor code using golangci-lint (#2362) (#2365)
Create SECURITY.md (#2367) (#2368)
add commit hash build image (#2359) (#2371)
update docker build target platform selection rules (#2370) (#2374)
Make agent export index metrics to Pod k8s resource (#2319) (#2372)
backport ci deps others (#2386)
Update workflow to release readreplica chart (#2383) (#2387)
:green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389)
Delete unnecessary code for mirror (#2366) (#2391)
change JP logo to EN logo (#2369) (#2392)
Add rotate-all option to rotator (#2305) (#2393)
fix: build error of internal kvs test (#2396) (#2398)
Resolve kvs already closed before last saving (#2390) (#2394)
:robot: Update license headers / Format Go codes and YAML files (#2397) (#2400)
create continous benchmark doc (#2352) (#2395)
fix: disable protobuf dispatch for client (#2401) (#2403)
update deps (#2404) (#2405)
[patch] release v1.7.12 (#2406)
:bookmark: :robot: Release v1.7.12 (#2408)
:pencil: Fix typo of file name (#2413) (#2415)
Fix agent-faiss build failed (#2418) (#2419)
Add tests for index information export (#2412) (#2414)
Fix the logic to determine docker image (#2410) (#2420)
Update build rule for nightly image (#2421) (#2422)
Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425)
Add `index-operator` template implementation (#2375) (#2424)
fix: typo of execution rule (#2426) (#2427)
Backport Flush API (#2434)
update deps & add validation for Flush API when agent is Read Only (#2433) (#2436)
docs: add hrichiksite as a contributor for doc (#2441) (#2442)
fix: bugfix version update for docker build (#2445) (#2446)
Fix index job logic to pass DNS A record (#2438) (#2448)
Added snapshot timestamp annotations to read replica agent (#2428) (#2443)
Fix operator-sdk version (#2447) (#2449)
add file name lint (#2417) (#2450)
fix: add extra option for ci-container build (#2451) (#2452)
Add base of benchmark operator dashboard (#2430) (#2453)
Implement index operator logic for read replica rotation (#2444) (#2456)
add inner product distance type for ngt (#2454) (#2458)
Fix e2e for read replica and add e2e for index operator (#2455) (#2459)
Add unit tests for index operator (#2460) (#2461)
Bugfix recreate benchmark job when operator reboot (#2463) (#2464)
Refactor k8s types (#2462) (#2465)
:robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469)
Fix workflow trigger for backport pr creation (#2471) (#2472)
Automatically add backport main label for release-pr (#2473) (#2475)
update deps (#2468) (#2476)
Implement client metrics interceptor for continuous benchmark job (#2477) (#2480)
:chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483)
Update continuous benchmark docs (#2485) (#2486)
Sync release/v1.7 to main (#2495)
add read replica and rotator docs (#2497) (#2499)
add reviewer guideline (#2507) (#2508)
update large top-K ratio handling logic (#2509) (#2511)
Change default image tag from latest to nightly (#2516) (#2518)
Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520)
add faiss in values.yaml & valdrelease.yaml (#2514) (#2519)
capitalize faq (#2512) (#2522)
Backport docs updates to release/v1.7 (#2521)
[CI] Add workflow to synchronize ubuntu base image (#2526) (#2527)
fix: update schedule (#2528) (#2530)
refactor index manager service add index service API to expose index informations (#2525) (#2532)
fix conflict bug (#2537)
fix: make format (#2534) (#2540)
Backport PR #2542, #2538 to release/v1.7 (#2543)
fix: add checkout option (#2545) (#2546)
Implement ngt Statistics API (#2539) (#2547)
Add workflow to check git conflict for backport PR (#2548) (#2550)
[create-pull-request] automated change (#2552) (#2556)
Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557)
Backport #2559 (#2560)
[BUGFIX] index correction process (#2565) (#2566)
change external docker image reference to ghcr.io registry (#2567) (#2568)
[patch] Release v1.7.13 (#2569)
:bookmark: :robot: Release v1.7.13 (#2570)
add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575)

Signed-off-by: kpango <[email protected]>
kpango added a commit that referenced this pull request Aug 8, 2024
fix: git add chart directory for release (#2356) (#2357)
[patch] release v1.7.11 (#2358)
:bookmark: :robot: Release v1.7.11 (#2360)
Change docker scan timeout longer (#2363) (#2364)
refactor code using golangci-lint (#2362) (#2365)
Create SECURITY.md (#2367) (#2368)
add commit hash build image (#2359) (#2371)
update docker build target platform selection rules (#2370) (#2374)
Make agent export index metrics to Pod k8s resource (#2319) (#2372)
backport ci deps others (#2386)
Update workflow to release readreplica chart (#2383) (#2387)
:green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389)
Delete unnecessary code for mirror (#2366) (#2391)
change JP logo to EN logo (#2369) (#2392)
Add rotate-all option to rotator (#2305) (#2393)
fix: build error of internal kvs test (#2396) (#2398)
Resolve kvs already closed before last saving (#2390) (#2394)
:robot: Update license headers / Format Go codes and YAML files (#2397) (#2400)
create continous benchmark doc (#2352) (#2395)
fix: disable protobuf dispatch for client (#2401) (#2403)
update deps (#2404) (#2405)
[patch] release v1.7.12 (#2406)
:bookmark: :robot: Release v1.7.12 (#2408)
:pencil: Fix typo of file name (#2413) (#2415)
Fix agent-faiss build failed (#2418) (#2419)
Add tests for index information export (#2412) (#2414)
Fix the logic to determine docker image (#2410) (#2420)
Update build rule for nightly image (#2421) (#2422)
Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425)
Add `index-operator` template implementation (#2375) (#2424)
fix: typo of execution rule (#2426) (#2427)
Backport Flush API (#2434)
update deps & add validation for Flush API when agent is Read Only (#2433) (#2436)
docs: add hrichiksite as a contributor for doc (#2441) (#2442)
fix: bugfix version update for docker build (#2445) (#2446)
Fix index job logic to pass DNS A record (#2438) (#2448)
Added snapshot timestamp annotations to read replica agent (#2428) (#2443)
Fix operator-sdk version (#2447) (#2449)
add file name lint (#2417) (#2450)
fix: add extra option for ci-container build (#2451) (#2452)
Add base of benchmark operator dashboard (#2430) (#2453)
Implement index operator logic for read replica rotation (#2444) (#2456)
add inner product distance type for ngt (#2454) (#2458)
Fix e2e for read replica and add e2e for index operator (#2455) (#2459)
Add unit tests for index operator (#2460) (#2461)
Bugfix recreate benchmark job when operator reboot (#2463) (#2464)
Refactor k8s types (#2462) (#2465)
:robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469)
Fix workflow trigger for backport pr creation (#2471) (#2472)
Automatically add backport main label for release-pr (#2473) (#2475)
update deps (#2468) (#2476)
Implement client metrics interceptor for continuous benchmark job (#2477) (#2480)
:chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483)
Update continuous benchmark docs (#2485) (#2486)
Sync release/v1.7 to main (#2495)
add read replica and rotator docs (#2497) (#2499)
add reviewer guideline (#2507) (#2508)
update large top-K ratio handling logic (#2509) (#2511)
Change default image tag from latest to nightly (#2516) (#2518)
Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520)
add faiss in values.yaml & valdrelease.yaml (#2514) (#2519)
capitalize faq (#2512) (#2522)
Backport docs updates to release/v1.7 (#2521)
[CI] Add workflow to synchronize ubuntu base image (#2526) (#2527)
fix: update schedule (#2528) (#2530)
refactor index manager service add index service API to expose index informations (#2525) (#2532)
fix conflict bug (#2537)
fix: make format (#2534) (#2540)
Backport PR #2542, #2538 to release/v1.7 (#2543)
fix: add checkout option (#2545) (#2546)
Implement ngt Statistics API (#2539) (#2547)
Add workflow to check git conflict for backport PR (#2548) (#2550)
[create-pull-request] automated change (#2552) (#2556)
Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557)
Backport #2559 (#2560)
[BUGFIX] index correction process (#2565) (#2566)
change external docker image reference to ghcr.io registry (#2567) (#2568)
[patch] Release v1.7.13 (#2569)
:bookmark: :robot: Release v1.7.13 (#2570)
add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575)

Signed-off-by: kpango <[email protected]>
kpango added a commit that referenced this pull request Aug 8, 2024
fix: git add chart directory for release (#2356) (#2357)
[patch] release v1.7.11 (#2358)
:bookmark: :robot: Release v1.7.11 (#2360)
Change docker scan timeout longer (#2363) (#2364)
refactor code using golangci-lint (#2362) (#2365)
Create SECURITY.md (#2367) (#2368)
add commit hash build image (#2359) (#2371)
update docker build target platform selection rules (#2370) (#2374)
Make agent export index metrics to Pod k8s resource (#2319) (#2372)
backport ci deps others (#2386)
Update workflow to release readreplica chart (#2383) (#2387)
:green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389)
Delete unnecessary code for mirror (#2366) (#2391)
change JP logo to EN logo (#2369) (#2392)
Add rotate-all option to rotator (#2305) (#2393)
fix: build error of internal kvs test (#2396) (#2398)
Resolve kvs already closed before last saving (#2390) (#2394)
:robot: Update license headers / Format Go codes and YAML files (#2397) (#2400)
create continous benchmark doc (#2352) (#2395)
fix: disable protobuf dispatch for client (#2401) (#2403)
update deps (#2404) (#2405)
[patch] release v1.7.12 (#2406)
:bookmark: :robot: Release v1.7.12 (#2408)
:pencil: Fix typo of file name (#2413) (#2415)
Fix agent-faiss build failed (#2418) (#2419)
Add tests for index information export (#2412) (#2414)
Fix the logic to determine docker image (#2410) (#2420)
Update build rule for nightly image (#2421) (#2422)
Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425)
Add `index-operator` template implementation (#2375) (#2424)
fix: typo of execution rule (#2426) (#2427)
Backport Flush API (#2434)
update deps & add validation for Flush API when agent is Read Only (#2433) (#2436)
docs: add hrichiksite as a contributor for doc (#2441) (#2442)
fix: bugfix version update for docker build (#2445) (#2446)
Fix index job logic to pass DNS A record (#2438) (#2448)
Added snapshot timestamp annotations to read replica agent (#2428) (#2443)
Fix operator-sdk version (#2447) (#2449)
add file name lint (#2417) (#2450)
fix: add extra option for ci-container build (#2451) (#2452)
Add base of benchmark operator dashboard (#2430) (#2453)
Implement index operator logic for read replica rotation (#2444) (#2456)
add inner product distance type for ngt (#2454) (#2458)
Fix e2e for read replica and add e2e for index operator (#2455) (#2459)
Add unit tests for index operator (#2460) (#2461)
Bugfix recreate benchmark job when operator reboot (#2463) (#2464)
Refactor k8s types (#2462) (#2465)
:robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469)
Fix workflow trigger for backport pr creation (#2471) (#2472)
Automatically add backport main label for release-pr (#2473) (#2475)
update deps (#2468) (#2476)
Implement client metrics interceptor for continuous benchmark job (#2477) (#2480)
:chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483)
Update continuous benchmark docs (#2485) (#2486)
Sync release/v1.7 to main (#2495)
add read replica and rotator docs (#2497) (#2499)
add reviewer guideline (#2507) (#2508)
update large top-K ratio handling logic (#2509) (#2511)
Change default image tag from latest to nightly (#2516) (#2518)
Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520)
add faiss in values.yaml & valdrelease.yaml (#2514) (#2519)
capitalize faq (#2512) (#2522)
Backport docs updates to release/v1.7 (#2521)
[CI] Add workflow to synchronize ubuntu base image (#2526) (#2527)
fix: update schedule (#2528) (#2530)
refactor index manager service add index service API to expose index informations (#2525) (#2532)
fix conflict bug (#2537)
fix: make format (#2534) (#2540)
Backport PR #2542, #2538 to release/v1.7 (#2543)
fix: add checkout option (#2545) (#2546)
Implement ngt Statistics API (#2539) (#2547)
Add workflow to check git conflict for backport PR (#2548) (#2550)
[create-pull-request] automated change (#2552) (#2556)
Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557)
Backport #2559 (#2560)
[BUGFIX] index correction process (#2565) (#2566)
change external docker image reference to ghcr.io registry (#2567) (#2568)
[patch] Release v1.7.13 (#2569)
:bookmark: :robot: Release v1.7.13 (#2570)
add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575)

Signed-off-by: kpango <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants