Skip to content

Commit

Permalink
Add unit test for multus admission controller for HyperShift
Browse files Browse the repository at this point in the history
  • Loading branch information
bryan-cox committed Mar 19, 2024
1 parent 55994db commit 667b879
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions pkg/network/multus_admission_controller_test.go
Expand Up @@ -84,6 +84,69 @@ func TestRenderMultusAdmissionController(t *testing.T) {
g.Expect(objs).To(ContainElement(HaveKubernetesID("Deployment", "openshift-multus", "multus-admission-controller")))
}

// TestRenderMultusAdmissionController has some simple rendering tests
func TestRenderMultusAdmissionControllerWithHyperShift(t *testing.T) {
g := NewGomegaWithT(t)

crd := MultusAdmissionControllerConfig.DeepCopy()
config := &crd.Spec
disabled := true
config.DisableMultiNetwork = &disabled
fillDefaults(config, nil)

fakeClient := cnofake.NewFakeClient(
&corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "test1-ignored",
Labels: map[string]string{
"openshift.io/cluster-monitoring": "true",
},
},
},
&corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "test2-not-ignored",
},
},
&corev1.Namespace{ObjectMeta: metav1.ObjectMeta{
Name: "test3-ignored",
Labels: map[string]string{
"openshift.io/cluster-monitoring": "true",
},
},
})
bootstrap := fakeBootstrapResult()

t.Setenv("HYPERSHIFT", "true")
t.Setenv("HOSTED_CLUSTER_NAME", "MyCluster")
t.Setenv("HOSTED_CLUSTER_NAMESPACE", "MyNamespace")
t.Setenv("RUN_AS_USER", "1001")
t.Setenv("OPENSHIFT_RELEASE_IMAGE", "MyImage")
t.Setenv("OVN_CONTROL_PLANE_IMAGE", "MyCPOImage")
t.Setenv("CA_CONFIG_MAP", "MyCM")
t.Setenv("CA_CONFIG_MAP_KEY", "MyCMKey")

// disable MultusAdmissionController
objs, err := renderMultusAdmissionController(config, manifestDir, false, bootstrap, fakeClient)
g.Expect(err).NotTo(HaveOccurred())
g.Expect(objs).NotTo(ContainElement(HaveKubernetesID("Deployment", "openshift-multus", "multus-admission-controller")))

// enable MultusAdmissionController
enabled := false
config.DisableMultiNetwork = &enabled
objs, err = renderMultusAdmissionController(config, manifestDir, false, bootstrap, fakeClient)
g.Expect(err).NotTo(HaveOccurred())
g.Expect(objs).To(ContainElement(HaveKubernetesID("Deployment", "openshift-multus", "multus-admission-controller")))

// Check rendered object
g.Expect(len(objs)).To(Equal(10))
g.Expect(objs).To(ContainElement(HaveKubernetesID("Service", "openshift-multus", "multus-admission-controller")))
g.Expect(objs).To(ContainElement(HaveKubernetesID("ClusterRole", "", "multus-admission-controller-webhook")))
g.Expect(objs).To(ContainElement(HaveKubernetesID("ClusterRoleBinding", "", "multus-admission-controller-webhook")))
g.Expect(objs).To(ContainElement(HaveKubernetesID("ValidatingWebhookConfiguration", "", names.MULTUS_VALIDATING_WEBHOOK)))
g.Expect(objs).To(ContainElement(HaveKubernetesID("Deployment", "openshift-multus", "multus-admission-controller")))
}

// TestRenderMultusAdmissionControllerGetNamespace tests getOpenshiftNamespaces()
func TestRenderMultusAdmissionControllerGetNamespace(t *testing.T) {
g := NewGomegaWithT(t)
Expand Down

0 comments on commit 667b879

Please sign in to comment.