Skip to content

Commit

Permalink
UPSTREAM: 89885: SQUASH: Report OpenStack cloud initialization errors
Browse files Browse the repository at this point in the history
  • Loading branch information
jsafrane authored and damemi committed Jul 7, 2021
1 parent a46e11d commit a57134b
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,23 +297,46 @@ func setConfigFromSecret(cfg *Config) error {

secret, err := k8sClient.CoreV1().Secrets(secretNamespace).Get(context.TODO(), secretName, metav1.GetOptions{})
if err != nil {
klog.Warningf("Cannot get secret %s in namespace %s. error: %q", secretName, secretNamespace, err)
klog.Errorf("cannot get secret %s in namespace %s. error: %q", os.secretName, os.secretNamespace, err)
return err
}

if content, ok := secret.Data["clouds.conf"]; ok {
err = gcfg.ReadStringInto(cfg, string(content))
if err != nil {
klog.Error("Cannot parse data from the secret.")
return fmt.Errorf("cannot parse data from the secret")
return fmt.Errorf("cannot parse data from the secret: %s", err)
}
provider, err := newProvider(*cfg)
if err != nil {
return fmt.Errorf("cannot initialize cloud provider using data from the secret: %s", err)
}
os.provider = provider
os.region = cfg.Global.Region
klog.Info("OpenStack cloud provider was initialized using data from the secret.")
return nil
}

klog.Error("Cannot find \"clouds.conf\" key in the secret.")
return fmt.Errorf("cannot find \"clouds.conf\" key in the secret")
}

func (os *OpenStack) ensureCloudProviderWasInitialized() error {
if os.provider != nil {
return nil
}

if os.secretName != "" && os.secretNamespace != "" {
err := os.setConfigFromSecret()
if err != nil {
return fmt.Errorf("cloud provider is not initialized: %s", err)
}
return nil
}

return fmt.Errorf("cloud provider is not initialized")
}

func readConfig(config io.Reader) (Config, error) {
if config == nil {
return Config{}, fmt.Errorf("no OpenStack cloud provider config file given")
Expand Down

0 comments on commit a57134b

Please sign in to comment.