mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 09:49:50 +00:00
use auto reauth when access token is expired
This commit is contained in:
parent
ff59f316f6
commit
b2d68c79b7
@ -76,7 +76,6 @@ type LoadBalancerOpts struct {
|
|||||||
// OpenStack is an implementation of cloud provider Interface for OpenStack.
|
// OpenStack is an implementation of cloud provider Interface for OpenStack.
|
||||||
type OpenStack struct {
|
type OpenStack struct {
|
||||||
provider *gophercloud.ProviderClient
|
provider *gophercloud.ProviderClient
|
||||||
authOpts gophercloud.AuthOptions
|
|
||||||
region string
|
region string
|
||||||
lbOpts LoadBalancerOpts
|
lbOpts LoadBalancerOpts
|
||||||
}
|
}
|
||||||
@ -117,11 +116,7 @@ func (cfg Config) toAuthOptions() gophercloud.AuthOptions {
|
|||||||
TenantID: cfg.Global.TenantId,
|
TenantID: cfg.Global.TenantId,
|
||||||
TenantName: cfg.Global.TenantName,
|
TenantName: cfg.Global.TenantName,
|
||||||
|
|
||||||
// Persistent service, so we need to be able to renew
|
// Persistent service, so we need to be able to renew tokens.
|
||||||
// tokens.
|
|
||||||
// (gophercloud doesn't appear to actually reauth yet,
|
|
||||||
// hence the explicit openstack.Authenticate() calls
|
|
||||||
// below)
|
|
||||||
AllowReauth: true,
|
AllowReauth: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -138,15 +133,13 @@ func readConfig(config io.Reader) (Config, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newOpenStack(cfg Config) (*OpenStack, error) {
|
func newOpenStack(cfg Config) (*OpenStack, error) {
|
||||||
authOpts := cfg.toAuthOptions()
|
provider, err := openstack.AuthenticatedClient(cfg.toAuthOptions())
|
||||||
provider, err := openstack.AuthenticatedClient(authOpts)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
os := OpenStack{
|
os := OpenStack{
|
||||||
provider: provider,
|
provider: provider,
|
||||||
authOpts: authOpts,
|
|
||||||
region: cfg.Global.Region,
|
region: cfg.Global.Region,
|
||||||
lbOpts: cfg.LoadBalancer,
|
lbOpts: cfg.LoadBalancer,
|
||||||
}
|
}
|
||||||
@ -162,11 +155,6 @@ type Instances struct {
|
|||||||
func (os *OpenStack) Instances() (cloudprovider.Instances, bool) {
|
func (os *OpenStack) Instances() (cloudprovider.Instances, bool) {
|
||||||
glog.V(4).Info("openstack.Instances() called")
|
glog.V(4).Info("openstack.Instances() called")
|
||||||
|
|
||||||
if err := openstack.Authenticate(os.provider, os.authOpts); err != nil {
|
|
||||||
glog.Warningf("Failed to reauthenticate: %v", err)
|
|
||||||
return nil, false
|
|
||||||
}
|
|
||||||
|
|
||||||
compute, err := openstack.NewComputeV2(os.provider, gophercloud.EndpointOpts{
|
compute, err := openstack.NewComputeV2(os.provider, gophercloud.EndpointOpts{
|
||||||
Region: os.region,
|
Region: os.region,
|
||||||
})
|
})
|
||||||
@ -413,11 +401,6 @@ type LoadBalancer struct {
|
|||||||
func (os *OpenStack) TCPLoadBalancer() (cloudprovider.TCPLoadBalancer, bool) {
|
func (os *OpenStack) TCPLoadBalancer() (cloudprovider.TCPLoadBalancer, bool) {
|
||||||
glog.V(4).Info("openstack.TCPLoadBalancer() called")
|
glog.V(4).Info("openstack.TCPLoadBalancer() called")
|
||||||
|
|
||||||
if err := openstack.Authenticate(os.provider, os.authOpts); err != nil {
|
|
||||||
glog.Warningf("Failed to reauthenticate: %v", err)
|
|
||||||
return nil, false
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Search for and support Rackspace loadbalancer API, and others.
|
// TODO: Search for and support Rackspace loadbalancer API, and others.
|
||||||
network, err := openstack.NewNetworkV2(os.provider, gophercloud.EndpointOpts{
|
network, err := openstack.NewNetworkV2(os.provider, gophercloud.EndpointOpts{
|
||||||
Region: os.region,
|
Region: os.region,
|
||||||
|
Loading…
Reference in New Issue
Block a user