docs/doc/source/usertasks/kubernetes/vlan-plugin-37938fe8578f.rst
Ron Stone 539fb24b44 Container Network Interface (CNI) Plugin Up-version
Add descriptions and examples of new CNI plugins.
Note: Bond plugin is covered in https://review.opendev.org/c/starlingx/docs/+/837599
Content restructuring per patchset 1 comments.
Patchset 2 review updates.
Patchset 3 review updates.
Fix merge conflict.
eth1001 > eth1000 for consistency in example.
Patchset 6 review updates.

Story: 2009832
Task: 45235

Signed-off-by: Ron Stone <ronald.stone@windriver.com>
Change-Id: Idab0308ff8f973c4aa20b66fbcfb932bf3dcf92c
2022-06-02 12:58:54 -04:00

1.9 KiB

VLAN Plugin

The plugin allows a virtual device to be created in the container that is attached to a physical device in the host via a veth pair. The veth in the host namespace will be a VLAN sub-interface of the physical device.

The following options are used to configure the plugin:

name (string, required)

The name of the network.

type (string, required)

vlan

master (string, required)

The name of the host interface to use. Default: default route interface.

vlanId (integer, required)

Id of the .

mtu (integer, optional)

Explicitly set to the specified value. Default: chosen by the kernel.

ipam (dictionary, required)

configuration to be used for this network. For an interface without an IP address, use an empty dictionary.

The following example creates a pod containing an additional network interface corresponding to a interface. There is no need to apply the vlan tag in the container.

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: vlan0
spec:
  config: '{
      "cniVersion": "0.3.1",
      "name": "vlan0",
      "type": "vlan",
      "master": "eth1001",
      "vlanId": 100,
      "ipam": {
          "type": "static",
          "addresses": [
              {
                  "address": "10.10.10.1/24",
                  "gateway": "10.10.10.2"
              }
          ]
      }
    }'
---
apiVersion: v1
kind: Pod
metadata:
  name: vlanpod0
  annotations:
    k8s.v1.cni.cncf.io/networks: '[
            { "name": "vlan0" }
    ]'
spec:
  containers:
  - name: vlan0
    image: centos/tools
    imagePullPolicy: IfNotPresent
    command: [ "/bin/bash", "-c", "--" ]
    args: [ "while true; do sleep 300000; done;" ]