Skip to content

Conversation

vadorovsky
Copy link
Member

@vadorovsky vadorovsky commented Sep 25, 2020

Once this PR is merged, you can update the PR labels via:

$ for pr in 13241 13248 13187 13234 13162 13272; do contrib/backporting/set-labels.py $pr done 1.8; done

@vadorovsky vadorovsky requested a review from a team as a code owner September 25, 2020 10:28
@maintainer-s-little-helper maintainer-s-little-helper bot added backport/1.8 kind/backports This PR provides functionality previously merged into master. labels Sep 25, 2020
@vadorovsky
Copy link
Member Author

test-backport-1.8

@vadorovsky
Copy link
Member Author

@christarazi I'm a bit unsure if I backported your PR properly. I had a conflict with christarazi@c2ca49c.

Copy link
Member

@qmonnet qmonnet left a comment

Choose a reason for hiding this comment

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

  • #13234 -- EKS: improve rules for asymmetric routing (multi-node NodePort) (@qmonnet)

Looks good to me, thank you!

@qmonnet qmonnet requested a review from a team September 25, 2020 10:34
@aanm
Copy link
Member

aanm commented Sep 25, 2020

@mrostecki the code is failing:

13:00:33  
13:00:33  # github.com/cilium/cilium/test/k8sT
13:00:33  k8sT/Services.go:130:47: not enough arguments in call to kubectl.GetCiliumPodOnNode
13:00:33  	have (string)
13:00:33  	want (string, string)
13:00:33  
13:00:33  Ginkgo ran 1 suite in 18.309450923s
13:00:33  Test Suite Failed

@vadorovsky vadorovsky force-pushed the pr/v1.8-backport-2020-09-25 branch from 14ae365 to b4829be Compare September 25, 2020 14:01
@vadorovsky
Copy link
Member Author

test-backport-1.8

Copy link
Member

@christarazi christarazi left a comment

Choose a reason for hiding this comment

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

Disregard my previous comments, I realized that operator/crd_test.go doesn't have any logic related to deleting CRDs. This is good to go for me!

Copy link
Member

@fristonio fristonio left a comment

Choose a reason for hiding this comment

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

Looks Good for my changes. Thanks 🚀

@vadorovsky
Copy link
Member Author

Failure is legit, let me fix it.

@vadorovsky vadorovsky force-pushed the pr/v1.8-backport-2020-09-25 branch from b4829be to 6d1f79d Compare September 28, 2020 15:16
@vadorovsky
Copy link
Member Author

test-backport-1.8

@aanm
Copy link
Member

aanm commented Sep 28, 2020

@mrostecki I would suggest to drop the faulty commits so we can merge the other changes.

@vadorovsky vadorovsky force-pushed the pr/v1.8-backport-2020-09-25 branch from 6d1f79d to 952f092 Compare September 28, 2020 20:26
@vadorovsky
Copy link
Member Author

@aanm OK, let's try without #13228.

@vadorovsky
Copy link
Member Author

test-backport-1.8

@vadorovsky vadorovsky force-pushed the pr/v1.8-backport-2020-09-25 branch from 952f092 to 247b349 Compare September 28, 2020 23:54
@vadorovsky
Copy link
Member Author

test-backport-1.8

gandro and others added 8 commits September 29, 2020 11:20
[ upstream commit 8e24ea3 ]

Not all trace observation points have access to the connection tracking
state and populate the `Reason` field of `TraceNotify` accordingly. This
commit extracts a helper function to determine which trace points
currently do have access to connection tracking state.

Signed-off-by: Sebastian Wicki <sebastian@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 511b15d ]

This fixes a bug in the reply filter on `reply=false` would report flows
for which we actually do not know if they were replies or not. Not all
trace points have connection tracking state available, thus looking at
the reply flag alone is not sufficent to tell if something a flow was a
reply or not.

Ideally, we would fix this in the parser and make the `reply` an
optional boolean, so we can distinguish between a `false` value and an
absent value. This however is a breaking change in the Hubble API, which
we want to avoid. Therefore, this commit modifies the reply filter to
only report flows here for which we know that the reply field is
reliable.

Signed-off-by: Sebastian Wicki <sebastian@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 510566a ]

Signed-off-by: Kornilios Kourtis <kornilios@isovalent.com>
Co-authored-by: Joe Stringer <joe@cilium.io>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 01f8dcc ]

EKS needs some specific rules for NodePort traffic (see PR #12770, or
comments in the code, for details). The addition of part of these rules
were added to the body of the Reinitialize() function in the loader. To
make them easier to maintain or extend, let's move them to a dedicated
function called by Reinitialize(). No functional change.

Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 09e9a46 ]

EKS needs some specific rules for asymmetric routing with multi-node
NodePort traffic. These rules are implemented only for IPv4, so we can
avoid installing them when IPv4 is disabled. This is what this commit
does.

Note that this check is, in fact, not necessary at the moment, because
as the config package says: "IPv6 cannot be enabled in ENI IPAM mode".
So we always run with IPv4. But let's have it for good measure, to avoid
issues if IPv6 support comes in the future.

For the same reason, we also do not have to implement equivalent rules
for IPv6 at the moment.

Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit a301853 ]

Multi-node NodePort traffic on EKS needs specific rules regarding
asymmetric routing. These rules were implemented for the eth0 interface
(namely), because this is what EKS uses. With the default Amazon Linux 2
distribution. But EKS can also run with Ubuntu for example, and the name
of the interface is not the same in that case.

Instead of "eth0", use the interface with the dafault route. This is a
quick fix, and longer term we want to add the rules to all relevant
interfaces, as discussed in #12770.

Fixes: #12770
Fixes: #13143
Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 815be6a ]

EKS requires some specific rules for asymmetric routing with multi-node
NodePort traffic. These rules relies on the xt_connmark kernel module,
which is usually loaded by iptables when necessary.

The rules are installed when the selected IPAM is ENI, meaning they are
installed on AWS (but not only EKS). The xt_connmark module should be
loaded in a similar way, unless loading modules after boot has been
disabled, in which case the setup fails and the agent crashes.

Add a comment to at least help debug the issue. Longer term, we may want
to add more explicit hints to the logs if too many users hit the issue,
but that would require parsing iptables' output for the specific error,
so let's see how it goes with a simple comment in the code for now.

Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit d888057 ]

* This commit fixes an issue in nodeport service revnat handling where
  the interface index was not properly restored from the Conntrack state
  leading to packet redirects to invalid interface.

Signed-off-by: Deepesh Pathak <deepshpathak@gmail.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
fristonio and others added 2 commits September 29, 2020 11:20
[ upstream commit 71c5086 ]

Signed-off-by: Deepesh Pathak <deepshpathak@gmail.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
[ upstream commit 5c6aad6 ]

This commit removes the ability to delete CRDs from Cilium because that
would delete all the CRs in the cluster.

Follow-up from:
#11477 (comment)

Updates: #12737

Signed-off-by: Chris Tarazi <chris@isovalent.com>
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
@vadorovsky vadorovsky force-pushed the pr/v1.8-backport-2020-09-25 branch from 247b349 to b943a2b Compare September 29, 2020 09:21
@vadorovsky
Copy link
Member Author

test-backport-1.8

@vadorovsky
Copy link
Member Author

@vadorovsky
Copy link
Member Author

test-backport-1.8

@aanm aanm merged commit 854191e into v1.8 Sep 29, 2020
@aanm aanm deleted the pr/v1.8-backport-2020-09-25 branch September 29, 2020 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/backports This PR provides functionality previously merged into master.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants