Skip to content

Commit f71501a

Browse files
(test) update e2e test
includes tests for tolerations and resources override Signed-off-by: Umanga Chapagain <[email protected]>
1 parent dc81dd4 commit f71501a

File tree

1 file changed

+56
-2
lines changed

1 file changed

+56
-2
lines changed

test/e2e/subscription_e2e_test.go

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package e2e
33
import (
44
"encoding/json"
55
"fmt"
6+
"reflect"
67
"strings"
78
"sync"
89
"testing"
@@ -24,6 +25,7 @@ import (
2425
corev1 "k8s.io/api/core/v1"
2526
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
2627
k8serrors "k8s.io/apimachinery/pkg/api/errors"
28+
"k8s.io/apimachinery/pkg/api/resource"
2729
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2830
"k8s.io/apimachinery/pkg/util/wait"
2931
"k8s.io/client-go/tools/clientcmd"
@@ -1327,11 +1329,30 @@ func TestCreateNewSubscriptionWithPodConfig(t *testing.T) {
13271329
podVolumeMounts := []corev1.VolumeMount{
13281330
corev1.VolumeMount{Name: testVolumeName, MountPath: "/test"},
13291331
}
1332+
podTolerations := []corev1.Toleration{
1333+
corev1.Toleration{
1334+
Key: "my-toleration-key",
1335+
Value: "my-toleration-value",
1336+
Effect: corev1.TaintEffectNoSchedule,
1337+
Operator: corev1.TolerationOpEqual,
1338+
},
1339+
}
1340+
podResources := corev1.ResourceRequirements{
1341+
Limits: corev1.ResourceList{
1342+
corev1.ResourceCPU: resource.MustParse("100m"),
1343+
},
1344+
Requests: corev1.ResourceList{
1345+
corev1.ResourceCPU: resource.MustParse("100m"),
1346+
corev1.ResourceMemory: resource.MustParse("128Mi"),
1347+
},
1348+
}
13301349

13311350
podConfig := v1alpha1.SubscriptionConfig{
13321351
Env: podEnv,
13331352
Volumes: podVolumes,
13341353
VolumeMounts: podVolumeMounts,
1354+
Tolerations: podTolerations,
1355+
Resources: podResources,
13351356
}
13361357

13371358
permissions := deploymentPermissions(t)
@@ -1358,7 +1379,7 @@ func TestCreateNewSubscriptionWithPodConfig(t *testing.T) {
13581379
expected := podEnv
13591380
expected = append(expected, proxyEnv...)
13601381

1361-
checkDeploymentWithPodConfiguration(t, kubeClient, csv, podConfig.Env, podConfig.Volumes, podConfig.VolumeMounts)
1382+
checkDeploymentWithPodConfiguration(t, kubeClient, csv, podConfig.Env, podConfig.Volumes, podConfig.VolumeMounts, podConfig.Tolerations, podConfig.Resources)
13621383
}
13631384

13641385
func TestCreateNewSubscriptionWithDependencies(t *testing.T) {
@@ -1402,7 +1423,7 @@ func TestCreateNewSubscriptionWithDependencies(t *testing.T) {
14021423

14031424
}
14041425

1405-
func checkDeploymentWithPodConfiguration(t *testing.T, client operatorclient.ClientInterface, csv *v1alpha1.ClusterServiceVersion, envVar []corev1.EnvVar, volumes []corev1.Volume, volumeMounts []corev1.VolumeMount) {
1426+
func checkDeploymentWithPodConfiguration(t *testing.T, client operatorclient.ClientInterface, csv *v1alpha1.ClusterServiceVersion, envVar []corev1.EnvVar, volumes []corev1.Volume, volumeMounts []corev1.VolumeMount, tolerations []corev1.Toleration, resources corev1.ResourceRequirements) {
14061427
resolver := install.StrategyResolver{}
14071428

14081429
strategy, err := resolver.UnmarshalStrategy(csv.Spec.InstallStrategy)
@@ -1450,6 +1471,28 @@ func checkDeploymentWithPodConfiguration(t *testing.T, client operatorclient.Cli
14501471
return
14511472
}
14521473

1474+
findTolerations := func(tolerations []corev1.Toleration, toleration corev1.Toleration) (foundToleration *corev1.Toleration, found bool) {
1475+
for i := range tolerations {
1476+
if reflect.DeepEqual(toleration, tolerations[i]) {
1477+
found = true
1478+
foundToleration = &toleration
1479+
1480+
break
1481+
}
1482+
}
1483+
1484+
return
1485+
}
1486+
1487+
findResources := func(existingResource corev1.ResourceRequirements, podResource corev1.ResourceRequirements) (foundResource *corev1.ResourceRequirements, found bool) {
1488+
if reflect.DeepEqual(existingResource, podResource) {
1489+
found = true
1490+
foundResource = &podResource
1491+
}
1492+
1493+
return
1494+
}
1495+
14531496
check := func(container *corev1.Container) {
14541497
for _, e := range envVar {
14551498
existing, found := findEnvVar(container.Env, e.Name)
@@ -1464,6 +1507,11 @@ func checkDeploymentWithPodConfiguration(t *testing.T, client operatorclient.Cli
14641507
require.NotNil(t, existing)
14651508
require.Equalf(t, v.MountPath, existing.MountPath, "VolumeMount MountPath does not match %s=%s", v.Name, v.MountPath)
14661509
}
1510+
1511+
existing, found := findResources(container.Resources, resources)
1512+
require.Truef(t, found, "Resources not injected. Resource=%v", resources)
1513+
require.NotNil(t, existing)
1514+
require.Equalf(t, *existing, resources, "Resource=%v does not match expected Resource=%v", existing, resources)
14671515
}
14681516

14691517
for _, deploymentSpec := range strategyDetailsDeployment.DeploymentSpecs {
@@ -1475,6 +1523,12 @@ func checkDeploymentWithPodConfiguration(t *testing.T, client operatorclient.Cli
14751523
require.NotNil(t, existing)
14761524
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)
14771525
}
1526+
for _, toleration := range tolerations {
1527+
existing, found := findTolerations(deployment.Spec.Template.Spec.Tolerations, toleration)
1528+
require.Truef(t, found, "Toleration not injected. Toleration=%v", toleration)
1529+
require.NotNil(t, existing)
1530+
require.Equalf(t, *existing, toleration, "Toleration=%v does not match expected Toleration=%v", existing, toleration)
1531+
}
14781532

14791533
for i := range deployment.Spec.Template.Spec.Containers {
14801534
check(&deployment.Spec.Template.Spec.Containers[i])

0 commit comments

Comments
 (0)