From 4575d80b7972c8247d46635cec499aab6dde4a84 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:09:04 -0800 Subject: [PATCH 1/7] build: ping Envoy to v1.33 Signed-off-by: Takeshi Yoneda --- .github/workflows/commit.yaml | 5 ++--- RELEASES.md | 6 ++++-- tests/e2e/e2e_test.go | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index c89132525..ffc436b62 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -127,12 +127,11 @@ jobs: key: extproc-tests-${{ hashFiles('**/go.mod', '**/go.sum', '**/Makefile') }} - name: Install Envoy env: - # TODO: use the latest envoy after 1.33 is released. - ENVOY_VERSION: envoyproxy/envoy-dev:latest + ENVOY_VERSION: envoyproxy/envoy:v1.33.0 run: | export ENVOY_BIN_DIR=$HOME/envoy/bin mkdir -p $ENVOY_BIN_DIR - docker run -v $ENVOY_BIN_DIR:/tmp/coraza -w /tmp/coraza \ + docker run -v $ENVOY_BIN_DIR:/tmp/ci -w /tmp/ci \ --entrypoint /bin/cp ${ENVOY_VERSION} /usr/local/bin/envoy . echo $ENVOY_BIN_DIR >> $GITHUB_PATH - name: Run unit tests diff --git a/RELEASES.md b/RELEASES.md index 52ee15d00..db2f1396b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -14,8 +14,10 @@ The patch version will be incremented when we have a bug fix or a minor feature will be 2 releases after the release of the version. For example, if we release the version v0.1.0, the end of life for the version will be when we release the version v0.3.0. -The main branch will always use the latest version of the Envoy Gateway hence the latest version of the Envoy, and -the main version will be available just like the tagged released versions in the GitHub Container Registry where +The main branch will always use the latest version of the Envoy Gateway hence the latest version of the Envoy except +when we are in the middle of the release cycle e.g. one or two week before the release of the new version of the Envoy AI Gateway. +That's the time when we will freeze the version of the Envoy Gateway, and Envoy Proxy to the latest released version. +The main version will be available just like the tagged released versions in the GitHub Container Registry where we also host the helm chart. ## Support Policy diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index a76c2bf31..04aff7676 100644 --- a/tests/e2e/e2e_test.go +++ b/tests/e2e/e2e_test.go @@ -17,6 +17,7 @@ import ( ) const ( + egVersion = "v0.0.0-latest" // TODO: pin the version to a specific one during the release cycle. egNamespace = "envoy-gateway-system" egDefaultPort = 10080 ) @@ -113,7 +114,7 @@ func initEnvoyGateway(ctx context.Context) (err error) { }() initLog("\tHelm Install") helm := exec.CommandContext(ctx, "helm", "upgrade", "-i", "eg", - "oci://docker.io/envoyproxy/gateway-helm", "--version", "v0.0.0-latest", + "oci://docker.io/envoyproxy/gateway-helm", "--version", egVersion, "-n", "envoy-gateway-system", "--create-namespace") helm.Stdout = os.Stdout helm.Stderr = os.Stderr From 5609fceb7ee7f5cc38312d900c3f3cf147effc45 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:23:52 -0800 Subject: [PATCH 2/7] matrix Signed-off-by: Takeshi Yoneda --- .github/workflows/commit.yaml | 20 ++++++++++++++++---- tests/e2e/e2e_test.go | 7 ++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index ffc436b62..b732bcc6a 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -102,9 +102,15 @@ jobs: run: make test-controller test_extproc: - name: External Processor Test + name: External Processor Test (Envoy ${{ matrix.name }}) # Not all the cases in E2E require secrets, so we run for all the events. if: (github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'safe to test')) + matrix: + include: + - name: Ev1.33.0 + envoy_version: envoyproxy/envoy:v1.33.0 + - name: latest + envoy_version: envoyproxy/envoy-dev:latest runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -127,12 +133,11 @@ jobs: key: extproc-tests-${{ hashFiles('**/go.mod', '**/go.sum', '**/Makefile') }} - name: Install Envoy env: - ENVOY_VERSION: envoyproxy/envoy:v1.33.0 run: | export ENVOY_BIN_DIR=$HOME/envoy/bin mkdir -p $ENVOY_BIN_DIR docker run -v $ENVOY_BIN_DIR:/tmp/ci -w /tmp/ci \ - --entrypoint /bin/cp ${ENVOY_VERSION} /usr/local/bin/envoy . + --entrypoint /bin/cp ${{ matrix.envoy_version }} /usr/local/bin/envoy . echo $ENVOY_BIN_DIR >> $GITHUB_PATH - name: Run unit tests env: @@ -144,8 +149,14 @@ jobs: test_e2e: # Not all the cases in E2E require secrets, so we run for all the events. if: (github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'safe to test')) - name: E2E Test + name: E2E Test (Envoy Gateway ${{ matrix.name }}) runs-on: ubuntu-latest + matrix: + include: + - name: v1.2.5 + envoy_gateway_version: v1.2.5 + - name: latest + envoy_gateway_version: v0.0.0-latest steps: - uses: actions/checkout@v4 if: github.event_name != 'pull_request_target' @@ -169,6 +180,7 @@ jobs: - uses: docker/setup-buildx-action@v3 - name: Run E2E tests env: + EG_VERSION: ${{ matrix.envoy_gateway_version }} TEST_AWS_ACCESS_KEY_ID: ${{ secrets.AWS_BEDROCK_USER_AWS_ACCESS_KEY_ID }} TEST_AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_BEDROCK_USER_AWS_SECRET_ACCESS_KEY }} TEST_OPENAI_API_KEY: ${{ secrets.ENVOY_AI_GATEWAY_OPENAI_API_KEY }} diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index 04aff7676..509a3e936 100644 --- a/tests/e2e/e2e_test.go +++ b/tests/e2e/e2e_test.go @@ -17,16 +17,21 @@ import ( ) const ( - egVersion = "v0.0.0-latest" // TODO: pin the version to a specific one during the release cycle. egNamespace = "envoy-gateway-system" egDefaultPort = 10080 ) +var egVersion = "v0.0.0-latest" // This defaults to the latest dev version. + func initLog(msg string) { fmt.Printf("\u001b[32m=== INIT LOG: %s\u001B[0m\n", msg) } func TestMain(m *testing.M) { + if v, ok := os.LookupEnv("EG_VERSION"); ok { + egVersion = v + } + ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(5*time.Minute)) // The following code sets up the kind cluster, installs the Envoy Gateway, and installs the AI Gateway. From 0f1b4fca4d0f8aac34ae32cbba4b82e70a04df05 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:24:13 -0800 Subject: [PATCH 3/7] matrix Signed-off-by: Takeshi Yoneda --- .github/workflows/commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index b732bcc6a..384355432 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -107,7 +107,7 @@ jobs: if: (github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'safe to test')) matrix: include: - - name: Ev1.33.0 + - name: v1.33.0 envoy_version: envoyproxy/envoy:v1.33.0 - name: latest envoy_version: envoyproxy/envoy-dev:latest From 710f18bb1c8e3fa71905b3b71994e9316c9c1190 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:25:53 -0800 Subject: [PATCH 4/7] matrix Signed-off-by: Takeshi Yoneda --- .github/workflows/commit.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index 384355432..c3f3c6d4e 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -132,7 +132,6 @@ jobs: ~/go/bin key: extproc-tests-${{ hashFiles('**/go.mod', '**/go.sum', '**/Makefile') }} - name: Install Envoy - env: run: | export ENVOY_BIN_DIR=$HOME/envoy/bin mkdir -p $ENVOY_BIN_DIR From b8f73deaf2fd96a8f80581ed67e61838672af3f5 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:27:14 -0800 Subject: [PATCH 5/7] matrix Signed-off-by: Takeshi Yoneda --- .github/workflows/commit.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/commit.yaml b/.github/workflows/commit.yaml index c3f3c6d4e..4a487d08b 100644 --- a/.github/workflows/commit.yaml +++ b/.github/workflows/commit.yaml @@ -105,8 +105,10 @@ jobs: name: External Processor Test (Envoy ${{ matrix.name }}) # Not all the cases in E2E require secrets, so we run for all the events. if: (github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'safe to test')) - matrix: - include: + strategy: + fail-fast: false + matrix: + include: - name: v1.33.0 envoy_version: envoyproxy/envoy:v1.33.0 - name: latest @@ -150,8 +152,10 @@ jobs: if: (github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'safe to test')) name: E2E Test (Envoy Gateway ${{ matrix.name }}) runs-on: ubuntu-latest - matrix: - include: + strategy: + fail-fast: false + matrix: + include: - name: v1.2.5 envoy_gateway_version: v1.2.5 - name: latest From d3d2aef4d4c425f0fa0fbae303c4c1f6b8fade15 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:31:21 -0800 Subject: [PATCH 6/7] more Signed-off-by: Takeshi Yoneda --- RELEASES.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index db2f1396b..52ee15d00 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -14,10 +14,8 @@ The patch version will be incremented when we have a bug fix or a minor feature will be 2 releases after the release of the version. For example, if we release the version v0.1.0, the end of life for the version will be when we release the version v0.3.0. -The main branch will always use the latest version of the Envoy Gateway hence the latest version of the Envoy except -when we are in the middle of the release cycle e.g. one or two week before the release of the new version of the Envoy AI Gateway. -That's the time when we will freeze the version of the Envoy Gateway, and Envoy Proxy to the latest released version. -The main version will be available just like the tagged released versions in the GitHub Container Registry where +The main branch will always use the latest version of the Envoy Gateway hence the latest version of the Envoy, and +the main version will be available just like the tagged released versions in the GitHub Container Registry where we also host the helm chart. ## Support Policy From 44c00009318f7c56b5191e1fcc085752b1e9895c Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Fri, 17 Jan 2025 23:32:29 -0800 Subject: [PATCH 7/7] simplifies Signed-off-by: Takeshi Yoneda --- tests/e2e/e2e_test.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index 509a3e936..bcbd0982d 100644 --- a/tests/e2e/e2e_test.go +++ b/tests/e2e/e2e_test.go @@ -21,17 +21,19 @@ const ( egDefaultPort = 10080 ) -var egVersion = "v0.0.0-latest" // This defaults to the latest dev version. +var egVersion = func() string { + if v, ok := os.LookupEnv("EG_VERSION"); ok { + return v + } else { + return "v0.0.0-latest" // This defaults to the latest dev version. + } +}() func initLog(msg string) { fmt.Printf("\u001b[32m=== INIT LOG: %s\u001B[0m\n", msg) } func TestMain(m *testing.M) { - if v, ok := os.LookupEnv("EG_VERSION"); ok { - egVersion = v - } - ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(5*time.Minute)) // The following code sets up the kind cluster, installs the Envoy Gateway, and installs the AI Gateway.