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

[v1.13] envoy: Update envoy version to 1.25.x #28331

Merged
merged 11 commits into from
Oct 23, 2023
Merged

Conversation

sayboras
Copy link
Member

@sayboras sayboras commented Sep 29, 2023

Description

Envoy 1.24 will be EOL in Oct 2023, this commit is to proactively bump envoy version to 1.25.

Related build: https://github.com/cilium/proxy/actions/runs/6160387030/job/16717229803

Note

This PR contains the backport of #24684 to pickup the fix 466ab24 for below issue.

2023-09-29T15:02:01.513660624Z level=warning msg="NACK received for versions after  and up to 3; waiting for a version update before sending again" subsys=xds xdsAckedVersion= xdsClientNode="host~127.0.0.1~no-id~localdomain" xdsDetail="Only unique values for domains are permitted. Duplicate entry of domain foo.bar.com in route default/cilium-ingress-default-host-rules/listener-insecure" xdsNonce=3 xdsStreamID=6 xdsTypeURL=type.googleapis.com/envoy.config.route.v3.RouteConfiguration

@maintainer-s-little-helper maintainer-s-little-helper bot added backport/1.13 This PR represents a backport for Cilium 1.13.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. labels Sep 29, 2023
@sayboras
Copy link
Member Author

/test-backport-1.13

@sayboras
Copy link
Member Author

/test-backport-1.13

@sayboras
Copy link
Member Author

/test-backport-1.13

@julianwiedmann julianwiedmann changed the title envoy: Update envoy version to 1.25.x [v1.13] envoy: Update envoy version to 1.25.x Oct 5, 2023
Envoy 1.24 will be EOL in Oct 2023, this commit is to proactively bump
envoy version to 1.25.

Related build: https://github.com/cilium/proxy/actions/runs/6160387030/job/16717229803

Signed-off-by: Tam Mach <tam.mach@cilium.io>
This is to avoid the below warning log upon agent start-up

```
2023-02-27T06:06:18.292863957Z level=warning msg="[Deprecated field: type envoy.type.matcher.v3.RegexMatcher Using deprecated option 'envoy.type.matcher.v3.RegexMatcher.google_re2' from file regex.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/version_history/version_history for details. If continued use of this field is absolutely necessary, see https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/runtime#using-runtime-overrides-for-deprecated-features for how to apply a temporary and highly discouraged override." subsys=envoy-misc threadID=724
```

Relates: #23940
Signed-off-by: Tam Mach <tam.mach@cilium.io>
@sayboras
Copy link
Member Author

/test-backport-1.13

[upstream e35318f]

This attribute is deprecated and derived based on sum of individual weights.

```
2023-04-01T06:08:08.708391385Z level=warning msg="[Deprecated field: type envoy.config.route.v3.WeightedCluster Using deprecated option 'envoy.config.route.v3.WeightedCluster.total_weight' from file route_components.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/version_history/version_history for details. If continued use of this field is absolutely necessary, see https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/runtime#using-runtime-overrides-for-deprecated-features for how to apply a temporary and highly discouraged override." subsys=envoy-misc threadID=79
```

Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit 4b05add]

Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit 700e2ae]

This commit is to make sure that the virtual hosts are created in the
same order of appearance of HTTP Route spec. The changes are to split
nested map into two separate maps, and handle uniqueness.

Fixes: #24217
Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit 466ab24]

There is validation of unique domain names in envoy v1.25.x, which causes
the below error in conformance test. This commit is to make sure that we
don't generate two virtual hosts with same domain names if enforce https
is enabled.

```
2023-04-01T06:08:08.710574289Z level=warning msg="NACK received for versions after  and up to 4; waiting for a version update before sending again" subsys=xds xdsAckedVersion= xdsClientNode="host~127.0.0.1~no-id~localdomain" xdsDetail="Only unique values for domains are permitted. Duplicate entry of domain foo.bar.com in route default/cilium-ingress-default-host-rules/listener-insecure" xdsNonce=4 xdsStreamID=9 xdsTypeURL=type.googleapis.com/envoy.config.route.v3.RouteConfiguration
```

Before

