mirror of
https://github.com/alibaba/higress.git
synced 2026-07-24 05:10:34 +08:00
4.6 KiB
4.6 KiB
name, description
| name | description |
|---|---|
| higress-update-envoy-gateway | Update Higress Envoy binary and gateway image dependencies for e2e validation. Use when Codex needs to build Envoy packages from the current Higress branch, upload those packages to higress-group/proxy releases, update Makefile.core.mk ENVOY_PACKAGE_URL_PATTERN and ENVOY_LATEST_IMAGE_TAG, run make build-gateway-local, retag the generated proxy/proxyv2 image as gateway, push the gateway image, or prepare a signed-off PR that lets Higress e2e tests consume a new Envoy build. |
Higress Envoy Gateway Dependency Update
Core Workflow
Run from the Higress repo root unless a step explicitly says otherwise.
-
Verify context:
- Check
git status --short --branch. - Do not remove unrelated user changes or generated artifacts.
- Use
ghfor GitHub release/PR checks and always pass--repofor non-current repos.
- Check
-
Build Envoy packages from the current branch:
git submodule update --init make build-envoyExpected artifacts land in
external/package/, typically:envoy-alpha-<proxy-sha>.tar.gzenvoy-symbol-<proxy-sha>.tar.gz- matching
.sha256and.dwpfiles
-
Publish Envoy package release in
higress-group/proxy:- Create a new release tag by incrementing the requested RC/test tag, for example
v2.2.4-rc.2-test-cpp-host. - Match the reference release asset names, even if local filenames include SHAs:
- local
envoy-alpha-<sha>.tar.gzuploads asenvoy-amd64.tar.gz - local
envoy-symbol-<sha>.tar.gzuploads asenvoy-symbol-amd64.tar.gz
- local
- Use temporary renamed copies rather than renaming source artifacts:
cp external/package/envoy-alpha-<sha>.tar.gz /tmp/envoy-amd64.tar.gz cp external/package/envoy-symbol-<sha>.tar.gz /tmp/envoy-symbol-amd64.tar.gz gh release create <release-tag> /tmp/envoy-amd64.tar.gz /tmp/envoy-symbol-amd64.tar.gz \ --repo higress-group/proxy --target <target-branch> --title <release-tag> --generate-notes gh release view <release-tag> --repo higress-group/proxy --json tagName,targetCommitish,assets,url - If following an existing reference release, inspect it first with
gh release view.
- Create a new release tag by incrementing the requested RC/test tag, for example
-
Update Higress Makefile dependencies:
- In
Makefile.core.mk, set:export ENVOY_PACKAGE_URL_PATTERN?=https://github.com/higress-group/proxy/releases/download/<release-tag>/envoy-symbol-ARCH.tar.gz - After building and pushing the gateway image, set:
ENVOY_LATEST_IMAGE_TAG ?= <gateway-image-tag>
- In
-
Build the local gateway image:
make build-gateway-localWatch the log to confirm Envoy downloads from the new release URL. The build target may emit an image under a proxy-style repository/name, commonly:
higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/proxyv2:<tag>
-
Retag proxy image as gateway:
docker tag higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/proxyv2:<tag> \ higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/gateway:<tag> docker images --format '{{.Repository}}:{{.Tag}} {{.ID}} {{.CreatedSince}}' \ higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/gatewayVerify the
gateway:<tag>andproxyv2:<tag>image IDs match. -
Push the gateway image when requested:
docker push higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/gateway:<tag>Record the pushed digest in the final response.
-
Commit and push Makefile changes:
- Commit only intended tracked files. Do not add
plugins/golang-filter/golang-filter_amd64.soor other build outputs unless explicitly requested. - Use DCO sign-off:
git add Makefile.core.mk git commit -s -m "Update gateway envoy dependencies" git push origin <branch> - If DCO fails after a previous unsigned commit:
git commit --amend --no-edit --signoff git push --force-with-lease origin <branch> gh pr checks <pr-number> --repo higress-group/higress
- Commit only intended tracked files. Do not add
Practical Notes
make build-gateway-localmay need Docker daemon access, network access, and write access to repo/submodule state.- If sandboxed commands fail with read-only filesystem errors, Docker socket permission errors, or network failures, rerun the same important command with elevated permissions and a concrete justification.
- The default local gateway tag usually comes from the current Git revision shown in the build log as
TAG=<sha>. - For e2e validation, the point of this workflow is to make
install-dev,install-dev-wasmplugin, and local image update targets use the newly pushed gateway image throughENVOY_LATEST_IMAGE_TAG.