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 #2549 to release/v1.7 for Update dependencies, C++ standard, and improve Dockerfiles for better build and localization #2557

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitfiles
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
.github/workflows/build-protobuf.yml
.github/workflows/chatops-help.yml
.github/workflows/chatops.yml
.github/workflows/check-conflict.yml
.github/workflows/codeql-analysis.yml
.github/workflows/coverage.yml
.github/workflows/detect-internal-config-changes.yml
Expand Down Expand Up @@ -117,6 +118,7 @@
.github/workflows/semver-patch.yaml
.github/workflows/test-hack.yml
.github/workflows/unit-test.yaml
.github/workflows/update-actions.yaml
.github/workflows/update-protobuf.yaml
.github/workflows/update-pull-request-and-issue-template.yml
.github/workflows/update-web-docs.yml
Expand Down Expand Up @@ -544,7 +546,6 @@ dockers/manager/index/Dockerfile
dockers/manager/index/README.md
dockers/operator/helm/Dockerfile
dockers/operator/helm/README.md
dockers/readreplica/job/readreplica/rotate/Dockerfile
dockers/template.md
dockers/tools/benchmark/job/Dockerfile
dockers/tools/benchmark/operator/Dockerfile
Expand Down Expand Up @@ -1971,6 +1972,7 @@ rust/libs/proto/src/sidecar.v1.rs
rust/libs/proto/src/sidecar.v1.tonic.rs
rust/libs/proto/src/vald.v1.rs
rust/libs/proto/src/vald.v1.tonic.rs
rust/rust-toolchain
rust/rust-toolchain.toml
tests/chaos/chart/.helmignore
tests/chaos/chart/Chart.yaml
Expand Down Expand Up @@ -2000,6 +2002,7 @@ tests/e2e/sidecar/sidecar_test.go
tests/performance/max_vector_dim_test.go
versions/BUF_VERSION
versions/CHAOS_MESH_VERSION
versions/CMAKE_VERSION
versions/DOCKER_VERSION
versions/FAISS_VERSION
versions/GOLANGCILINT_VERSION
Expand Down Expand Up @@ -2047,6 +2050,7 @@ versions/actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF
versions/actions/GITHUB_ISSUE_METRICS
versions/actions/MACHINE_LEARNING_APPS_ACTIONS_CHATOPS
versions/actions/PETER_EVANS_CREATE_ISSUE_FROM_FILE
versions/actions/PETER_EVANS_CREATE_PULL_REQUEST
versions/actions/REVIEWDOG_ACTION_HADOLINT
versions/actions/REVIEWDOG_ACTION_LANGUAGETOOL
versions/actions/SHOGO82148_ACTIONS_UPLOAD_RELEASE_ASSET
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ assignees: ""

- Vald Version: v1.7.12
- Go Version: v1.22.5
- Rust Version: v1.77.2
- Rust Version: v1.80.0
- Docker Version: v27.1.1
- Kubernetes Version: v1.30.3
- Helm Version: v3.15.3
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/security_issue_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ assignees: ""

- Vald Version: v1.7.12
- Go Version: v1.22.5
- Rust Version: v1.77.2
- Rust Version: v1.80.0
- Docker Version: v27.1.1
- Kubernetes Version: v1.30.3
- Helm Version: v3.15.3
Expand Down
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<!--- Please change the versions below along with your environment -->
- Vald Version: v1.7.12
- Go Version: v1.22.5
- Rust Version: v1.77.2
- Rust Version: v1.80.0
- Docker Version: v27.1.1
- Kubernetes Version: v1.30.3
- Helm Version: v3.15.3
Expand Down
6 changes: 3 additions & 3 deletions .github/actions/setup-e2e/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ inputs:
require_libhdf5:
description: "If libhdf5 is not required, set this to false"
required: false
default: "true"
default: "false"
require_go:
description: "If go is not required, set this to false"
required: false
Expand Down Expand Up @@ -58,8 +58,8 @@ runs:
if: ${{ inputs.require_libhdf5 == 'true' }}
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y libhdf5-dev
apt-get update
apt-get install -y libhdf5-dev
- name: Setup Go environment
if: ${{ inputs.require_go == 'true' }}
uses: ./.github/actions/setup-go
Expand Down
53 changes: 33 additions & 20 deletions .github/actions/setup-k3d/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,14 @@ runs:
id: k3s_version
shell: bash
run: |
K3S_VERSION=${K3S_VERSION:-`cat versions/K3S_VERSION`}

