Skip to content

Commit fc61f05

Browse files
Merge pull request kubernetes#1107 from shiftstack/openstack-secret-race-49
Bug 2039373: UPSTREAM: 89885: SQUASH: Retry fetching clouds.conf
2 parents 885dd09 + 8ecc876 commit fc61f05

File tree

1 file changed

+18
-1
lines changed
  • staging/src/k8s.io/legacy-cloud-providers/openstack

1 file changed

+18
-1
lines changed

staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go

+18-1
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ import (
4646
v1 "k8s.io/api/core/v1"
4747
"k8s.io/apimachinery/pkg/types"
4848
netutil "k8s.io/apimachinery/pkg/util/net"
49+
"k8s.io/apimachinery/pkg/util/wait"
4950
"k8s.io/client-go/informers"
5051
corelistersv1 "k8s.io/client-go/listers/core/v1"
5152
certutil "k8s.io/client-go/util/cert"
53+
"k8s.io/client-go/util/retry"
5254
cloudprovider "k8s.io/cloud-provider"
5355
nodehelpers "k8s.io/cloud-provider/node/helpers"
5456
"k8s.io/klog/v2"
@@ -279,7 +281,22 @@ func (os *OpenStack) setConfigFromSecret() error {
279281
return fmt.Errorf("secret lister is not initialized")
280282
}
281283

282-
secret, err := os.secretLister.Secrets(os.secretNamespace).Get(os.secretName)
284+
var secret *v1.Secret
285+
err := retry.OnError(
286+
wait.Backoff{
287+
Duration: time.Second,
288+
Factor: 1.5,
289+
Jitter: 1,
290+
Steps: 10,
291+
},
292+
func(_ error) bool {
293+
return true
294+
},
295+
func() (err error) {
296+
secret, err = os.secretLister.Secrets(os.secretNamespace).Get(os.secretName)
297+
return err
298+
},
299+
)
283300
if err != nil {
284301
klog.Errorf("cannot get secret %s in namespace %s. error: %q", os.secretName, os.secretNamespace, err)
285302
return err

0 commit comments

Comments
 (0)