Retry certificate approval on conflict errors
We already check preconditions.
This commit is contained in:
		@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/legacyscheme"
 | 
						"k8s.io/kubernetes/pkg/api/legacyscheme"
 | 
				
			||||||
@@ -216,15 +217,24 @@ func (options *CertificateOptions) modifyCertificateCondition(builder *resource.
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		csr := info.Object.(*certificates.CertificateSigningRequest)
 | 
							for i := 0; ; i++ {
 | 
				
			||||||
		csr, hasCondition := modify(csr)
 | 
								csr := info.Object.(*certificates.CertificateSigningRequest)
 | 
				
			||||||
		if !hasCondition || force {
 | 
								csr, hasCondition := modify(csr)
 | 
				
			||||||
			csr, err = clientSet.Certificates().
 | 
								if !hasCondition || force {
 | 
				
			||||||
				CertificateSigningRequests().
 | 
									csr, err = clientSet.Certificates().
 | 
				
			||||||
				UpdateApproval(csr)
 | 
										CertificateSigningRequests().
 | 
				
			||||||
			if err != nil {
 | 
										UpdateApproval(csr)
 | 
				
			||||||
				return err
 | 
									if errors.IsConflict(err) && i < 10 {
 | 
				
			||||||
 | 
										if err := info.Get(); err != nil {
 | 
				
			||||||
 | 
											return err
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										continue
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										return err
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								break
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		found++
 | 
							found++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user