phoracek/passt-kubevirt-network-binding-plugin

Passt network binding plugin configures VMs Passt interface using Kubevirts hook sidecar interface.

★ 0Forks 0GoGitHub ↗Compare

README

Passt KubeVirt network binding plugin

Passt network binding plugin configures VMs Passt interface using Kubevirts hook sidecar interface.

It will be used by Kubevirt to offload Passt networking configuration.

NOTE: Passt network binding is supported for pod network interfaces only.

Usage

Deploy the passt binding plugin binary on the cluster:

kubectl apply -f manifests/cni-ds.yaml

Register the passt binding plugin with its sidecar image:

apiVersion: kubevirt.io/v1
kind: KubeVirt
metadata:
  name: kubevirt
  namespace: kubevirt
spec:
  configuration:
    network:
      binding:
        passt:
          sidecarImage: registry:5000/kubevirt/network-passt-binding:devel
  ...

In the VM spec, set interface to use passt binding plugin:

apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
  name: vmi-passt
spec:
  domain:
    devices:
      interfaces:
      - name: passt
        binding:
          name: passt
  ...
  networks:
  - name: passt-net
    pod: {}
  ...

Development

See DEVELOPMENT.md to find some basic commands to interact with the project. To learn more, read the code. A good place to start would be cmd/*.

License

Software of this project is distributed under the terms of the Apache license version 2. See LICENSE for details.

TODO

  • GitHub actions to check PRs (format and build).
  • GitHub actions to publish new version.
  • Containerized runs of CNI tests.
  • Sidecar.

Contributors

phoracek

Issues