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

Update Envoy and Go version #5806

Merged
merged 11 commits into from
Dec 5, 2024
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 21 additions & 22 deletions DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ following Free and Open Source software:

Name Version License(s)
---- ------- ----------
the Go language standard library ("std") v1.22.4 3-clause BSD license
the Go language standard library ("std") v1.23.3 3-clause BSD license
cel.dev/expr v0.16.1 Apache License 2.0
dario.cat/mergo v1.0.0 3-clause BSD license
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 MIT license
github.com/MakeNowJust/heredoc v1.0.0 MIT license
Expand All @@ -19,10 +20,10 @@ following Free and Open Source software:
github.com/blang/semver/v4 v4.0.0 MIT license
github.com/cenkalti/backoff/v4 v4.2.1 MIT license
github.com/census-instrumentation/opencensus-proto v0.4.1 Apache License 2.0
github.com/cespare/xxhash/v2 v2.2.0 MIT license
github.com/cespare/xxhash/v2 v2.3.0 MIT license
github.com/chai2010/gettext-go v1.0.2 3-clause BSD license
github.com/cloudflare/circl v1.3.7 3-clause BSD license
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 Apache License 2.0
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 Apache License 2.0
github.com/cyphar/filepath-securejoin v0.2.4 3-clause BSD license
github.com/datawire/dlib v1.3.1 Apache License 2.0
github.com/datawire/dtest v0.0.0-20210928162311-722b199c4c2f Apache License 2.0
Expand All @@ -31,7 +32,7 @@ following Free and Open Source software:
github.com/distribution/reference v0.5.0 Apache License 2.0
github.com/emicklei/go-restful/v3 v3.11.0 MIT license
github.com/emirpasic/gods v1.18.1 2-clause BSD license, ISC license
github.com/envoyproxy/protoc-gen-validate v1.0.2 Apache License 2.0
github.com/envoyproxy/protoc-gen-validate v1.1.0 Apache License 2.0
github.com/evanphx/json-patch v5.7.0+incompatible 3-clause BSD license
github.com/evanphx/json-patch/v5 v5.9.0 3-clause BSD license
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f MIT license
Expand All @@ -57,7 +58,7 @@ following Free and Open Source software:
github.com/google/go-cmp v0.6.0 3-clause BSD license
github.com/google/gofuzz v1.2.0 Apache License 2.0
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 Apache License 2.0
github.com/google/uuid v1.5.0 3-clause BSD license
github.com/google/uuid v1.6.0 3-clause BSD license
github.com/gorilla/websocket v1.5.1 3-clause BSD license
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 MIT license
github.com/hashicorp/consul/api v1.26.1 Mozilla Public License 2.0
Expand Down Expand Up @@ -101,7 +102,7 @@ following Free and Open Source software:
github.com/peterbourgon/diskv v2.0.1+incompatible MIT license
github.com/pjbgf/sha1cd v0.3.0 Apache License 2.0
github.com/pkg/errors v0.9.1 2-clause BSD license
github.com/planetscale/vtprotobuf v0.6.0 3-clause BSD license
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 3-clause BSD license
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 3-clause BSD license
github.com/prometheus/client_golang v1.17.0 Apache License 2.0
github.com/prometheus/client_model v0.5.0 Apache License 2.0
Expand All @@ -111,7 +112,7 @@ following Free and Open Source software:
github.com/sergi/go-diff v1.3.1 MIT license
github.com/sirupsen/logrus v1.9.3 MIT license
github.com/skeema/knownhosts v1.2.1 Apache License 2.0
github.com/spf13/afero v1.3.3 Apache License 2.0
github.com/spf13/afero v1.10.0 Apache License 2.0
github.com/spf13/cast v1.3.0 MIT license
github.com/spf13/cobra v1.8.0 Apache License 2.0
github.com/spf13/jwalterweatherman v1.0.0 MIT license
Expand All @@ -128,25 +129,23 @@ following Free and Open Source software:
go.uber.org/goleak v1.3.0 MIT license
go.uber.org/multierr v1.11.0 MIT license
go.uber.org/zap v1.26.0 MIT license
golang.org/x/crypto v0.21.0 3-clause BSD license
golang.org/x/crypto v0.27.0 3-clause BSD license
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa 3-clause BSD license
golang.org/x/mod v0.15.0 3-clause BSD license
golang.org/x/net v0.23.0 3-clause BSD license
golang.org/x/oauth2 v0.15.0 3-clause BSD license
golang.org/x/sync v0.6.0 3-clause BSD license
golang.org/x/sys v0.18.0 3-clause BSD license
golang.org/x/term v0.18.0 3-clause BSD license
golang.org/x/text v0.14.0 3-clause BSD license
golang.org/x/mod v0.17.0 3-clause BSD license
golang.org/x/net v0.29.0 3-clause BSD license
golang.org/x/oauth2 v0.23.0 3-clause BSD license
golang.org/x/sync v0.8.0 3-clause BSD license
golang.org/x/sys v0.25.0 3-clause BSD license
golang.org/x/term v0.24.0 3-clause BSD license
golang.org/x/text v0.18.0 3-clause BSD license
golang.org/x/time v0.5.0 3-clause BSD license
golang.org/x/tools v0.18.0 3-clause BSD license
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d 3-clause BSD license
gomodules.xyz/jsonpatch/v2 v2.4.0 Apache License 2.0
google.golang.org/appengine v1.6.8 Apache License 2.0
google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 Apache License 2.0
google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3 Apache License 2.0
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 Apache License 2.0
google.golang.org/grpc v1.60.1 Apache License 2.0
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 Apache License 2.0
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 Apache License 2.0
google.golang.org/grpc v1.68.0 Apache License 2.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 Apache License 2.0
google.golang.org/protobuf v1.33.0 3-clause BSD license
google.golang.org/protobuf v1.34.2 3-clause BSD license
gopkg.in/inf.v0 v0.9.1 3-clause BSD license
gopkg.in/ini.v1 v1.51.0 Apache License 2.0
gopkg.in/warnings.v0 v0.1.2 2-clause BSD license
Expand Down
23 changes: 12 additions & 11 deletions _cxx/envoy.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ export ENVOY_TEST_LABEL
# IF YOU MESS WITH ANY OF THESE VALUES, YOU MUST RUN `make update-base`.
ENVOY_REPO ?= https://github.com/datawire/envoy.git

