k3s has removed some standard plugins, which we need. So fork and add it back.
Go to file
Songmin Li 6269f399a5
Fix unnecessary retrying when the link is down in dhcp.
From the dhcp daemon log, we can see that dhcp will fail to acquire
the lease when the link is down, and success on retry.

```
2024/08/21 21:30:44 macvlan-dhcp/eth1: acquiring lease
2024/08/21 21:30:44 Link "eth1" down. Attempting to set up
2024/08/21 21:30:44 network is down
2024/08/21 21:30:44 retrying in 2.641696 seconds
2024/08/21 21:30:49 macvlan-dhcp/eth1: lease acquired, expiration is 2024-08-22 09:30:49.755367962 +0800 CST m=+43205.712107889
```

After move the code of set up link to the beginning of the function, the
dhcp success on first time.

```
2024/08/21 22:04:02 macvlan-dhcp/eth1: acquiring lease
2024/08/21 22:04:02 Link "eth1" down. Attempting to set up
2024/08/21 22:04:05 macvlan-dhcp/eth1: lease acquired, expiration is 2024-08-22 10:04:05.297887726 +0800 CST m=+43203.081141304
```

Signed-off-by: Songmin Li <lisongmin@protonmail.com>
2024-08-24 19:54:34 +08:00
.github test: bump go version 2024-07-15 16:58:48 +02:00
integration bandwidth: possibility to exclude some subnets from traffic shaping 2024-04-08 15:39:46 +09:00
pkg ip: include peer name in error message 2024-04-26 15:49:08 -07:00
plugins Fix unnecessary retrying when the link is down in dhcp. 2024-08-24 19:54:34 +08:00
scripts Update to Go v1.22 in CI and release 2024-03-11 15:52:12 +01:00
vendor build(deps): bump the golang group with 2 updates 2024-06-24 02:12:28 +00:00
.gitignore Update Vendor 2018-09-21 00:34:07 +08:00
.golangci.yml fix lint errors 2023-10-30 17:55:55 +01:00
.yamllint.yml ci(lint): setup yamllint linter 2023-02-25 12:10:11 +00:00
build_linux.sh build: Use POSIX sh for shell scripts 2023-09-29 16:57:19 +02:00
build_windows.sh build: Use POSIX sh for shell scripts 2023-09-29 16:57:19 +02:00
CONTRIBUTING.md Merge pull request #396 from oshothebig/contributing-doc 2019-10-09 10:21:03 -05:00
DCO Add missing DCO 2018-10-11 16:15:24 +01:00
go.mod build(deps): bump the golang group with 2 updates 2024-06-24 02:12:28 +00:00
go.sum build(deps): bump the golang group with 2 updates 2024-06-24 02:12:28 +00:00
LICENSE Initial commit 2017-03-10 16:46:52 +01:00
OWNERS.md Update email to gmail 2022-12-07 11:57:16 -07:00
README.md dummy: Create a Dummy CNI plugin that creates a virtual interface. 2022-08-11 13:50:37 +01:00
RELEASING.md Add release process 2017-07-11 13:57:49 -07:00
test_linux.sh build: Use POSIX sh for shell scripts 2023-09-29 16:57:19 +02:00
test_windows.sh build: Use POSIX sh for shell scripts 2023-09-29 16:57:19 +02:00

test

Plugins

Some CNI network plugins, maintained by the containernetworking team. For more information, see the CNI website.

Read CONTRIBUTING for build and test instructions.

Plugins supplied:

Main: interface-creating

  • bridge: Creates a bridge, adds the host and the container to it.
  • ipvlan: Adds an ipvlan interface in the container.
  • loopback: Set the state of loopback interface to up.
  • macvlan: Creates a new MAC address, forwards all traffic to that to the container.
  • ptp: Creates a veth pair.
  • vlan: Allocates a vlan device.
  • host-device: Move an already-existing device into a container.
  • dummy: Creates a new Dummy device in the container.

Windows: Windows specific

  • win-bridge: Creates a bridge, adds the host and the container to it.
  • win-overlay: Creates an overlay interface to the container.

IPAM: IP address allocation

  • dhcp: Runs a daemon on the host to make DHCP requests on behalf of the container
  • host-local: Maintains a local database of allocated IPs
  • static: Allocate a single static IPv4/IPv6 address to container. It's useful in debugging purpose.

Meta: other plugins

  • tuning: Tweaks sysctl parameters of an existing interface
  • portmap: An iptables-based portmapping plugin. Maps ports from the host's address space to the container.
  • bandwidth: Allows bandwidth-limiting through use of traffic control tbf (ingress/egress).
  • sbr: A plugin that configures source based routing for an interface (from which it is chained).
  • firewall: A firewall plugin which uses iptables or firewalld to add rules to allow traffic to/from the container.

Sample

The sample plugin provides an example for building your own plugin.

Contact

For any questions about CNI, please reach out via:

If you have a security issue to report, please do so privately to the email addresses listed in the OWNERS file.