Commit Graph

95 Commits

Author SHA1 Message Date
Flynn 95495a54c2 Switch to the GCR mirror for the base Envoy image
Signed-off-by: Flynn <flynn+github@kodachi.com>
2024-12-04 22:52:38 -05:00
Flynn dfcf01298f Update ENVOY_COMMIT and ENVOY_GO_CONTROL_PLANE_COMMIT
Signed-off-by: Flynn <flynn+github@kodachi.com>
2024-12-04 22:52:33 -05:00
Alice Wasko 5f7ac30080 update envoy to 1.30.3 (patched)
Signed-off-by: Alice Wasko <alicewasko@datawire.io>
2024-06-26 15:45:56 -07:00
Tenshin Higashi 1d56ae0965 upgrade envoy to 1.30.2
Signed-off-by: Tenshin Higashi <thigashi@datawire.io>
2024-06-10 15:51:55 -07:00
Alice Wasko 8b343d5989 update envoy/go-control-plane
Signed-off-by: Alice Wasko <alicewasko@datawire.io>
2024-05-28 10:31:00 -07:00
Alice Wasko 8d75fd48bc upgrade Envoy proxy to 1.30.1 with patches
Signed-off-by: Alice Wasko <alicewasko@datawire.io>
2024-05-28 10:31:00 -07:00
Lance Austin 9292c47470 deps: bump go-control-plane with envoy 1.28 support
Updates go-control-plane to the latest version sync'd and tested against
Envoy 1.28.

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2024-05-28 10:31:00 -07:00
Lance Austin 2d36cf21e0 deps: update to envoy 1.28.0
Bumps to Envoy 1.28.0 and regenerates compiled protos.

steps:
1. update envoy.mk to v1.28 commit with custom commits
2. ran `make update-base`

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2024-05-28 10:31:00 -07:00
Lance Austin 8239684191
Revert "deps: bump go-control-plane with envoy 1.28 support"
This reverts commit 85bba5d86f.

This goes along with revert Envoy 1.28 back to Envoy 1.27.2. When
we upgrade to 1.29, we will restore this update.

Signed-off-by: Lance Austin <laustin@datawire.io>
2024-01-08 09:12:55 -06:00
Lance Austin 1026db35ad
Revert "deps: update to envoy 1.28.0"
This reverts commit 7b7be436c5.

HTTP/3 support (udp/quic) is broken in 1.28 and will cause emissary-ingress
to shut down when Envoy tries to validate the config. In testing, 1.27 and
1.29 both are ok. So, this will temporarily revert back to Envoy 1.27.2
until 1.29 is released and we can jump to 1.29 instead.

Note: none of the current commits on the unreleased 1.28.1
branch (release/v1.28) seem to address this but rather quite a few
larger commits in master may be required thus not macking it feasible
to backport.

Signed-off-by: Lance Austin <laustin@datawire.io>
2024-01-08 09:12:32 -06:00
Lance Austin 85bba5d86f deps: bump go-control-plane with envoy 1.28 support
Updates go-control-plane to the latest version sync'd and tested against
Envoy 1.28.

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-11-17 09:58:20 -06:00
Lance Austin 7b7be436c5 deps: update to envoy 1.28.0
Bumps to Envoy 1.28.0 and regenerates compiled protos.

steps:
1. update envoy.mk to v1.28 commit with custom commits
2. ran `make update-base`

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-11-17 09:58:20 -06:00
Lance Austin c316a95e2a deps: update to alpine 3.18 and python 3.11
The base alpine image we use that has musl and glibc is now
updated to alpine 3.18 which ships with python 3.11. This
does the following:

- bumps the various Dockerfile base images
- unpins python and pip3
- Pushs new base-envoy image by bump baserel ver

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-10-20 10:16:54 -05:00
Lance Austin 9209418d67 deps: bump to envoy 1.27.2
Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-10-19 09:42:10 -05:00
Lance Austin fe02667366 envoy: bump go-control-plane to envoy 1.27 compatible
This updates the go-control-plane so that it is using a version
that is sync'd and tested against the protos compatible with
envoy 1.27.

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-10-17 21:08:31 -05:00
Lance Austin 2b55a41868 envoy: update to Envoy 1.27.1 with new build process
This bumps our custom Envoy to be based on v1.27.1. The build
process has been revamped for the following:

1. align build steps with upstream Envoy's CI steps
2. Simplify envoy.mk into a set of simple Phony targets and shell scripts
3. Remove compiling protos from general `make generate`
4. Update DEVELOPING.md to match revamped workflow

A couple of key  differences are that we leverage the underlying
tools (bazel, docker) for caching and volume mounting rather than
implicit make targets. This should make it more clear what is happening
when running certain commands and will allow for more flexibility in
the dev workflow.

I tried to maintain support for FIPS_MODE but its not tested since we do not
support it and we have added it for developer. If it is not working correctly,
then follow PR's can address it as needed.

Signed-off-by: Lance Austin <laustin@dataiwre.io>
2023-10-17 21:08:31 -05:00
Alice Wasko 59f9c9185c apply envoy security patches
Signed-off-by: Alice Wasko <alicewasko@datawire.io>
2023-10-10 15:01:33 -07:00
Lance Austin a28ef97c45
revert: back to existing version of go-control-plane
Signed-off-by: Lance Austin <laustin@datawire.io>
2023-09-07 09:52:39 -05:00
Lance Austin cb6eea73cb
revert: back to envoy 1.26
Signed-off-by: Lance Austin <laustin@datawire.io>
2023-09-07 09:52:31 -05:00
Lance Austin cd26813101 envoy: fix cleanup of container and volume
CI and local builds fail to clean-up volume if container process
 has not finished shutting down when using `docker kill`. Using
 docker rm ensures the container is stopped and then cleans
 up the volume associated with it.

This will address CI flakes with `generate`

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-08-07 17:12:50 -05:00
Lance Austin 8489c4067f envoy: bump go-control-plane to match latest sync for 1.27
Using `make guess-envoy-go-control-plane-commit` we are
updating the go-control-plane to ensure it has been tested
against envoy 1.27.

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-08-07 17:12:50 -05:00
Lance Austin 3950d5962e deps: upgrade to envoy 1.27
Upgrades to the lastest build of our custom Envoy 1.27. Only
notable changes for Emissary-ingress are the protos
generated but most changes were just doc comments.

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-08-07 17:12:50 -05:00
Lance Austin 4008635f93 deps: bump to Envoy 1.26.4
Bumps to our latest Envoy custom build based on 1.26.4 which
addresses the following CVEs:

- CVE-2023-35941 : Not affected but pulled in
- CVE-2023-35942
- CVE-2023-35943
- CVE-2023-35944

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-07-26 11:05:24 -05:00
Lance Austin d0cb1f7f2d deps: bump envoy to 1.26.3
Envoy released a zero-day fix for CVE-2023-35945. This updates our
custom build of Envoy with the fix and our custom commits based on
Envoy 1.26.3.

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-07-18 10:05:53 -05:00
Rick Lane 561d0f9667
Replace rsync --mkpath with mkdir
Removes the use of the `rsync` `--mkpath` options in favor of creating
the target folder with `mkdir` instead. The `--mkpath` option is only
available in later versions of `rsync`, which are not generally
available on some platforms. While in most cases, it's better to rely
upon (and insist upon) the latest versions, upgrading `rsync` is
relatively prohibitive, and it would be better not to have this barrier
to open source use.