```json
  - '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration
    name: listener-insecure
    virtualHosts:
    - domains:
      - foo.bar.com
      - foo.bar.com:*
      name: foo.bar.com
      routes:
      - match:
          safeRegex:
            regex: (/.*)?$
        redirect:
          httpsRedirect: true
    - domains:
      - '*.foo.com'
      - '*.foo.com:*'
      name: '*.foo.com'
      routes:
      - match:
          headers:
          - name: :authority
            stringMatch:
              safeRegex:
                regex: ^[^.]+[.]foo[.]com$
          safeRegex:
            regex: (/.*)?$
        route:
          cluster: default/wildcard-foo-com:8080
          maxStreamDuration:
            maxStreamDuration: 0s
    - domains:
      - foo.bar.com
      - foo.bar.com:*
      name: foo.bar.com
      routes:
      - match:
          safeRegex:
            regex: (/.*)?$
        route:
          maxStreamDuration:
            maxStreamDuration: 0s
          weightedClusters:
            clusters:
            - name: default/foo-bar-com:http
              weight: 1
            - name: default/foo-bar-com:http
              weight: 1
 ```

 After

 ```json
   - '@type': type.googleapis.com/envoy.config.route.v3.RouteConfiguration
     name: listener-insecure
     virtualHosts:
     - domains:
       - foo.bar.com
       - foo.bar.com:*
       name: foo.bar.com
       routes:
       - match:
           safeRegex:
             regex: (/.*)?$
         redirect:
           httpsRedirect: true
     - domains:
       - '*.foo.com'
       - '*.foo.com:*'
       name: '*.foo.com'
       routes:
       - match:
           headers:
           - name: :authority
             stringMatch:
               safeRegex:
                 regex: ^[^.]+[.]foo[.]com$
           safeRegex:
             regex: (/.*)?$
         route:
           cluster: default/wildcard-foo-com:8080
           maxStreamDuration:
             maxStreamDuration: 0s
 ```

Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit dbb5dcc]

Signed-off-by: Tam Mach <tam.mach@cilium.io>
@sayboras
Copy link
Member Author

/test-backport-1.13

[upstream commit 4988e8e]

Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit d94c0bd]

Signed-off-by: Tam Mach <tam.mach@cilium.io>
[upstream commit 6f48ae8]

Signed-off-by: Tam Mach <tam.mach@cilium.io>
The istio integration is relying on cilium/istio_proxy container, which
is no longer maintained, the latest version v1.10.6 was published two
years ago. Just a note that this image is running with EOL envoy version
which causes the double registration issue when envoy is upgraded in
main Cilium build to envoy v1.25.x.

Considered that this integration is no longer supported in recent Cilium
releases, we can also do the same for v1.13 in favour of maintenance
efforts for:

- Syncing up with recent Istio versions. The latest istio release is
  v1.19.3, which is far ahead of v1.10.6
- Security issue with old and outdated cilium/istio_proxy image.

```
Double registration for type: 'envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext' by 'cilium.tls_wrapper' and 'envoy.transport_sockets.tls'
Double registration for type: 'envoy.api.v2.auth.DownstreamTlsContext' by 'cilium.tls_wrapper' and 'envoy.transport_sockets.tls'
Double registration for type: 'envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext' by 'envoy.transport_sockets.tls' and ''
Double registration for type: 'envoy.api.v2.auth.DownstreamTlsContext' by 'envoy.transport_sockets.tls' and ''
```

Signed-off-by: Tam Mach <tam.mach@cilium.io>
@sayboras
Copy link
Member Author

/test-backport-1.13

@sayboras sayboras marked this pull request as ready for review October 21, 2023 13:07
@sayboras sayboras requested a review from a team as a code owner October 21, 2023 13:07
@maintainer-s-little-helper maintainer-s-little-helper bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Oct 23, 2023
@jrajahalme jrajahalme merged commit dd3760f into v1.13 Oct 23, 2023
129 checks passed
@jrajahalme jrajahalme deleted the tam/envoy-v1.25.9-v1.13 branch October 23, 2023 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/1.13 This PR represents a backport for Cilium 1.13.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. ready-to-merge This PR has passed all tests and received consensus from code owners to merge.
Projects
No open projects
Status: Released
Development

Successfully merging this pull request may close these issues.

None yet

2 participants