Skip to content

Commit a837991

Browse files
add wait for config injection in e2e test (#2547)
Signed-off-by: akihikokuroda <[email protected]>
1 parent 5a7f803 commit a837991

File tree

1 file changed

+39
-25
lines changed

1 file changed

+39
-25
lines changed

test/e2e/subscription_e2e_test.go

+39-25
Original file line numberDiff line numberDiff line change
@@ -1313,14 +1313,18 @@ var _ = Describe("Subscription", func() {
13131313
require.NoError(GinkgoT(), err)
13141314
require.NotNil(GinkgoT(), subscription)
13151315

1316-
csv, err := fetchCSV(crClient, subscription.Status.CurrentCSV, generatedNamespace.GetName(), buildCSVConditionChecker(operatorsv1alpha1.CSVPhaseSucceeded))
1317-
require.NoError(GinkgoT(), err)
1318-
13191316
proxyEnv := proxyEnvVarFunc(GinkgoT(), config)
13201317
expected := podEnv
13211318
expected = append(expected, proxyEnv...)
13221319

1323-
checkDeploymentWithPodConfiguration(GinkgoT(), kubeClient, csv, podConfig.Env, podConfig.Volumes, podConfig.VolumeMounts, podConfig.Tolerations, podConfig.Resources)
1320+
Eventually(func() error {
1321+
csv, err := fetchCSV(crClient, subscription.Status.CurrentCSV, generatedNamespace.GetName(), buildCSVConditionChecker(operatorsv1alpha1.CSVPhaseSucceeded))
1322+
if err != nil {
1323+
return err
1324+
}
1325+
1326+
return checkDeploymentWithPodConfiguration(kubeClient, csv, podConfig.Env, podConfig.Volumes, podConfig.VolumeMounts, podConfig.Tolerations, podConfig.Resources)
1327+
}).Should(Succeed())
13241328
})
13251329

13261330
It("creation with nodeSelector config", func() {
@@ -2743,14 +2747,14 @@ func checkDeploymentHasPodConfigNodeSelector(t GinkgoTInterface, client operator
27432747
return nil
27442748
}
27452749

2746-
func checkDeploymentWithPodConfiguration(t GinkgoTInterface, client operatorclient.ClientInterface, csv *operatorsv1alpha1.ClusterServiceVersion, envVar []corev1.EnvVar, volumes []corev1.Volume, volumeMounts []corev1.VolumeMount, tolerations []corev1.Toleration, resources *corev1.ResourceRequirements) {
2750+
func checkDeploymentWithPodConfiguration(client operatorclient.ClientInterface, csv *operatorsv1alpha1.ClusterServiceVersion, envVar []corev1.EnvVar, volumes []corev1.Volume, volumeMounts []corev1.VolumeMount, tolerations []corev1.Toleration, resources *corev1.ResourceRequirements) error {
27472751
resolver := install.StrategyResolver{}
27482752

27492753
strategy, err := resolver.UnmarshalStrategy(csv.Spec.InstallStrategy)
2750-
require.NoError(t, err)
2754+
Expect(err).NotTo(HaveOccurred())
27512755

27522756
strategyDetailsDeployment, ok := strategy.(*operatorsv1alpha1.StrategyDetailsDeployment)
2753-
require.Truef(t, ok, "could not cast install strategy as type %T", strategyDetailsDeployment)
2757+
Expect(ok).To(BeTrue(), "could not cast install strategy as type %T", strategyDetailsDeployment)
27542758

27552759
findEnvVar := func(envVar []corev1.EnvVar, name string) (foundEnvVar *corev1.EnvVar, found bool) {
27562760
for i := range envVar {
@@ -2813,48 +2817,58 @@ func checkDeploymentWithPodConfiguration(t GinkgoTInterface, client operatorclie
28132817
return
28142818
}
28152819

2816-
check := func(container *corev1.Container) {
2820+
check := func(container *corev1.Container) error {
28172821
for _, e := range envVar {
28182822
existing, found := findEnvVar(container.Env, e.Name)
2819-
require.Truef(t, found, "env variable name=%s not injected", e.Name)
2820-
require.NotNil(t, existing)
2821-
require.Equalf(t, e.Value, existing.Value, "env variable value does not match %s=%s", e.Name, e.Value)
2823+
if !found || existing == nil {
2824+
return fmt.Errorf("env variable name=%s not injected", e.Name)
2825+
}
2826+
Expect(e.Value).Should(Equal(existing.Value), "env variable value does not match %s=%s", e.Name, e.Value)
28222827
}
28232828

28242829
for _, v := range volumeMounts {
28252830
existing, found := findVolumeMount(container.VolumeMounts, v.Name)
2826-
require.Truef(t, found, "VolumeMount name=%s not injected", v.Name)
2827-
require.NotNil(t, existing)
2828-
require.Equalf(t, v.MountPath, existing.MountPath, "VolumeMount MountPath does not match %s=%s", v.Name, v.MountPath)
2831+
if !found || existing == nil {
2832+
return fmt.Errorf("VolumeMount name=%s not injected", v.Name)
2833+
}
2834+
Expect(v.MountPath).Should(Equal(existing.MountPath), "VolumeMount MountPath does not match %s=%s", v.Name, v.MountPath)
28292835
}
28302836

28312837
existing, found := findResources(&container.Resources, resources)
2832-
require.Truef(t, found, "Resources not injected. Resource=%v", resources)
2833-
require.NotNil(t, existing)
2834-
require.Equalf(t, existing, resources, "Resource=%v does not match expected Resource=%v", existing, resources)
2838+
if !found || existing == nil {
2839+
return fmt.Errorf("Resources not injected. Resource=%v", resources)
2840+
}
2841+
Expect(existing).Should(Equal(resources), "Resource=%v does not match expected Resource=%v", existing, resources)
2842+
return nil
28352843
}
28362844

28372845
for _, deploymentSpec := range strategyDetailsDeployment.DeploymentSpecs {
28382846
deployment, err := client.KubernetesInterface().AppsV1().Deployments(csv.GetNamespace()).Get(context.Background(), deploymentSpec.Name, metav1.GetOptions{})
2839-
require.NoError(t, err)
2847+
Expect(err).NotTo(HaveOccurred())
28402848
for _, v := range volumes {
28412849
existing, found := findVolume(deployment.Spec.Template.Spec.Volumes, v.Name)
2842-
require.Truef(t, found, "Volume name=%s not injected", v.Name)
2843-
require.NotNil(t, existing)
2844-
require.Equalf(t, v.ConfigMap.LocalObjectReference.Name, existing.ConfigMap.LocalObjectReference.Name, "volume ConfigMap Names does not match %s=%s", v.Name, v.ConfigMap.LocalObjectReference.Name)
2850+
if !found || existing == nil {
2851+
return fmt.Errorf("Volume name=%s not injected", v.Name)
2852+
}
2853+
Expect(v.ConfigMap.LocalObjectReference.Name).Should(Equal(existing.ConfigMap.LocalObjectReference.Name), "volume ConfigMap Names does not match %s=%s", v.Name, v.ConfigMap.LocalObjectReference.Name)
28452854
}
28462855

28472856
for _, toleration := range tolerations {
28482857
existing, found := findTolerations(deployment.Spec.Template.Spec.Tolerations, toleration)
2849-
require.Truef(t, found, "Toleration not injected. Toleration=%v", toleration)
2850-
require.NotNil(t, existing)
2851-
require.Equalf(t, *existing, toleration, "Toleration=%v does not match expected Toleration=%v", existing, toleration)
2858+
if !found || existing == nil {
2859+
return fmt.Errorf("Toleration not injected. Toleration=%v", toleration)
2860+
}
2861+
Expect(*existing).Should(Equal(toleration), "Toleration=%v does not match expected Toleration=%v", existing, toleration)
28522862
}
28532863

28542864
for i := range deployment.Spec.Template.Spec.Containers {
2855-
check(&deployment.Spec.Template.Spec.Containers[i])
2865+
err = check(&deployment.Spec.Template.Spec.Containers[i])
2866+
if err != nil {
2867+
return err
2868+
}
28562869
}
28572870
}
2871+
return nil
28582872
}
28592873

28602874
func updateInternalCatalog(t GinkgoTInterface, c operatorclient.ClientInterface, crc versioned.Interface, catalogSourceName, namespace string, crds []apiextensions.CustomResourceDefinition, csvs []operatorsv1alpha1.ClusterServiceVersion, packages []registry.PackageManifest) {

0 commit comments

Comments
 (0)