diff --git a/components/notebook-controller/controllers/notebook_controller.go b/components/notebook-controller/controllers/notebook_controller.go index c1dad38f983..edfaabfd651 100644 --- a/components/notebook-controller/controllers/notebook_controller.go +++ b/components/notebook-controller/controllers/notebook_controller.go @@ -439,6 +439,7 @@ func generateStatefulSet(instance *v1beta1.Notebook, isGenerateName bool) *appsv ssObjectMeta := metav1.ObjectMeta{ Name: instance.Name, Namespace: instance.Namespace, + Labels: map[string]string{}, } if isGenerateName { ssObjectMeta = metav1.ObjectMeta{ @@ -470,6 +471,11 @@ func generateStatefulSet(instance *v1beta1.Notebook, isGenerateName bool) *appsv }, } + sl := &ss.Labels + for k, v := range instance.Labels { + (*sl)[k] = v + } + // copy all of the Notebook labels to the pod including poddefault related labels l := &ss.Spec.Template.ObjectMeta.Labels for k, v := range instance.ObjectMeta.Labels { diff --git a/components/notebook-controller/controllers/notebook_controller_bdd_test.go b/components/notebook-controller/controllers/notebook_controller_bdd_test.go index 02d28211326..ab305c60485 100644 --- a/components/notebook-controller/controllers/notebook_controller_bdd_test.go +++ b/components/notebook-controller/controllers/notebook_controller_bdd_test.go @@ -37,6 +37,9 @@ var _ = Describe("Notebook controller", func() { Namespace = "default" timeout = time.Second * 10 interval = time.Millisecond * 250 + + testLabelName = "testLabel" + testLabelValue = "testLabelValue" ) Context("When validating the notebook controller", func() { @@ -47,6 +50,9 @@ var _ = Describe("Notebook controller", func() { ObjectMeta: metav1.ObjectMeta{ Name: Name, Namespace: Namespace, + Labels: map[string]string{ + testLabelName: testLabelValue, + }, }, Spec: nbv1beta1.NotebookSpec{ Template: nbv1beta1.NotebookTemplateSpec{ @@ -62,10 +68,7 @@ var _ = Describe("Notebook controller", func() { Eventually(func() bool { err := k8sClient.Get(ctx, notebookLookupKey, createdNotebook) - if err != nil { - return false - } - return true + return err == nil }, timeout, interval).Should(BeTrue()) /* Checking for the underlying statefulset. @@ -82,6 +85,10 @@ var _ = Describe("Notebook controller", func() { if err != nil { return false, err } + + By("By checking that the StatefulSet has identical Labels as the Notebook") + Expect(sts.GetLabels()).To(Equal(notebook.GetLabels())) + return true, nil }, timeout, interval).Should(BeTrue()) })