Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
* Refactored the code to avoid the redundent code. moved common code …
…to util.go

* Incorporated code review comments. Added assertion for environment variables at the container level.

Signed-off-by: lrangine <19699092+lokeshrangineni@users.noreply.github.com>
  • Loading branch information
lokeshrangineni committed Jan 11, 2025
commit f3623f1f5c4f3fda1dc90eebdf16a21dbb910403
Original file line number Diff line number Diff line change
Expand Up @@ -202,26 +202,7 @@ var _ = Describe("FeatureStore Controller - db storage services", func() {
Expect(k8sClient.Create(ctx, secret)).To(Succeed())
}

By("creating the config map and secret for envFrom")
envFromConfigMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
Data: map[string]string{"example-key": "example-value"},
}
err = k8sClient.Create(context.TODO(), envFromConfigMap)
Expect(err).ToNot(HaveOccurred())

envFromSecret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
StringData: map[string]string{"secret-key": "secret-value"},
}
err = k8sClient.Create(context.TODO(), envFromSecret)
Expect(err).ToNot(HaveOccurred())
createEnvFromSecretAndConfigMap()

By("creating the custom resource for the Kind FeatureStore")
err = k8sClient.Get(ctx, typeNamespacedName, featurestore)
Expand Down Expand Up @@ -277,25 +258,7 @@ var _ = Describe("FeatureStore Controller - db storage services", func() {
err = k8sClient.Get(ctx, typeNamespacedName, resource)
Expect(err).NotTo(HaveOccurred())

By("Deleting the configmap and secret for envFrom")
configMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), configMap)
Expect(err).ToNot(HaveOccurred())

// Delete Secret
secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), secret)
Expect(err).ToNot(HaveOccurred())
deleteEnvFromSecretAndConfigMap()

By("Cleanup the secrets")
Expect(k8sClient.Delete(ctx, onlineSecret)).To(Succeed())
Expand Down Expand Up @@ -639,6 +602,7 @@ var _ = Describe("FeatureStore Controller - db storage services", func() {

offlineContainer := services.GetOfflineContainer(deploy.Spec.Template.Spec.Containers)
Expect(offlineContainer.Env).To(HaveLen(1))
assertEnvFrom(*offlineContainer)
env = getFeatureStoreYamlEnvVar(offlineContainer.Env)
Expect(env).NotTo(BeNil())

Expand All @@ -656,6 +620,7 @@ var _ = Describe("FeatureStore Controller - db storage services", func() {
onlineContainer := services.GetOnlineContainer(deploy.Spec.Template.Spec.Containers)
Expect(onlineContainer.VolumeMounts).To(HaveLen(1))
Expect(onlineContainer.Env).To(HaveLen(1))
assertEnvFrom(*onlineContainer)
Expect(onlineContainer.ImagePullPolicy).To(Equal(corev1.PullAlways))
env = getFeatureStoreYamlEnvVar(onlineContainer.Env)
Expect(env).NotTo(BeNil())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,29 +62,9 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
registryPath := "/data/registry.db"

BeforeEach(func() {
By("creating the config map and secret for envFrom")
envFromConfigMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
Data: map[string]string{"example-key": "example-value"},
}
err := k8sClient.Create(context.TODO(), envFromConfigMap)
Expect(err).ToNot(HaveOccurred())

envFromSecret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
StringData: map[string]string{"secret-key": "secret-value"},
}
err = k8sClient.Create(context.TODO(), envFromSecret)
Expect(err).ToNot(HaveOccurred())

createEnvFromSecretAndConfigMap()
By("creating the custom resource for the Kind FeatureStore")
err = k8sClient.Get(ctx, typeNamespacedName, featurestore)
err := k8sClient.Get(ctx, typeNamespacedName, featurestore)
if err != nil && errors.IsNotFound(err) {
resource := createFeatureStoreResource(resourceName, image, pullPolicy, &[]corev1.EnvVar{{Name: testEnvVarName, Value: testEnvVarValue},
{Name: "fieldRefName", ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}, withEnvFrom())
Expand Down Expand Up @@ -119,26 +99,7 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
By("Cleanup the specific resource instance FeatureStore")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

// Delete ConfigMap
By("Deleting the configmap and secret for envFrom")
configMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), configMap)
Expect(err).ToNot(HaveOccurred())

// Delete Secret
secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), secret)
Expect(err).ToNot(HaveOccurred())
deleteEnvFromSecretAndConfigMap()
})

