-
Notifications
You must be signed in to change notification settings - Fork 363
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
Fix Kind support (Linux hosts only) #137
Conversation
Thanks for your PR. The following commands are available:
|
@@ -66,6 +66,11 @@ func setupInterface(podName string, podNamespace string, ifname string, netns ns | |||
containerIface.Sandbox = netns.Path() | |||
hostIface.Name = hostVeth.Name | |||
hostIface.Mac = hostVeth.HardwareAddr.String() | |||
// TODO: should be conditional on the OVS datapath type | |||
// Waiting for https://github.com/vmware-tanzu/antrea/pull/125 to be merged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
waiting for #125 to be merged and I will update this PR
/test-e2e |
I'm working on an additional commit for this that will enable a CI job for a Kind cluster. |
e9e11b4
to
eb106dc
Compare
The CI job was configured and works properly! |
/test-e2e |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question - how could user switch from netdev to kernel datapath or the other way? Do they need some manual cleanup?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, some minor comments
e10f0dc
to
7ed4b42
Compare
7ed4b42
to
676797b
Compare
676797b
to
c7c497d
Compare
I have updated the PR now that #125 has been merged and I have squashed all my commits. |
/test-e2e |
c7c497d
to
fd42001
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Could you answer my question - what will happen if we switch between netdev and kernel datapath (not in a Kind env but a normal K8s cluster)? Do we need any manual cleanup before changing the datapath?
@jianjuns That's a good question. We definitely need to think about what should be cleaned up automatically when the agent Pod exits. At the moment we do not delete the I think ideally we want all of this:
I can take care of 3 in a follow-up PR, but do you have any good ideas on handling 1 & 2 (assuming OVS can be patched so that flows are not deleted on daemon restart). |
|
|
/test-e2e |
The following changes were required: * Disable TX HW checksum offload in containers. This is done in the Antrea CNI server when setting-up Pod networking, using an ioctl ethtool system call. * Disable TX HW checksum offload in the Linux host for the veth interface of each Kind Node. This must be done by invoking an additional script (hack/kind_linux.sh) after creating the Kind cluster. * Create a secondary br-phy bridge on each Node, as required by OVS userspace tunneling. * Use a new version of start_ovs (start_ovs_netdev) which modifies the ovs-ctl script in-place to avoid loading the kernel module. Refer to antrea-io#14 for the rationale for all the above bullet points. A new test "provider" was added to the e2e test framework so that all the e2e tests can be run on Kind clusters. As part of this, some changes to the framework had to be performed. For example it is impractical to run SSH commands on Kind Nodes - as they do not have an SSH server - so instead we use "docker exec". Fixes antrea-io#14 Fixes antrea-io#13
fd42001
to
d825508
Compare
/test-e2e |
@jianjuns I need a new approve for this, I renamed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here you go.
The following changes were required:
Antrea CNI server when setting-up Pod networking, using an ioctl
ethtool system call.
interface of each Kind Node. This must be done by invoking an
additional script (hack/kind_linux.sh) after creating the Kind
cluster.
userspace tunneling.
ovs-ctl script in-place to avoid loading the kernel module.
Refer to #14 for the rationale for all the above bullet points.
A new test "provider" was added to the e2e test framework so that all
the e2e tests can be run on Kind clusters. As part of this, some
changes to the framework had to be performed. For example it is
impractical to run SSH commands on Kind Nodes - as they do not have an
SSH server - so instead we use "docker exec".
Fixes #14
Fixes #13