Signed-off-by: Rick Lane <rlane@datawire.io>
2023-06-01 12:53:59 -07:00
Hamzah Qudsi 34d6008f6f envoy: build with contrib extensions
Update envoy build to include contrib extensions which includes extensions such as go-filter.
Ideally, we would have enabled only the extensions that we needed but Envoy's bazel system
doesn't include any contrib extensions whether you enable it or not in the normal source build.
The contrib build enables all contrib extensions by default and modifying the bazel source files
to exclude certain extensions would have added to maintanance complexity so all contrib extensions are
built which adds only a few MB to the final build.

Signed-off-by: Hamzah Qudsi <hqudsi@datawire.io>
2023-05-19 15:36:19 -04:00
Hamzah Qudsi e08ee1bfa5 envoy: add go-filter protobuf
Add protobuf for go filter under api/contrib. Because the go filter is not part of the core envoy protobufs (api/envoy), the Makefiles have been updated to also build select api/contrib protos based on need. You can specify which additional contrib protos to build in _cxx/envoy.mk and it will build only the contrib protos listed to minimize the total build time for make generate.

Signed-off-by: Hamzah Qudsi <hqudsi@datawire.io>
2023-05-19 15:36:19 -04:00
Lance Austin b32fd681c4 envoy: update go-control-plane to v1.26 compat
This bumps the go-control-plane version to the latest version of envoy
where the protobufs were sync'd with envoy upstream v1.26.

Bumping it, introduced a new RateLimitConfigDiscoverService which modified
the generated code/imports. These new files were not copied over and also
didn't replace the imports with the `github.com/emissary-ingress` namespaced
packages. The envoy.mk file was updated to include the new folder and
import pattern replacement

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-05-04 16:24:34 -05:00
Lance Austin b25ba6428e envoy: upgrade to v1.26.1
Updates to custom envoy build based on release/v1.26 branch as of v1.26.1
release.

Executed `make-generate` to populate new proto files and compiled
protobufs.

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-05-04 16:24:34 -05:00
Hamzah Qudsi 9bb6a876c4 envoy: upgrade to 1.25.4
Upgrades Envoy to v1.25.4 which includes various security patches including CVE-2023-27487, CVE-2023-27491, CVE-2023-27492, CVE-2023-27493, CVE-2023-27488, and CVE-2023-27496.

Signed-off-by: Hamzah Qudsi <hqudsi@datawire.io>
2023-04-06 15:17:48 -04:00
Hamzah Qudsi 31d7fc97a8 envoy: upgrade to 1.25.3
Updates envoy to 1.25.3 with custom patches on top for emissary-ingress specific features. Also Updates go-control-plane and pull for updated protos.

Notable Items:
- contains patches for CVE-2023-25194, CVE-2023-26489 and CVE-2023-27477
- http: enhanced dynamic forward proxy cluster to allow_coalesced_connections for HTTP/2 and HTTP/3 connections
- http: added append_x_forwarded_port to append the x-forwarded-port header to HTTP upstream requests
- http: added support of header mutation to the HTTP connection manager via early header mutation field
- tcp: added idle_timeout to support per client idle timeout for tcp connection pool. The timeout is guarded by envoy.reloadable_features.tcp_pool_idle_timeout and timeout defaults to 10 minutes if runtime flag is enabled.
- tls: added support for intermediate CA as trusted CA. The peer certificate issued by an intermediate CA will be trusted by building valid partial chain. Before, it could not be verified without trusting its ancestor root CA and building a full chain. trust_ca.
- golang: added new HTTP golang extension filter.

Signed-off-by: Hamzah Qudsi <hqudsi@datawire.io>
2023-03-29 17:11:07 -04:00
Hamzah Qudsi 97fb84d8c8 build: set network=host when running envoy build container
Fixes https://github.com/envoyproxy/envoy/issues/25585

Signed-off-by: Hamzah Qudsi <hqudsi@datawire.io>
2023-03-29 13:25:53 -04:00
Lance Austin 5e02cc64f3 envoy: upgrade to 1.24.2
Updates to the latest release of envoy 1.24.2. It includes two notable
changes which are it pulls in a patch for boringssl CVE-2023-0286
and pulls in a dependency update for c-ares.

- bumps base alpine image used for static envoy layer to
frolvlad/alpine-glibc:alpine-3.17_glibc-2.34 to match base-python.

- fixes envoy build so that it sets the /root/envoy as a safe directory
in git when doing build to fix build error.

Signed-off-by: Lance Austin <laustin@datawire.io>
2023-02-08 10:19:42 -06:00
Lance Austin 28ada88dd2
deps: upgrade to envoy 1.24.1 (#4706)
* deps: update envoy to 1.24.1 and control-plane

Bumps to Envoy 1.24.1 with custom commits rebased on top for Emissary-ingress and Edge Stack specific features. Updates the go-control-plane to match the version of Envoy commits to ensure proto's are sync'd.

Notable items:
- removed support for lightstep driver and adjusted test for it
- updated Tracing test span name behavior change due to envoy bugfix in 1.24 (see below for more info)

In  commit 230d007989, Envoy 1.24 fixed a bug where the behavior for cluster stats didn't match the docs and expected behavior.

Previously, upstream stats were generated using `cluster.name` but really they should have been `cluster.alt_stat_name` and fallback to `cluster.name`. This can be seen here in Envoy:

141f28cf62/source/common/upstream/upstream_impl.cc (L889)

Now that this has been fixed and matches that behavior it causes
an issue with the KAT tests for TracingService. The TracingService
will always have an alt_stat_name for its cluster because we either
take the provided stats_name provided in the TracingService CRD or
we fallback to using the `service`.

The tests previously was asserting that the trace name
was equal to cluster name but instead it now needs to
be asserted that it is the `service` due to the behavior
change,

Signed-off-by: Lance Austin <laustin@datawire.io>
2022-12-20 13:50:10 -06:00
Sirish Bathina 70473c093f Enable fips mode when building envoy
Signed-off-by: Sirish Bathina <sirish@kasten.io>
2022-08-25 14:31:15 -10:00
Luke Shumaker cfda7997f3 make generate: Run the envoy protobufs through gofmt
The Envoy build system still uses an old protoc-gen-go that outputs
code that isn't formatted in accordance with Go 1.19's gofmt.  Even
generated code should be gofmt'ed, so do that as a post-processing
step when copying the code in to our tree.

Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-08-23 10:44:31 -06:00
Luke Shumaker 34e1a6e491 envoy-control-plane: Don't include the license statement in package docs
Go 1.19's `gofmt` is more prescriptive than previous versions about
how code-blocks in doc-comments are indented (see
https://go.dev/doc/comment).  Because of this, if we were to use Go
1.19's `gofmt` to format `log_test.go` as-is, it would change the
indentation of the Apache License notice.  That's not really a problem
in itself, but it points out a problem to us: that the license notice
is being treated as a doc comment, which it shouldn't be.  So use
`sed` to insert a newline to prevent it from being treated as a doc
comment.

Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-08-23 10:44:31 -06:00
Lance Austin 3cfded3b9c ambex: update envoy-control-plane commit
This updates the envoy-control-plane commit based on the results
of running `make guess-envoy-go-control-plane-commit`.
A follow-up commit will regenerate the types and address any
issues.

Signed-off-by: Lance Austin <laustin@datawire.io>
2022-08-17 08:59:51 -05:00
Lance Austin 3e22e0164a envoy: set git safe.directory for /root/envoy
This address the issue outlined here:
https://github.com/emissary-ingress/emissary/issues/4418

TL;DR
Address behavior change in Git due to dev container being
rebuilt and Git being patched in Ubuntu.

Signed-off-by: Lance Austin <laustin@datawire.io>
2022-08-17 08:59:51 -05:00
Lance Austin c16b904d66 envoy: upgrade to 1.23
This updates  emissary-ingress to envoy 1.23 with additional commits
that support custom features for Emissary-ingress.

Signed-off-by: Lance Austin <laustin@datawire.io>
2022-08-17 08:59:51 -05:00
Lance Austin 401c178498
upgrade go-control-plane to support envoy 1.22
This commit upgrades to the latest tagged go-control-plane version of v0.10.1. When using the commit provided by `make guess-envoy-go-control-plane-commit` it introduced behavior that was causing a test failure in `pkg/gateway/dispatch.go`. In the future, we will need to investigate that error and update accordingly then.

Due to the go-control-plane dropping support for the v2 api's, the gateway, ambex and entrypoint packages needed to be update to remove the v2 xDS api's and only support v3 xDS.

Signed-off-by: Lance Austin <laustin@datawire.io>
2022-06-22 16:00:15 -05:00
Lance Austin 01a93be0c0
upgrade to envoy 1.22.2
This bumps the envoy version used from 1.17 to 1.22. The commit address's refactoring that occurred with the protobufs and fixes. It also regenerates

- re-ran `make generate` & `make go-mod-tidy`
- fixed small issue due to dropping envoy backported fields to v2 apis
- add `no_extension_lookup_by_name` to bootstrap config

In Envoy 1.22, the default for looking up extensions is now by `@type` rather than just `name`. This adds the `envoy.reloadable_features.no_extension_lookup_by_name: False` to the bootstrap to temporarily revert this behavior so that our current config continues to work.

See https://www.envoyproxy.io/docs/envoy/v1.22.0/version_history/current#minor-behavior-changes for more information. Future PR's should address converting over to using @types.

Co-authored-by: Luke Shumaker <lukeshu@datawire.io>
Signed-off-by: Lance Austin <laustin@datawire.io>
2022-06-22 14:36:18 -05:00
Luke Shumaker d72647ccb9 git grep -l github.com/datawire/ambassador/v2|xargs sed -i 's,github\.com/datawire/ambassador/v2,github.com/emissary-ingress/emissary/v3,g' && go fmt ./...
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-06-14 10:04:14 -06:00
AliceProxy 2669e7b95d envoy security patches
Signed-off-by: AliceProxy <alicewasko@datawire.io>
2022-06-08 23:58:44 -07:00
Luke Shumaker cf66af9793 _cxx/envoy.mk: Enhance `make check-envoy-version`
1. Strictly check for tags matching 'datawire-*' to remove the temptation
    to jump the gun and create an 'ambassador-*' or 'emissary-*' tag
    before we know that's actually the commit that will be in the released
    Ambassador/Emissary.  This temptation has bitten us several times
    before.

 2. Don't just check the tip of the PR ('HEAD'), also check that all
    intermediate commits in the PR are also (ancestors of?) a tag.  We
    don't want history to get lost!

Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-06-08 19:00:39 -06:00
Luke Shumaker ca1b717940 build-sys: Don't forget to pass `--rm` to `docker run`
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-05-20 09:39:02 +02:00
Luke Shumaker 6ce9a8d9f1 build-sys: Add a default %.clean / %.rm implementation
Avoid writing repetitive rules for simple files.

Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-05-19 16:42:32 +02:00
Luke Shumaker 91d8150093 envoy.mk: Fix a typoed line affecting `make clobber`
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-05-19 16:42:32 +02:00
Luke Shumaker b7ad4b22a5 build-sys: Don't say .PHONY: %.clean every dang time
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-05-19 16:42:26 +02:00
Luke Shumaker 27b823ef51 Upgrade envoy-control-plane v0.9.8→$(make guess-envoy-go-control-plane-commit)
A bunch of the methods that formerly returned an ecp_v2_cache.Resource
interface now return a boxed wrapper struct (ecp_v2_cache.ResourceWithTtl),
so we need to unbox that by adding ".Resource" in a bunch of places.

Also, it introduced some code that the linter is unhappy with, so add and
another exception for it.

Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
2022-05-01 09:35:27 -06:00