Skip to content

Commit cc90e24

Browse files
authored
Merge pull request #196 from kon-angelo/fix-missing-auth-url-hotfix
[release-v1.14] get missing auth_aul from cloudprofile
2 parents e556165 + 9da85fc commit cc90e24

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

pkg/controller/worker/actuator.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,17 @@ func (d *delegateFactory) WorkerDelegate(ctx context.Context, worker *extensions
7676
return nil, err
7777
}
7878

79-
openstackClient, err := client.NewOpenStackClientFromSecretRef(ctx, d.Client(), worker.Spec.SecretRef)
79+
cloudProfileConfig, err := helper.CloudProfileConfigFromCluster(cluster)
80+
if err != nil {
81+
return nil, err
82+
}
83+
84+
keyStoneURL, err := helper.FindKeyStoneURL(cloudProfileConfig.KeyStoneURLs, cloudProfileConfig.KeyStoneURL, worker.Spec.Region)
85+
if err != nil {
86+
return nil, err
87+
}
88+
89+
openstackClient, err := client.NewOpenStackClientFromSecretRef(ctx, d.Client(), worker.Spec.SecretRef, &keyStoneURL)
8090
if err != nil {
8191
return nil, errors.Wrap(err, "failed to create openstack client")
8292
}

pkg/openstack/client/client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package client
1818

1919
import (
2020
"context"
21+
"strings"
2122

2223
os "github.com/gardener/gardener-extension-provider-openstack/pkg/openstack"
2324
"github.com/gophercloud/gophercloud"
@@ -61,12 +62,15 @@ func NewOpenstackClientFromCredentials(credentials *os.Credentials) (Factory, er
6162

6263
// NewOpenStackClientFromSecretRef returns a Factory implementation that can be used to create clients for OpenStack services.
6364
// The credentials are fetched from the Kubernetes secret referenced by <secretRef>.
64-
func NewOpenStackClientFromSecretRef(ctx context.Context, c client.Client, secretRef corev1.SecretReference) (Factory, error) {
65+
func NewOpenStackClientFromSecretRef(ctx context.Context, c client.Client, secretRef corev1.SecretReference, keyStoneUrl *string) (Factory, error) {
6566
creds, err := os.GetCredentials(ctx, c, secretRef)
6667
if err != nil {
6768
return nil, err
6869
}
6970

71+
if len(strings.TrimSpace(creds.AuthURL)) == 0 && keyStoneUrl != nil {
72+
creds.AuthURL = *keyStoneUrl
73+
}
7074
return NewOpenstackClientFromCredentials(creds)
7175
}
7276

pkg/openstack/client/swift.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727

2828
// NewStorageClientFromSecretRef retrieves the openstack client from specified by the secret reference.
2929
func NewStorageClientFromSecretRef(ctx context.Context, c client.Client, secretRef corev1.SecretReference, region string) (Storage, error) {
30-
base, err := NewOpenStackClientFromSecretRef(ctx, c, secretRef)
30+
base, err := NewOpenStackClientFromSecretRef(ctx, c, secretRef, nil)
3131
if err != nil {
3232
return nil, err
3333
}

0 commit comments

Comments
 (0)