-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
network/kubevirt-ipam-controller: Add new net-attach-def resource
This resource does not belong to kubevirt-ipam-controller, but is currently piggy-backing this component in order to deploy the primary user-defined-network net-attach-def [0]. This net-attach-def is deployed on default namespace, as this way it will be available to all VMs that need to consume it. [0] https://kubevirt.io/user-guide/network/network_binding_plugins/#deployment Signed-off-by: Ram Lavi <[email protected]>
- Loading branch information
Showing
4 changed files
with
83 additions
and
1 deletion.
There are no files selected for viewing
18 changes: 18 additions & 0 deletions
18
data/kubevirt-ipam-controller/004-primary-udn-networkattachdef.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{{ if .EnableNetworkAttachmentDefinition }} | ||
--- | ||
apiVersion: "k8s.cni.cncf.io/v1" | ||
kind: NetworkAttachmentDefinition | ||
metadata: | ||
name: primary-user-defined-network | ||
namespace: default | ||
spec: | ||
config: '{ | ||
"cniVersion": "1.0.0", | ||
"name": "primary-user-defined-network", | ||
"plugins": [ | ||
{ | ||
"type": "cni-passt-binding-plugin" | ||
} | ||
] | ||
}' | ||
{{ end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package network | ||
|
||
import ( | ||
. "github.com/onsi/ginkgo/v2" | ||
. "github.com/onsi/gomega" | ||
|
||
osv1 "github.com/openshift/api/operator/v1" | ||
v1 "k8s.io/api/core/v1" | ||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" | ||
"k8s.io/apimachinery/pkg/runtime/schema" | ||
|
||
cnao "github.com/kubevirt/cluster-network-addons-operator/pkg/apis/networkaddonsoperator/shared" | ||
) | ||
|
||
var _ = Describe("Testing kubevirt ipam controller", func() { | ||
Context("Render KubevirtIpamController", func() { | ||
conf := &cnao.NetworkAddonsConfigSpec{ImagePullPolicy: v1.PullAlways, Multus: &cnao.Multus{}, KubevirtIpamController: &cnao.KubevirtIpamController{}, PlacementConfiguration: &cnao.PlacementConfiguration{Workloads: &cnao.Placement{}}} | ||
manifestDir := "../../data" | ||
openshiftNetworkConf := &osv1.Network{} | ||
clusterInfo := &ClusterInfo{SCCAvailable: true, OpenShift4: false} | ||
expectedGroupVersionKind := schema.GroupVersionKind{ | ||
Group: "k8s.cni.cncf.io", | ||
Kind: "NetworkAttachmentDefinition", | ||
Version: "v1", | ||
} | ||
const expectedName = "primary-user-defined-network" | ||
|
||
It("and NetAttachDefAvailable resource is available, should add the primary-udn network-attach-def obj", func() { | ||
clusterInfo.NetAttachDefAvailable = true | ||
objs, err := Render(conf, manifestDir, openshiftNetworkConf, clusterInfo) | ||
Expect(err).NotTo(HaveOccurred()) | ||
Expect(objs).NotTo(BeEmpty()) | ||
|
||
Expect(objs).To(ContainElement( | ||
SatisfyAll( | ||
WithTransform(func(obj *unstructured.Unstructured) string { | ||
return obj.GetName() | ||
}, Equal(expectedName)), | ||
WithTransform(func(obj *unstructured.Unstructured) schema.GroupVersionKind { | ||
return obj.GetObjectKind().GroupVersionKind() | ||
}, Equal(expectedGroupVersionKind)), | ||
), | ||
)) | ||
}) | ||
It("and NetAttachDefAvailable resource is not available, should not add the primary-udn network-attach-def obj", func() { | ||
clusterInfo.NetAttachDefAvailable = false | ||
objs, err := Render(conf, manifestDir, openshiftNetworkConf, clusterInfo) | ||
Expect(err).NotTo(HaveOccurred()) | ||
Expect(objs).NotTo(BeEmpty()) | ||
|
||
Expect(objs).ToNot(ContainElement( | ||
SatisfyAll( | ||
WithTransform(func(obj *unstructured.Unstructured) string { | ||
return obj.GetName() | ||
}, Equal(expectedName)), | ||
WithTransform(func(obj *unstructured.Unstructured) schema.GroupVersionKind { | ||
return obj.GetObjectKind().GroupVersionKind() | ||
}, Equal(expectedGroupVersionKind)), | ||
), | ||
)) | ||
}) | ||
}) | ||
}) |