It("should successfully reconcile the resource", func() {
Expand Down Expand Up @@ -183,18 +144,7 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
Expect(resource.Status.Applied.Services.OnlineStore.Persistence.FilePersistence).NotTo(BeNil())
Expect(resource.Status.Applied.Services.OnlineStore.Persistence.FilePersistence.Path).To(Equal(onlineStorePath))
Expect(resource.Status.Applied.Services.OnlineStore.Env).To(Equal(&[]corev1.EnvVar{{Name: testEnvVarName, Value: testEnvVarValue}, {Name: "fieldRefName", ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}))
Expect(resource.Status.Applied.Services.OnlineStore.EnvFrom).To(Equal(&[]corev1.EnvFromSource{
{
ConfigMapRef: &corev1.ConfigMapEnvSource{
LocalObjectReference: corev1.LocalObjectReference{Name: "example-configmap"},
},
},
{
SecretRef: &corev1.SecretEnvSource{
LocalObjectReference: corev1.LocalObjectReference{Name: "example-secret"},
},
},
}))
Expect(resource.Status.Applied.Services.OnlineStore.EnvFrom).To(Equal(withEnvFrom()))
Expect(resource.Status.Applied.Services.OnlineStore.ImagePullPolicy).To(Equal(&pullPolicy))
Expect(resource.Status.Applied.Services.OnlineStore.Resources).NotTo(BeNil())
Expect(resource.Status.Applied.Services.OnlineStore.Image).To(Equal(&image))
Expand Down Expand Up @@ -363,9 +313,13 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {

offlineContainer := services.GetOfflineContainer(deploy.Spec.Template.Spec.Containers)
Expect(offlineContainer.Env).To(HaveLen(1))
assertEnvFrom(*offlineContainer)
env = getFeatureStoreYamlEnvVar(offlineContainer.Env)
Expect(env).NotTo(BeNil())

//check envFrom for offlineContainer
assertEnvFrom(*offlineContainer)

fsYamlStr, err = feast.GetServiceFeatureStoreYamlBase64()
Expect(err).NotTo(HaveOccurred())
Expect(fsYamlStr).To(Equal(env.Value))
Expand Down Expand Up @@ -488,6 +442,10 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
env = getFeatureStoreYamlEnvVar(onlineContainer.Env)
Expect(env).NotTo(BeNil())

//check envFrom
// Validate `envFrom` for ConfigMap and Secret
assertEnvFrom(*onlineContainer)

fsYamlStr, err = feast.GetServiceFeatureStoreYamlBase64()
Expect(err).NotTo(HaveOccurred())
Expect(fsYamlStr).To(Equal(env.Value))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,29 +59,10 @@ var _ = Describe("FeatureStore Controller-Kubernetes authorization", func() {
roles := []string{"reader", "writer"}

BeforeEach(func() {
By("creating the config map and secret for envFrom")
configMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
Data: map[string]string{"example-key": "example-value"},
}
err := k8sClient.Create(context.TODO(), configMap)
Expect(err).ToNot(HaveOccurred())

secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
StringData: map[string]string{"secret-key": "secret-value"},
}
err = k8sClient.Create(context.TODO(), secret)
Expect(err).ToNot(HaveOccurred())
createEnvFromSecretAndConfigMap()

By("creating the custom resource for the Kind FeatureStore")
err = k8sClient.Get(ctx, typeNamespacedName, featurestore)
err := k8sClient.Get(ctx, typeNamespacedName, featurestore)
if err != nil && errors.IsNotFound(err) {
resource := createFeatureStoreResource(resourceName, image, pullPolicy, &[]corev1.EnvVar{}, withEnvFrom())
resource.Spec.AuthzConfig = &feastdevv1alpha1.AuthzConfig{KubernetesAuthz: &feastdevv1alpha1.KubernetesAuthz{
Expand All @@ -96,26 +77,7 @@ var _ = Describe("FeatureStore Controller-Kubernetes authorization", func() {
err := k8sClient.Get(ctx, typeNamespacedName, resource)
Expect(err).NotTo(HaveOccurred())

// Delete ConfigMap
By("Deleting the configmap and secret for envFrom")
configMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), configMap)
Expect(err).ToNot(HaveOccurred())

// Delete Secret
secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), secret)
Expect(err).ToNot(HaveOccurred())
deleteEnvFromSecretAndConfigMap()

By("Cleanup the specific resource instance FeatureStore")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())
Expand Down Expand Up @@ -168,18 +130,7 @@ var _ = Describe("FeatureStore Controller-Kubernetes authorization", func() {
Expect(resource.Status.Applied.Services.OnlineStore.Persistence.FilePersistence).NotTo(BeNil())
Expect(resource.Status.Applied.Services.OnlineStore.Persistence.FilePersistence.Path).To(Equal(services.EphemeralPath + "/" + services.DefaultOnlineStorePath))
Expect(resource.Status.Applied.Services.OnlineStore.Env).To(Equal(&[]corev1.EnvVar{}))
Expect(resource.Status.Applied.Services.OnlineStore.EnvFrom).To(Equal(&[]corev1.EnvFromSource{
{
ConfigMapRef: &corev1.ConfigMapEnvSource{
LocalObjectReference: corev1.LocalObjectReference{Name: "example-configmap"},
},
},
{
SecretRef: &corev1.SecretEnvSource{
LocalObjectReference: corev1.LocalObjectReference{Name: "example-secret"},
},
},
}))
Expect(resource.Status.Applied.Services.OnlineStore.EnvFrom).To(Equal(withEnvFrom()))
Expect(resource.Status.Applied.Services.OnlineStore.ImagePullPolicy).To(Equal(&pullPolicy))
Expect(resource.Status.Applied.Services.OnlineStore.Resources).NotTo(BeNil())
Expect(resource.Status.Applied.Services.OnlineStore.Image).To(Equal(&image))
Expand Down Expand Up @@ -470,9 +421,12 @@ var _ = Describe("FeatureStore Controller-Kubernetes authorization", func() {
Expect(repoConfig).To(Equal(&testConfig))

// check offline
env = getFeatureStoreYamlEnvVar(services.GetOfflineContainer(deploy.Spec.Template.Spec.Containers).Env)
offlineContainer := services.GetOfflineContainer(deploy.Spec.Template.Spec.Containers)
env = getFeatureStoreYamlEnvVar(offlineContainer.Env)
Expect(env).NotTo(BeNil())

assertEnvFrom(*offlineContainer)

// check offline config
fsYamlStr, err = feast.GetServiceFeatureStoreYamlBase64()
Expect(err).NotTo(HaveOccurred())
Expand All @@ -486,9 +440,12 @@ var _ = Describe("FeatureStore Controller-Kubernetes authorization", func() {
Expect(repoConfig).To(Equal(&testConfig))

// check online
env = getFeatureStoreYamlEnvVar(services.GetOnlineContainer(deploy.Spec.Template.Spec.Containers).Env)
onlineContainer := services.GetOnlineContainer(deploy.Spec.Template.Spec.Containers)
env = getFeatureStoreYamlEnvVar(onlineContainer.Env)
Expect(env).NotTo(BeNil())

assertEnvFrom(*onlineContainer)

// check online config
fsYamlStr, err = feast.GetServiceFeatureStoreYamlBase64()
Expect(err).NotTo(HaveOccurred())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,29 +64,10 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
}

BeforeEach(func() {
By("creating the config map and secret for envFrom")
envFromConfigMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
Data: map[string]string{"example-key": "example-value"},
}
err := k8sClient.Create(context.TODO(), envFromConfigMap)
Expect(err).ToNot(HaveOccurred())

envFromSecret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
StringData: map[string]string{"secret-key": "secret-value"},
}
err = k8sClient.Create(context.TODO(), envFromSecret)
Expect(err).ToNot(HaveOccurred())
createEnvFromSecretAndConfigMap()

By("creating the custom resource for the Kind FeatureStore")
err = k8sClient.Get(ctx, typeNamespacedName, featurestore)
err := k8sClient.Get(ctx, typeNamespacedName, featurestore)
if err != nil && errors.IsNotFound(err) {
resource := createFeatureStoreResource(resourceName, image, pullPolicy, &[]corev1.EnvVar{{Name: testEnvVarName, Value: testEnvVarValue},
{Name: "fieldRefName", ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}, withEnvFrom())
Expand All @@ -110,25 +91,7 @@ var _ = Describe("FeatureStore Controller-Ephemeral services", func() {
err := k8sClient.Get(ctx, typeNamespacedName, resource)
Expect(err).NotTo(HaveOccurred())

By("Deleting the configmap and secret for envFrom")
configMap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "example-configmap",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), configMap)
Expect(err).ToNot(HaveOccurred())

// Delete Secret
secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: "example-secret",
Namespace: "default",
},
}
err = k8sClient.Delete(context.TODO(), secret)
Expect(err).ToNot(HaveOccurred())
deleteEnvFromSecretAndConfigMap()

By("Cleanup the specific resource instance FeatureStore")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())
Expand Down
Loading