Add SRIOV support to kuryr-kubernetes

Registered by Ashish Billore

Add capability in kuryr to provision sriov ports for kubernetes pods.

As discussed with kuryr team (during May 2017 Boston Summit), here are the details we would like to proceed with, related to sriov support in kuryr-kubernetes:

What to support (features):

- Capability to provision 'direct' ports on neutron for assignment to pods in kubernetes.
- multiple (zero or more) direct ports (for now VFs) can be requested for assignment to a single pod.
- Direct ports (VFs) can be allocated from one or more physnet (PF) available on the host (Kubernetes node).
- Kubernetes should be informed about this VF allocation, for bookkeeping and to enable scheduling of pods based on the requested direct ports (VFs). One possible mechanism is to leverage annotation for presenting this information over to Kubernetes.
- Cleanup and releasing of there 'direct' ports (VFs) should happen on appropriate action / life-cycle events (for example, when the pod using these direct ports is deleted) of the pods using these sriov ports (VFs).

How to support:

Implement a sriov handler for kuryr-kubernetes, which subscribes to Pod events from k8s-api. This handler receives: number of 'direct' ports (VFs) needed and the subnet-physnet mapping from the request and allocates requested number of 'direct' ports (VFs) on respective subnet for the Pod. In order to make kubernetes aware of this allocation, the Pod object is annotated with requested VIF information.

Related patches:

Refer to Whiteboard section below.

Blueprint information

Antoni Segura Puimedon
Ashish Billore
Needs approval
Danil Golov
Series goal:
Proposed for queens
Milestone target:
Started by
Ashish Billore
Completed by
Danil Golov

Related branches



Gerrit topic:,topic:bp/kuryr-kubernetes-sriov-support,n,z

Addressed by:
    Add kuryr-sriov spec proposal

Addressed by:
    [WIP] Add sriov handler to kuryr-kubernetes

Addressed by:
    [WIP] Add kuryr-sriov-cni

Addressed by:
    Allow setting specific ports for SRIOV handler

Addressed by:
    Allow passing multiple VIFs to CNI

Addressed by:
    Add SR-IOV documentation

Addressed by:
    Allow setting specific ports for SRIOV handler

Addressed by:
    [DRAFT] Allow requesting additional VIFs via annotation

Addressed by:
    Add VIF-Handler And Drivers Design approach

Gerrit topic:,topic:bp/kuryr-kubernetes-sriov-support-refactor,n,z

Addressed by:
    Add SR-IOV binding driver to CNI

Addressed by:
    Add SR-IOV capabilities to VIF handler

Gerrit topic:,topic:sriov-upstream-patches,n,z

Addressed by:
    Separate helper function for pod

Addressed by:
    Add HOWTO for SRIOV use case

Addressed by:
    Introduce test case document for SRIOV functionality

Gerrit topic:,topic:600022,n,z

Addressed by:
    Fix a misprint in SR-IOV binding driver


Work Items

This blueprint contains Public information 
Everyone can see this information.