Skip to content

Commit

Permalink
UPSTREAM: 89885: SQUASH: Retry fetching clouds.conf
Browse files Browse the repository at this point in the history
The OpenStack secret is not guaranteed to be present at the time
kube-controller-manager is initialised.

Co-authored-by: Martin André <m.andre@redhat.com>
Co-authored-by: Pierre Prinetti <pierreprinetti@redhat.com>
  • Loading branch information
2 people authored and openshift-cherrypick-robot committed Feb 15, 2022
1 parent e880017 commit 7132d6c
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,11 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
netutil "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/informers"
corelistersv1 "k8s.io/client-go/listers/core/v1"
certutil "k8s.io/client-go/util/cert"
"k8s.io/client-go/util/retry"
cloudprovider "k8s.io/cloud-provider"
nodehelpers "k8s.io/cloud-provider/node/helpers"
"k8s.io/klog/v2"
Expand Down Expand Up @@ -279,7 +281,22 @@ func (os *OpenStack) setConfigFromSecret() error {
return fmt.Errorf("secret lister is not initialized")
}

secret, err := os.secretLister.Secrets(os.secretNamespace).Get(os.secretName)
var secret *v1.Secret
err := retry.OnError(
wait.Backoff{
Duration: time.Second,
Factor: 1.5,
Jitter: 1,
Steps: 10,
},
func(_ error) bool {
return true
},
func() (err error) {
secret, err = os.secretLister.Secrets(os.secretNamespace).Get(os.secretName)
return err
},
)
if err != nil {
klog.Errorf("cannot get secret %s in namespace %s. error: %q", os.secretName, os.secretNamespace, err)
return err
Expand Down

0 comments on commit 7132d6c

Please sign in to comment.