# https://github.com/datawire/envoy/tree/rebase/release/v1.30.3
ENVOY_COMMIT ?= 99c27c6cf5753adb0390d05992d6e5f248f85ab2
# https://github.com/datawire/envoy/tree/rebase/release/v1.31.3
ENVOY_COMMIT ?= 628f5afc75a894a08504fa0f416269ec50c07bf9

ENVOY_COMPILATION_MODE ?= opt
# Increment BASE_ENVOY_RELVER on changes to `docker/base-envoy/Dockerfile`, or Envoy recipes.
Expand All @@ -24,7 +24,8 @@ BASE_ENVOY_RELVER ?= 0
FIPS_MODE ?=
export FIPS_MODE

ENVOY_DOCKER_REPO ?= docker.io/emissaryingress/base-envoy
# ENVOY_DOCKER_REPO ?= docker.io/emissaryingress/base-envoy
ENVOY_DOCKER_REPO ?= gcr.io/datawire/ambassador-base
ENVOY_DOCKER_VERSION ?= $(BASE_ENVOY_RELVER).$(ENVOY_COMMIT).$(ENVOY_COMPILATION_MODE)$(if $(FIPS_MODE),.FIPS)
ENVOY_DOCKER_TAG ?= $(ENVOY_DOCKER_REPO):envoy-$(ENVOY_DOCKER_VERSION)
# END LIST OF VARIABLES REQUIRING `make update-base`.
Expand All @@ -37,11 +38,11 @@ ENVOY_DOCKER_TAG ?= $(ENVOY_DOCKER_REPO):envoy-$(ENVOY_DOCKER_VERSION)
# which commits are ancestors, I added `make guess-envoy-go-control-plane-commit` to do that in an
# automated way! Still look at the commit yourself to make sure it seems sane; blindly trusting
# machines is bad, mmkay?
ENVOY_GO_CONTROL_PLANE_COMMIT = 57c85e1829e6fe6e73fb69b8a9d9f2d3780572a5
ENVOY_GO_CONTROL_PLANE_COMMIT = f888b4f71207d0d268dee7cb824de92848da9ede

