Support multiple vifs per Pod
Important: This blueprint is not about generic multi homed pods, which will be in another blueprint in reference to kubernetes multiple network support.
It is desirable for pods to be able to be attached to multiple OpenStack vifs. Those vifs may belong to one or more networks.
Things to do:
0.- Update the contract between the controller and the CNI plugins so that the annotation the controller writes and the CNI watches for is no longer 'openstack.
1.- CNI: vif handler to watch for 'openstack.
2.- CNI: vif handler to iterate over all the vifs in the annotation. Only the first one should be reported as long as the CNI spec requested is < 0.3.1
3. Controller: refactor vif handler to allow for extra vifs to be specified by Neutron uuids as annotations. The workflow should be:
3.1.- The user creates the Pod spec including an annotation like the two following:
3.1.1.- openstack.
UUID of a neutron subnet to plug into: This will allow the spec to work with replication controllers while still allowing multiple vifs. The Controller should create a new port for each of the subnets listed (they could be repeated) and add it to the kuryr-vifs annotation list.
3.1.2.- openstack.
UUID of specific ports that should be bound on the pod. Obviously, this will make replica binding fail, since the ports will already be bound and active. The Controller should just get the port info into vif form and add it to the kuryr-vifs annotation list.
Important considerations: It is unclear whether the annotations in the form of 3.1.1 will be superseded and deprecated once we have multi-homed pod support following the K8s upstream design and PoC
Blueprint information
- Status:
- Complete
- Approver:
- Irena Berezovsky
- Priority:
- Medium
- Drafter:
- Antoni Segura Puimedon
- Direction:
- Approved
- Assignee:
- Gary Loughnane
- Definition:
- Approved
- Series goal:
- Accepted for rocky
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Daniel Mellado
- Completed by
- Michal Dulko
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Allow passing multiple VIFs to CNI
Addressed by: https:/
[DRAFT] Allow requesting additional VIFs via annotation
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Implement multi-vif driver
Addressed by: https:/
Add multi-vif driver and related handler changes
Addressed by: https:/
Add multi-vif driver and related handler changes
Addressed by: https:/
[WIP] Implement NPWG multi-vif driver