echo "tag=${K3S_VERSION=$}" >> $GITHUB_OUTPUT
if [ -z "${K3S_VERSION}" ]; then
if [ -f "versions/K3S_VERSION" ]; then
K3S_VERSION=$(cat versions/K3S_VERSION)
else
K3S_VERSION=latest
fi
fi
echo "tag=${K3S_VERSION}" >> $GITHUB_OUTPUT
env:
K3S_VERSION: ${{ inputs.k3s_version }}
- name: Install k3d
Expand All @@ -72,30 +77,38 @@ runs:
shell: bash
run: |
k3d version
- name: Setup k3d options
- name: Create k8s cluster
shell: bash
id: k3d_options
id: start_k3d
run: |
if [ "${AGENTS}" != 0 ]; then
OPTIONS="${OPTIONS} --agents ${AGENTS}"
if [ "${K3D_INGRESS_PORT}" == "0" ] && [ -z "${K3D_OPTIONS}" ]; then
K3D_OPTIONS="--k3s-arg \"--disable=traefik@server:*\""
fi
if [ "${INGRESS_PORT}" != 0 ]; then
OPTIONS="${OPTIONS} -p ${INGRESS_PORT}:80@loadbalancer"
if [ "${K3D_INGRESS_PORT}" != "0" ] && [ -n "${K3D_OPTIONS}" ]; then
K3D_OPTIONS="--port ${K3D_INGRESS_PORT}:80@loadbalancer ${K3D_OPTIONS}"
fi
OPTIONS="${OPTIONS} --image rancher/k3s:${K3S_VERSION}"
echo "options=${OPTIONS}" >> $GITHUB_OUTPUT
make K3D_CLUSTER_NAME="${{ inputs.name }}" \
K3D_NODES="${{ inputs.agents }}" \
K3D_INGRESS_PORT="${K3D_INGRESS_PORT}" \
K3S_VERSION="${{ steps.k3s_version.outputs.tag }}" \
K3D_HOST="host.docker.internal" \
K3D_OPTIONS="${K3D_OPTIONS}" \
k3d/start
k3d cluster list
env:
AGENTS: ${{ inputs.agents }}
INGRESS_PORT: ${{ inputs.ingress_port }}
OPTIONS: ${{ inputs.options }}
K3S_VERSION: ${{ steps.k3s_version.outputs.tag }}
- name: Create k8s cluster
K3D_INGRESS_PORT: ${{ inputs.ingress_port }}
K3D_OPTIONS: ${{ inputs.options }}
- name: Set k3d cluster config to KUBECONFIG
shell: bash
id: start_k3d
run: |
k3d cluster create ${{ inputs.name }} ${{ steps.k3d_options.outputs.options }}
- name: Ready k8s cluster
echo "KUBECONFIG=$(k3d kubeconfig write ${{ inputs.name }})" >> $GITHUB_ENV
- name: Check KUBECONFIG environment variable
shell: bash
run: |
echo $KUBECONFIG
cat $KUBECONFIG
cat /etc/hosts
- name: Show Kubernetes Cluster Info
shell: bash
run: |
k3d cluster list
kubectl cluster-info dump
2 changes: 1 addition & 1 deletion .github/helm/values/values-chaos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ gateway:
enabled: true
ingress:
enabled: true
host: "localhost"
host: "host.docker.internal"
service:
# NOTE: https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/#on-service
annotations:
Expand Down
32 changes: 23 additions & 9 deletions .github/workflows/e2e-chaos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,21 @@ env:
INGRESS_PORT: 8081
jobs:
dump-contexts-to-log:
if: startsWith( github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-chaos'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dump-context
detect-ci-container:
if: startsWith( github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-chaos'
uses: ./.github/workflows/_detect-ci-container.yml
agent-failure:
name: "E2E chaos test (Agent failure: to test insert/search works even if one of the agents is failing)"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand All @@ -64,7 +69,7 @@ jobs:
- name: Run Insert and Search operations
run: |
make hack/benchmark/assets/dataset/${{ env.DATASET }}
make E2E_BIND_HOST=localhost \
make E2E_BIND_HOST=host.docker.internal \
E2E_BIND_PORT=8081 \
E2E_PORTFORWARD_ENABLED=false \
E2E_DATASET_NAME=${{ env.DATASET }} \
Expand All @@ -75,9 +80,12 @@ jobs:
e2e/insert/search
random-pod-failure:
name: "E2E chaos test (random Pod failure: to test redundancy)"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand All @@ -102,7 +110,7 @@ jobs:
- name: Run Insert and Search operations
run: |
make hack/benchmark/assets/dataset/${{ env.DATASET }}
make E2E_BIND_HOST=localhost \
make E2E_BIND_HOST=host.docker.internal \
E2E_BIND_PORT=8081 \
E2E_PORTFORWARD_ENABLED=false \
E2E_DATASET_NAME=${{ env.DATASET }} \
Expand All @@ -113,9 +121,12 @@ jobs:
e2e/insert/search
agent-network-partition:
name: "E2E chaos test (agent network partition: to test retries)"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand All @@ -140,7 +151,7 @@ jobs:
- name: Run Insert and Search operations
run: |
make hack/benchmark/assets/dataset/${{ env.DATASET }}
make E2E_BIND_HOST=localhost \
make E2E_BIND_HOST=host.docker.internal \
E2E_BIND_PORT=8081 \
E2E_PORTFORWARD_ENABLED=false \
E2E_DATASET_NAME=${{ env.DATASET }} \
Expand All @@ -151,9 +162,12 @@ jobs:
e2e/insert/search
clusterwide-network-bandwidth:
name: "E2E chaos test (network bandwidth: to test it works properly under bandwidth limitation)"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand All @@ -178,7 +192,7 @@ jobs:
- name: Run Insert and Search operations
run: |
make hack/benchmark/assets/dataset/${{ env.DATASET }}
make E2E_BIND_HOST=localhost \
make E2E_BIND_HOST=host.docker.internal \
E2E_BIND_PORT=8081 \
E2E_PORTFORWARD_ENABLED=false \
E2E_DATASET_NAME=${{ env.DATASET }} \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/e2e-code-bench-agent.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ jobs:
needs: [detect-ci-container]
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand Down Expand Up @@ -85,6 +86,7 @@ jobs:
needs: [detect-ci-container]
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/e2e-max-dim.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,21 @@ on:
- "labeled"
jobs:
dump-contexts-to-log:
if: startsWith( github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-max-dim'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dump-context
detect-ci-container:
if: startsWith( github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-max-dim'
uses: ./.github/workflows/_detect-ci-container.yml
e2e-max-dimension-insert:
name: "E2E test (Max Dimension Insert: skip strict exist check)"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand Down
37 changes: 25 additions & 12 deletions .github/workflows/e2e-profiling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,21 @@ env:
DATASET: fashion-mnist-784-euclidean.hdf5
jobs:
dump-contexts-to-log:
if: startsWith( github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-profiling'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/dump-context
detect-ci-container:
if: startsWith(github.ref, 'refs/tags/') || github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-profiling'
uses: ./.github/workflows/_detect-ci-container.yml
e2e-profiling:
name: "E2E profiling"
needs: [dump-contexts-to-log]
needs: [detect-ci-container]
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }}
options: "--add-host host.docker.internal:host-gateway"
steps:
- uses: actions/checkout@v4
- name: Set Git config
Expand Down Expand Up @@ -100,13 +105,27 @@ jobs:
path: ./profiles-main
key: ${{ runner.os }}-profiles-main-${{ github.sha }}
restore-keys: ${{ runner.os }}-profiles-main-
- name: Install dependencies
- name: Update cache
if: startsWith(github.ref, 'refs/tags/')
run: |
sudo apt update
sudo apt install -y graphviz
mkdir -p profiles-main
cp -f profiles/* profiles-main/
cp -f versions/VALD_VERSION profiles-main/
- name: Generate graphs
shell: bash
run: |
tag=$(cat profiles-main/VALD_VERSION || echo "unknown")
tag="unknown"
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
tag="pr-${{ github.event.pull_request.number }}"
elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
tag="main-${{ github.sha }}"
elif [[ "${{ github.ref }}" == "refs/heads/release/*" ]]; then
version=$(echo ${{ github.ref }} | sed 's/refs\/heads\/release\///')
tag="v${version}-${{ github.sha }}"
elif [[ -f profiles-main/VALD_VERSION && -s profiles-main/VALD_VERSION ]]; then
tag=$(cat profiles-main/VALD_VERSION)
fi

mkdir -p graphs
for svc in vald-agent-ngt vald-lb-gateway vald-discoverer vald-manager-index
do
Expand All @@ -130,12 +149,6 @@ jobs:
with:
name: graphs
path: graphs/*
- name: Update cache
if: startsWith( github.ref, 'refs/tags/')
run: |
mkdir -p profiles-main
cp -f profiles/* profiles-main/
cp -f versions/VALD_VERSION profiles-main/
- name: Upload to vald-ci-images repository
if: github.event.action == 'labeled' && github.event.label.name == 'actions/e2e-profiling'
run: |
Expand Down
Loading
Loading