@@ -198,17 +198,30 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
198198
199199 Expect (resource .Status .Phase ).To (Equal (feastdevv1 .PendingPhase ))
200200
201- // check deployment
202- deploy := & appsv1.Deployment {}
203- objMeta := feast .GetObjectMeta ()
204- err = k8sClient .Get (ctx , types.NamespacedName {
205- Name : objMeta .Name ,
206- Namespace : objMeta .Namespace ,
207- }, deploy )
201+ // check deployments per service
202+ registryDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .RegistryFeastType )
203+ Expect (err ).NotTo (HaveOccurred ())
204+ Expect (registryDeploy .Spec .Replicas ).To (Equal (int32Ptr (1 )))
205+ Expect (controllerutil .HasControllerReference (registryDeploy )).To (BeTrue ())
206+ Expect (registryDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
207+
208+ offlineDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .OfflineFeastType )
209+ Expect (err ).NotTo (HaveOccurred ())
210+ Expect (offlineDeploy .Spec .Replicas ).To (Equal (int32Ptr (1 )))
211+ Expect (controllerutil .HasControllerReference (offlineDeploy )).To (BeTrue ())
212+ Expect (offlineDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
213+
214+ onlineDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .OnlineFeastType )
215+ Expect (err ).NotTo (HaveOccurred ())
216+ Expect (onlineDeploy .Spec .Replicas ).To (Equal (int32Ptr (1 )))
217+ Expect (controllerutil .HasControllerReference (onlineDeploy )).To (BeTrue ())
218+ Expect (onlineDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
219+
220+ uiDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .UIFeastType )
208221 Expect (err ).NotTo (HaveOccurred ())
209- Expect (deploy .Spec .Replicas ).To (Equal (int32Ptr (1 )))
210- Expect (controllerutil .HasControllerReference (deploy )).To (BeTrue ())
211- Expect (deploy .Spec .Template .Spec .Containers ).To (HaveLen (4 ))
222+ Expect (uiDeploy .Spec .Replicas ).To (Equal (int32Ptr (1 )))
223+ Expect (controllerutil .HasControllerReference (uiDeploy )).To (BeTrue ())
224+ Expect (uiDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
212225 svc := & corev1.Service {}
213226 err = k8sClient .Get (ctx , types.NamespacedName {
214227 Name : feast .GetFeastServiceName (services .RegistryFeastType ),
@@ -243,7 +256,7 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
243256 deployList := appsv1.DeploymentList {}
244257 err = k8sClient .List (ctx , & deployList , listOpts )
245258 Expect (err ).NotTo (HaveOccurred ())
246- Expect (deployList .Items ).To (HaveLen (1 ))
259+ Expect (deployList .Items ).To (HaveLen (4 ))
247260
248261 svcList := corev1.ServiceList {}
249262 err = k8sClient .List (ctx , & svcList , listOpts )
@@ -264,16 +277,11 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
264277 },
265278 }
266279
267- // check deployment
268- deploy := & appsv1.Deployment {}
269- objMeta := feast .GetObjectMeta ()
270- err = k8sClient .Get (ctx , types.NamespacedName {
271- Name : objMeta .Name ,
272- Namespace : objMeta .Namespace ,
273- }, deploy )
280+ // check deployments per service
281+ registryDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .RegistryFeastType )
274282 Expect (err ).NotTo (HaveOccurred ())
275- Expect (deploy .Spec .Template .Spec .Containers ).To (HaveLen (4 ))
276- registryContainer := services .GetRegistryContainer (* deploy )
283+ Expect (registryDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
284+ registryContainer := services .GetRegistryContainer (* registryDeploy )
277285 Expect (registryContainer .Env ).To (HaveLen (1 ))
278286 env := getFeatureStoreYamlEnvVar (registryContainer .Env )
279287 Expect (env ).NotTo (BeNil ())
@@ -306,7 +314,10 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
306314 }
307315 Expect (repoConfig ).To (Equal (testConfig ))
308316
309- offlineContainer := services .GetOfflineContainer (* deploy )
317+ offlineDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .OfflineFeastType )
318+ Expect (err ).NotTo (HaveOccurred ())
319+ Expect (offlineDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
320+ offlineContainer := services .GetOfflineContainer (* offlineDeploy )
310321 Expect (offlineContainer .Env ).To (HaveLen (1 ))
311322 assertEnvFrom (* offlineContainer )
312323 env = getFeatureStoreYamlEnvVar (offlineContainer .Env )
@@ -326,7 +337,10 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
326337 Expect (err ).NotTo (HaveOccurred ())
327338 Expect (repoConfigOffline ).To (Equal (testConfig ))
328339
329- onlineContainer := services .GetOnlineContainer (* deploy )
340+ onlineDeploy , err := getDeploymentByType (ctx , k8sClient , resource , services .OnlineFeastType )
341+ Expect (err ).NotTo (HaveOccurred ())
342+ Expect (onlineDeploy .Spec .Template .Spec .Containers ).To (HaveLen (1 ))
343+ onlineContainer := services .GetOnlineContainer (* onlineDeploy )
330344 Expect (onlineContainer .Env ).To (HaveLen (3 ))
331345 Expect (onlineContainer .ImagePullPolicy ).To (Equal (corev1 .PullAlways ))
332346 env = getFeatureStoreYamlEnvVar (onlineContainer .Env )
@@ -395,12 +409,9 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
395409 feast .Handler .FeatureStore = resource
396410
397411 // check registry
398- err = k8sClient .Get (ctx , types.NamespacedName {
399- Name : objMeta .Name ,
400- Namespace : objMeta .Namespace ,
401- }, deploy )
412+ registryDeploy , err = getDeploymentByType (ctx , k8sClient , resource , services .RegistryFeastType )
402413 Expect (err ).NotTo (HaveOccurred ())
403- registryContainer = services .GetRegistryContainer (* deploy )
414+ registryContainer = services .GetRegistryContainer (* registryDeploy )
404415 env = getFeatureStoreYamlEnvVar (registryContainer .Env )
405416 Expect (env ).NotTo (BeNil ())
406417 fsYamlStr , err = feast .GetServiceFeatureStoreYamlBase64 ()
@@ -417,7 +428,9 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
417428 Expect (repoConfig ).To (Equal (testConfig ))
418429
419430 // check offline config
420- offlineContainer = services .GetRegistryContainer (* deploy )
431+ offlineDeploy , err = getDeploymentByType (ctx , k8sClient , resource , services .OfflineFeastType )
432+ Expect (err ).NotTo (HaveOccurred ())
433+ offlineContainer = services .GetOfflineContainer (* offlineDeploy )
421434 env = getFeatureStoreYamlEnvVar (offlineContainer .Env )
422435 Expect (env ).NotTo (BeNil ())
423436
@@ -433,7 +446,9 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
433446 Expect (repoConfigOffline ).To (Equal (testConfig ))
434447
435448 // check online config
436- onlineContainer = services .GetOnlineContainer (* deploy )
449+ onlineDeploy , err = getDeploymentByType (ctx , k8sClient , resource , services .OnlineFeastType )
450+ Expect (err ).NotTo (HaveOccurred ())
451+ onlineContainer = services .GetOnlineContainer (* onlineDeploy )
437452 env = getFeatureStoreYamlEnvVar (onlineContainer .Env )
438453 Expect (env ).NotTo (BeNil ())
439454
@@ -456,3 +471,32 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
456471 })
457472 })
458473})
474+
475+ func getDeploymentByType (ctx context.Context , c client.Client , resource * feastdevv1.FeatureStore , feastType services.FeastServiceType ) (* appsv1.Deployment , error ) {
476+ deploy := & appsv1.Deployment {}
477+ name := services .GetFeastServiceName (resource , feastType )
478+ if err := c .Get (ctx , types.NamespacedName {Name : name , Namespace : resource .Namespace }, deploy ); err == nil {
479+ return deploy , nil
480+ } else if ! errors .IsNotFound (err ) {
481+ return nil , err
482+ }
483+
484+ reqName , err := labels .NewRequirement (services .NameLabelKey , selection .Equals , []string {resource .Name })
485+ if err != nil {
486+ return nil , err
487+ }
488+ reqType , err := labels .NewRequirement (services .ServiceTypeLabelKey , selection .Equals , []string {string (feastType )})
489+ if err != nil {
490+ return nil , err
491+ }
492+ selector := labels .NewSelector ().Add (* reqName , * reqType )
493+ listOpts := & client.ListOptions {Namespace : resource .Namespace , LabelSelector : selector }
494+ deployList := appsv1.DeploymentList {}
495+ if err := c .List (ctx , & deployList , listOpts ); err != nil {
496+ return nil , err
497+ }
498+ if len (deployList .Items ) == 0 {
499+ return nil , fmt .Errorf ("deployment for %s not found" , feastType )
500+ }
501+ return & deployList .Items [0 ], nil
502+ }
0 commit comments