Retry certificate approval on conflict errors

We already check preconditions.
pull/8/head
Clayton Coleman 2018-05-03 21:12:43 -04:00
parent b52ebfa28e
commit 3b6bd9be25
No known key found for this signature in database
GPG Key ID: 3D16906B4F1C5CB3
1 changed files with 18 additions and 8 deletions

View File

@ -20,6 +20,7 @@ import (
"fmt"
"io"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api/legacyscheme"
@ -216,15 +217,24 @@ func (options *CertificateOptions) modifyCertificateCondition(builder *resource.
if err != nil {
return err
}
csr := info.Object.(*certificates.CertificateSigningRequest)
csr, hasCondition := modify(csr)
if !hasCondition || force {
csr, err = clientSet.Certificates().
CertificateSigningRequests().
UpdateApproval(csr)
if err != nil {
return err
for i := 0; ; i++ {
csr := info.Object.(*certificates.CertificateSigningRequest)
csr, hasCondition := modify(csr)
if !hasCondition || force {
csr, err = clientSet.Certificates().
CertificateSigningRequests().
UpdateApproval(csr)
if errors.IsConflict(err) && i < 10 {
if err := info.Get(); err != nil {
return err
}
continue
}
if err != nil {
return err
}
}
break
}
found++