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.