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

[Windows] Implement Pod configuration on Windows with HNS Endpoint #372

Merged
merged 1 commit into from
Mar 12, 2020

Conversation

wenyingd
Copy link
Contributor

  1. Use linux and windows as suffix for OS specific functions under pkg/agent/cniserver.
  2. Use OVS internal port for Pod vNIC on Windows, while using OVS port on Linux.
  3. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
  4. kubelet calls CNI Add for both the sandbox and workload container. Only one
    HNSEndpoint is created for the containers in the same Pod, and attached on all
    the containers in the same Pod.
  5. GARP is not needed to be sent explicitly on Windows, which could be send out by
    the system automatically after an IP address is added on the network Interface.

@antrea-bot
Copy link
Collaborator

Thanks for your PR.
Unit tests and code linters are run automatically every time the PR is updated.
E2e, conformance and network policy tests can only be triggered by a member of the vmware-tanzu organization. Regular contributors to the project should join the org.

The following commands are available:

  • /test-e2e: to trigger e2e tests.
  • /skip-e2e: to skip e2e tests.
  • /test-conformance: to trigger conformance tests.
  • /skip-conformance: to skip conformance tests.
  • /test-networkpolicy: to trigger networkpolicy tests.
  • /skip-networkpolicy: to skip networkpolicy tests.
  • /test-all: to trigger all tests.
  • /skip-all: to skip all tests.

These commands can only be run by members of the vmware-tanzu organization.

@wenyingd wenyingd mentioned this pull request Feb 10, 2020
21 tasks
@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from a681dbb to ec38076 Compare February 10, 2020 02:39
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd force-pushed the windows_PodConfiguration branch 3 times, most recently from 1b5e5b6 to 1cf31d5 Compare February 12, 2020 14:01
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd changed the base branch from master to windows February 13, 2020 01:43
@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from 1cf31d5 to d0802bf Compare February 13, 2020 15:48
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from d0802bf to 0581554 Compare February 17, 2020 04:58
@wenyingd wenyingd changed the title Implement Pod configuration on Windows with HNS Endpoint [Windows] Implement Pod configuration on Windows with HNS Endpoint Feb 17, 2020
@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from 0581554 to 3ae3347 Compare February 18, 2020 11:48
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from 3ae3347 to d85eae7 Compare February 19, 2020 11:42
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from d85eae7 to b84bf2e Compare February 19, 2020 12:39
@wenyingd
Copy link
Contributor Author

/test-all

pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_linux.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_unix.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_windows.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_unix.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration.go Show resolved Hide resolved
pkg/agent/cniserver/container_configuration_unix.go Outdated Show resolved Hide resolved
@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from b84bf2e to 1587817 Compare February 21, 2020 05:52
@wenyingd
Copy link
Contributor Author

/test-all

@lzhecheng
Copy link
Contributor

/test-e2e

@wenyingd wenyingd force-pushed the windows_PodConfiguration branch 2 times, most recently from 8918203 to c1e7ab2 Compare February 24, 2020 10:15
@wenyingd
Copy link
Contributor Author

/test-all

pkg/agent/cniserver/ipam/ipam_service.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration.go Outdated Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration.go Show resolved Hide resolved
pkg/agent/cniserver/pod_configuration_windows.go Outdated Show resolved Hide resolved
@wenyingd wenyingd force-pushed the windows_PodConfiguration branch from efc6fbf to 196072f Compare March 11, 2020 01:47
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd
Copy link
Contributor Author

/test-conformance

1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
@wenyingd
Copy link
Contributor Author

/test-all

1 similar comment
@wenyingd
Copy link
Contributor Author

/test-all

@wenyingd wenyingd merged commit 20b42d4 into antrea-io:windows Mar 12, 2020
@wenyingd wenyingd deleted the windows_PodConfiguration branch March 12, 2020 06:14
wenyingd added a commit that referenced this pull request Mar 22, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit that referenced this pull request Mar 24, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit that referenced this pull request Mar 30, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit that referenced this pull request Apr 8, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit that referenced this pull request May 6, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit to wenyingd/antrea that referenced this pull request May 7, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit to wenyingd/antrea that referenced this pull request May 8, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
wenyingd added a commit that referenced this pull request May 11, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit to ruicao93/antrea that referenced this pull request May 25, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit to ruicao93/antrea that referenced this pull request May 25, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit to ruicao93/antrea that referenced this pull request May 27, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit to ruicao93/antrea that referenced this pull request May 27, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit to ruicao93/antrea that referenced this pull request May 27, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
ruicao93 pushed a commit that referenced this pull request May 27, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
McCodeman pushed a commit to McCodeman/antrea that referenced this pull request Jun 2, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
McCodeman pushed a commit that referenced this pull request Jun 2, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
GraysonWu pushed a commit to GraysonWu/antrea that referenced this pull request Sep 22, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
GraysonWu pushed a commit to GraysonWu/antrea that referenced this pull request Sep 23, 2020
1. HNSEndpoint is created and attached on a Windows container to work as the vNIC.
2. kubelet calls CNI Add for both the sandbox and workload container. Only one
   HNSEndpoint is created for the containers in the same Pod, and attached on all
   the containers in the same Pod.
3. Only one OVS internal port is creatd for a single Pod.
4. GARP is not needed to be sent explicitly on Windows, which could be send out by
   the system automatically after an IP address is added on the network Interface.
5. "netns" and "netlink" are valid only on Linux. Use a seperate file for OS
   specified functions used in Pod configuration.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants