Skip to content

Commit

Permalink
Merge pull request #596 from raptorsun/test-update-conflict
Browse files Browse the repository at this point in the history
OLS-1333 test: reduce version conflicts when updating resources
  • Loading branch information
openshift-merge-bot[bot] authored Jan 21, 2025
2 parents 44862e1 + cd6999c commit eb28373
Showing 1 changed file with 60 additions and 11 deletions.
71 changes: 60 additions & 11 deletions test/e2e/autocorrection_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
apiequality "k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/util/retry"
)

var _ = Describe("Automatic correction against modifications on managed resources", Ordered, func() {
Expand Down Expand Up @@ -80,8 +81,21 @@ var _ = Describe("Automatic correction against modifications on managed resource
err = client.WaitForObjectCreated(deployment)
Expect(err).NotTo(HaveOccurred())
originDeployment := deployment.DeepCopy()
deployment.Spec.Replicas = Ptr(1 + *deployment.Spec.Replicas)
err = client.Update(deployment)
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
deployment := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: ConsolePluginDeploymentName,
Namespace: OLSNameSpace,
},
}
err = client.Get(deployment)
if err != nil {
return fmt.Errorf("wait for deployment to be created: %w", err)
}

deployment.Spec.Replicas = Ptr(1 + *deployment.Spec.Replicas)
return client.Update(deployment)
})
Expect(err).NotTo(HaveOccurred())
var lastErr error
err = wait.PollUntilContextTimeout(client.ctx, DefaultPollInterval, DefaultPollTimeout, true, func(ctx context.Context) (bool, error) {
Expand All @@ -105,11 +119,23 @@ var _ = Describe("Automatic correction against modifications on managed resource
err = client.Get(service)
Expect(err).NotTo(HaveOccurred())
originService := service.DeepCopy()
service.Spec.Ports[0].Name = "wrong-port-name"
service.Spec.Selector = map[string]string{
"wrong": "label",
}
err = client.Update(service)
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
service := &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
Name: ConsolePluginServiceName,
Namespace: OLSNameSpace,
},
}
err = client.Get(service)
if err != nil {
return fmt.Errorf("get service: %w", err)
}
service.Spec.Ports[0].Name = "wrong-port-name"
service.Spec.Selector = map[string]string{
"wrong": "label",
}
return client.Update(service)
})
Expect(err).NotTo(HaveOccurred())
err = wait.PollUntilContextTimeout(client.ctx, DefaultPollInterval, DefaultPollTimeout, true, func(ctx context.Context) (bool, error) {
err := client.Get(service)
Expand All @@ -132,8 +158,19 @@ var _ = Describe("Automatic correction against modifications on managed resource
err = client.Get(consoleplugin)
Expect(err).NotTo(HaveOccurred())
originConsolePlugin := consoleplugin.DeepCopy()
consoleplugin.Spec.DisplayName = "New Console Plugin Name"
err = client.Update(consoleplugin)
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
consoleplugin := &consolev1.ConsolePlugin{
ObjectMeta: metav1.ObjectMeta{
Name: ConsoleUIPluginName,
},
}
err = client.Get(consoleplugin)
if err != nil {
return fmt.Errorf("get consoleplugin: %w", err)
}
consoleplugin.Spec.DisplayName = "New Console Plugin Name"
return client.Update(consoleplugin)
})
Expect(err).NotTo(HaveOccurred())
err = wait.PollUntilContextTimeout(client.ctx, DefaultPollInterval, DefaultPollTimeout, true, func(ctx context.Context) (bool, error) {
err := client.Get(consoleplugin)
Expand All @@ -156,8 +193,20 @@ var _ = Describe("Automatic correction against modifications on managed resource
err = client.Get(configmap)
Expect(err).NotTo(HaveOccurred())
originConfigMap := configmap.DeepCopy()
configmap.Data["nginx.conf"] = "new-config"
err = client.Update(configmap)
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
configmap := &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: ConsoleUIConfigMapName,
Namespace: OLSNameSpace,
},
}
err = client.Get(configmap)
if err != nil {
return fmt.Errorf("get console configmap: %w", err)
}
configmap.Data["nginx.conf"] = "new-config"
return client.Update(configmap)
})
Expect(err).NotTo(HaveOccurred())
err = wait.PollUntilContextTimeout(client.ctx, DefaultPollInterval, DefaultPollTimeout, true, func(ctx context.Context) (bool, error) {
err := client.Get(configmap)
Expand Down

0 comments on commit eb28373

Please sign in to comment.