Skip to content

envoy: Update to release 1.21.0#18748

Merged
joestringer merged 1 commit intocilium:masterfrom
jrajahalme:envoy-1.21.0
Feb 17, 2022
Merged

envoy: Update to release 1.21.0#18748
joestringer merged 1 commit intocilium:masterfrom
jrajahalme:envoy-1.21.0

Conversation

@jrajahalme
Copy link
Copy Markdown
Member

@jrajahalme jrajahalme commented Feb 9, 2022

Update Envoy to release 1.21.0. Envoy Go API is updated to contain
the generated validation code.

cilium-envoy image is updated to support the newEgressMarkSourceEndpointId
option for the Cilium listener filter. NPDS field 'Policy' is renamed as
'EndpointID'. 'Policy' field was not used for anything, so might as
well recycle it while this API is not yet public.

Envoy retries may fail on "address already in use" when the original
source address and port are used on upstream connections. Cilium
typically does this in the egress proxy listeners. Fix this by using a
Cilium Envoy build that always sets SO_REUSEADDR when original source
address and port is used.

Signed-off-by: Jarno Rajahalme jarno@isovalent.com

Cilium host proxy is updated to Envoy release 1.21.0

@jrajahalme jrajahalme added area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. release-note/misc This PR makes changes that have no direct user impact. labels Feb 9, 2022
@jrajahalme jrajahalme requested a review from a team as a code owner February 9, 2022 10:46
@jrajahalme jrajahalme requested a review from a team February 9, 2022 10:46
@jrajahalme jrajahalme requested review from a team as code owners February 9, 2022 10:46
@jrajahalme jrajahalme marked this pull request as draft February 9, 2022 10:47
@jrajahalme jrajahalme marked this pull request as ready for review February 9, 2022 11:38
@jrajahalme
Copy link
Copy Markdown
Member Author

jrajahalme commented Feb 9, 2022

/test

Job 'Cilium-PR-K8s-GKE' failed and has not been observed before, so may be related to your PR:

Click to show.

Test Name

K8sKafkaPolicyTest Kafka Policy Tests KafkaPolicies

Failure Output

FAIL: Failed to resolve kafka-service DNS entry in pod empire-hq-69b8866d77-hhkks

If it is a flake, comment /mlh new-flake Cilium-PR-K8s-GKE so I can create a new GitHub issue to track it.

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-only --focus="K8sPolicy.*abel.*L7"

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-only --focus="K8sPolicyTest.*using namespace label and L7"

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-only --focus="K8sPolicyTest.*using.namespace.label.and.L7"

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-1.23-net-next

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-gke

@jrajahalme
Copy link
Copy Markdown
Member Author

Focused test run "failed" due to artifact collection failing when no tests were run:

09:59:19  Ran 0 of 401 Specs in 9.062 seconds
09:59:19  SUCCESS! -- 0 Passed | 0 Failed | 0 Pending | 401 Skipped
09:59:19  PASS

Envoy Go API is updated to contain the generated validation code.

Envoy image is updated to support the new EndpointId option for the
bpf_metadata listener filter. NPDS field 'Policy' is renamed as
'EndpointID'. 'Policy' field was not used for anything, so might as
well recycle it while this API is not yet public.

Envoy retries may fail on "address already in use" when the original
source address and port are used on upstream connections. Cilium
typically does this in the egress proxy listeners. Fix this by using a
Cilium Envoy build that always sets SO_REUSEADDR when original source
address and port is used.

Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
@jrajahalme
Copy link
Copy Markdown
Member Author

Fixed typo.

@jrajahalme
Copy link
Copy Markdown
Member Author

/test

@jrajahalme
Copy link
Copy Markdown
Member Author

runtime test failed with unrelated error:

14:44:28      runtime: /tmp/provision/compile.sh: line 28: cd: /home/vagrant/go/src/github.com/cilium/cilium: Stale file handle

This likely indicates a problem in the VM provisioning.

@jrajahalme
Copy link
Copy Markdown
Member Author

/test-runtime

Copy link
Copy Markdown
Member

@sayboras sayboras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

multi cluster test can be re-run after rebase with master.

obtained := getNetworkPolicy(ep, nil, IPv4Addr, L4Policy1, true, true)
expected := &cilium.NetworkPolicy{
Name: IPv4Addr,
Policy: uint64(Identity),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: uint64 conversion here is redundant

Copy link
Copy Markdown
Member

@joestringer joestringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

// Envoy since 1.20.0 uses SO_REUSEPORT on listeners by default.
// BPF TPROXY is currently not compatible with SO_REUSEPORT, so disable it.
// Note that this may degrade Envoy performance.
listenerConfig.EnableReusePort = &wrappers.BoolValue{Value: false}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Ack

expectedNetworkPolicy = &cilium.NetworkPolicy{
Name: ProdIPv4Addr.String(),
Policy: uint64(prodBarSecLblsCtx.ID),
EndpointId: uint64(eProdBar.ID),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, so the policy API between cilium-agent and the proxy has changed?

I think this is fine given that we always ship Envoy alongside Cilium. So we shouldn't need to deal with compatibility issues of mismatched versions attempting to use different field names from what the other binary expects.

@joestringer
Copy link
Copy Markdown
Member

Multicluster workflow was broken on master for a while, fixed in #18808 (merged yesterday). It's likely only failing because the PR has not been rebased. I think we're good to optimistically just merge this to unblock next steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. backport-done/1.11 The backport for Cilium 1.11.x for this PR is done. release-note/misc This PR makes changes that have no direct user impact.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants