diff --git a/test/e2e/suite/conformance/certificates/BUILD.bazel b/test/e2e/suite/conformance/certificates/BUILD.bazel index 62cea521b..a59b691c7 100644 --- a/test/e2e/suite/conformance/certificates/BUILD.bazel +++ b/test/e2e/suite/conformance/certificates/BUILD.bazel @@ -22,6 +22,8 @@ go_library( "@com_github_onsi_gomega//:go_default_library", "@io_k8s_api//core/v1:go_default_library", "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library", + "@io_k8s_apimachinery//pkg/types:go_default_library", + "@io_k8s_client_go//util/retry:go_default_library", ], ) diff --git a/test/e2e/suite/conformance/certificates/tests.go b/test/e2e/suite/conformance/certificates/tests.go index f66e2dc3d..6fd6052dd 100644 --- a/test/e2e/suite/conformance/certificates/tests.go +++ b/test/e2e/suite/conformance/certificates/tests.go @@ -24,6 +24,8 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/util/retry" cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1" @@ -798,12 +800,18 @@ func (s *Suite) Define() { cert, err := f.Helper().CMClient.CertmanagerV1().Certificates(f.Namespace.Name).Get(context.TODO(), "testcert", metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) - By("Adding an additional dnsName to the Certificate") + By("Updating the Certificate after having added an additional dnsName") newDNSName := e2eutil.RandomSubdomain(s.DomainSuffix) - cert.Spec.DNSNames = append(cert.Spec.DNSNames, newDNSName) + err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + err := f.CRClient.Get(context.Background(), types.NamespacedName{Namespace: f.Namespace.Name, Name: "testcert"}, cert) + if err != nil { + return err + } - By("Updating the Certificate in the apiserver") - err = f.CRClient.Update(context.TODO(), cert) + cert.Spec.DNSNames = append(cert.Spec.DNSNames, newDNSName) + + return f.CRClient.Update(context.TODO(), cert) + }) Expect(err).NotTo(HaveOccurred()) By("Waiting for the Certificate Ready condition to be updated")