Skip to content

Commit 64fdadb

Browse files
committed
Support KubevirtIpamController plugin
Signed-off-by: Or Shoval <[email protected]>
1 parent 0634b4f commit 64fdadb

File tree

17 files changed

+7140
-52
lines changed

17 files changed

+7140
-52
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ gen-manifests: manifest-templator
160160
MACVTAP_CNI_IMAGE=$(MACVTAP_CNI_IMAGE) \
161161
MULTUS_DYNAMIC_NETWORKS_CONTROLLER_IMAGE=$(MULTUS_DYNAMIC_NETWORKS_CONTROLLER_IMAGE) \
162162
KUBE_SECONDARY_DNS_IMAGE=$(KUBE_SECONDARY_DNS_IMAGE) \
163+
KUBEVIRT_IPAM_CONTROLLER_IMAGE=$(KUBEVIRT_IPAM_CONTROLLER_IMAGE) \
163164
CORE_DNS_IMAGE=$(CORE_DNS_IMAGE) \
164165
KUBE_RBAC_PROXY_IMAGE=$(KUBE_RBAC_PROXY_IMAGE) \
165166
./hack/generate-manifests.sh

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ spec:
2020
ovs: {}
2121
macvtap: {}
2222
kubeSecondaryDNS: {}
23+
kubevirtIpamController: {}
2324
imagePullPolicy: Always
2425
```
2526
@@ -180,6 +181,25 @@ Additionally, container image used to deliver this plugin can be set using
180181
`KUBE_SECONDARY_DNS_IMAGE` environment variable in operator
181182
deployment manifest.
182183

184+
## kubevirtIpamController
185+
186+
[This controller](https://github.com/maiqueb/kubevirt-ipam-claims)
187+
allows to support IPAM for secondary networks.
188+
189+
```yaml
190+
apiVersion: networkaddonsoperator.network.kubevirt.io/v1
191+
kind: NetworkAddonsConfig
192+
metadata:
193+
name: cluster
194+
spec:
195+
multus: {}
196+
kubevirtIpamController: {}
197+
```
198+
199+
Additionally, container image used to deliver this plugin can be set using
200+
`KUBEVIRT_IPAM_CONTROLLER_IMAGE` environment variable in operator
201+
deployment manifest.
202+
183203
## Image Pull Policy
184204

185205
Administrator can specify [image pull policy](https://kubernetes.io/docs/concepts/containers/images/)

automation/components-functests.setup.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ spec:
6060
ovs: {}
6161
macvtap: {}
6262
kubeSecondaryDNS: {}
63+
kubevirtIpamController: {}
6364
imagePullPolicy: Always
6465
EOF
6566

components.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ components:
1717
branch: main
1818
update-policy: tagged
1919
metadata: v0.43.0
20+
kubevirt-ipam-controller:
21+
url: https://github.com/maiqueb/kubevirt-ipam-claims
22+
commit: 81c445c0d7c6841329ac66bba41097733370e0d2
23+
branch: main
24+
update-policy: tagged
25+
metadata: v0.1.0-alpha
2026
linux-bridge:
2127
url: https://github.com/containernetworking/plugins
2228
commit: 14bdce598f9d332303c375c35719c4a158f1e7db
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.13.0
7+
name: ipamclaims.k8s.cni.cncf.io
8+
spec:
9+
group: k8s.cni.cncf.io
10+
names:
11+
kind: IPAMClaim
12+
listKind: IPAMClaimList
13+
plural: ipamclaims
14+
singular: ipamclaim
15+
scope: Namespaced
16+
versions:
17+
- name: v1alpha1
18+
schema:
19+
openAPIV3Schema:
20+
description: IPAMClaim is the Schema for the IPAMClaim API
21+
properties:
22+
apiVersion:
23+
description: 'APIVersion defines the versioned schema of this representation
24+
of an object. Servers should convert recognized schemas to the latest
25+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
26+
type: string
27+
kind:
28+
description: 'Kind is a string value representing the REST resource this
29+
object represents. Servers may infer this from the endpoint the client
30+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
31+
type: string
32+
metadata:
33+
type: object
34+
spec:
35+
properties:
36+
interface:
37+
description: The pod interface name for which this allocation was
38+
created
39+
type: string
40+
network:
41+
description: The network name for which this persistent allocation
42+
was created
43+
type: string
44+
required:
45+
- interface
46+
- network
47+
type: object
48+
status:
49+
properties:
50+
ips:
51+
description: The list of IP addresses (v4, v6) that were allocated
52+
for the pod interface
53+
items:
54+
type: string
55+
type: array
56+
required:
57+
- ips
58+
type: object
59+
type: object
60+
served: true
61+
storage: true
62+
subresources:
63+
status: {}

0 commit comments

Comments
 (0)