# Set ENVOY_DOCKER_REPO to the list of mirrors to check
ENVOY_DOCKER_REPOS = docker.io/emissaryingress/base-envoy
ENVOY_DOCKER_REPOS += gcr.io/datawire/ambassador-base
# ENVOY_DOCKER_REPOS = docker.io/emissaryingress/base-envoy
# ENVOY_DOCKER_REPOS += gcr.io/datawire/ambassador-base

# Intro
include $(OSS_HOME)/build-aux/prelude.mk
Expand Down Expand Up @@ -136,31 +137,31 @@ verify-base-envoy:
exit 1; \
fi; \
echo "Nothing to build at this time"; \
exit 1; \
exit 0; \
fi; \
}

# builds envoy using release settings, see https://github.com/envoyproxy/envoy/blob/main/ci/README.md for additional
# details on configuring builds
.PHONY: build-envoy
.PHONY: build-envoy
build-envoy: $(OSS_HOME)/_cxx/envoy-build-image.txt
$(OSS_HOME)/_cxx/tools/build-envoy.sh

# build the base-envoy containers and tags them locally, this requires running `build-envoy` first.
# build the base-envoy containers and tags them locally, this requires running `build-envoy` first.
.PHONY: build-base-envoy-image
build-base-envoy-image: $(OSS_HOME)/_cxx/envoy-build-image.txt
docker build --platform="$(BUILD_ARCH)" -f $(OSS_HOME)/docker/base-envoy/Dockerfile.stripped -t $(ENVOY_DOCKER_TAG) $(OSS_HOME)/docker/base-envoy

# Allows pushing the docker image independent of building envoy and docker containers
# Note, bump the BASE_ENVOY_RELVER and re-build before pushing when making non-commit changes to have a unique image tag.
.PHONY: push-base-envoy-image
push-base-envoy-image:
push-base-envoy-image:
docker push $(ENVOY_DOCKER_TAG)


# `make update-base`: Recompile Envoy and do all of the related things.
.PHONY: update-base
update-base: $(OSS_HOME)/_cxx/envoy-build-image.txt
update-base: $(OSS_HOME)/_cxx/envoy-build-image.txt
$(MAKE) verify-base-envoy
$(MAKE) build-envoy
$(MAKE) build-base-envoy-image
Expand Down
5 changes: 4 additions & 1 deletion api/envoy/admin/v3/server_info.proto
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ message ServerInfo {
config.core.v3.Node node = 7;
}

// [#next-free-field: 40]
// [#next-free-field: 41]
message CommandLineOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.admin.v2alpha.CommandLineOptions";
Expand Down Expand Up @@ -101,6 +101,9 @@ message CommandLineOptions {
// See :option:`--skip-hot-restart-on-no-parent` for details.
bool skip_hot_restart_on_no_parent = 39;

// See :option:`--skip-hot-restart-parent-stats` for details.
bool skip_hot_restart_parent_stats = 40;

// See :option:`--base-id-path` for details.
string base_id_path = 32;

Expand Down
17 changes: 16 additions & 1 deletion api/envoy/config/bootstrap/v3/bootstrap.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// <config_overview_bootstrap>` for more detail.

// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
// [#next-free-field: 41]
// [#next-free-field: 42]
message Bootstrap {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.bootstrap.v2.Bootstrap";
Expand Down Expand Up @@ -411,6 +411,10 @@ message Bootstrap {

// Optional gRPC async manager config.
GrpcAsyncClientManagerConfig grpc_async_client_manager_config = 40;

// Optional configuration for memory allocation manager.
// Memory releasing is only supported for `tcmalloc allocator <https://github.com/google/tcmalloc>`_.
MemoryAllocatorManager memory_allocator_manager = 41;
}

// Administration interface :ref:`operations documentation
Expand Down Expand Up @@ -734,3 +738,14 @@ message CustomInlineHeader {
// The type of the header that is expected to be set as the inline header.
InlineHeaderType inline_header_type = 2 [(validate.rules).enum = {defined_only: true}];
}

message MemoryAllocatorManager {
// Configures tcmalloc to perform background release of free memory in amount of bytes per ``memory_release_interval`` interval.
// If equals to ``0``, no memory release will occur. Defaults to ``0``.
uint64 bytes_to_release = 1;

// Interval in milliseconds for memory releasing. If specified, during every
// interval Envoy will try to release ``bytes_to_release`` of free memory back to operating system for reuse.
// Defaults to 1000 milliseconds.
google.protobuf.Duration memory_release_interval = 2;
}
Loading
Loading