mirror of
https://github.com/prometheus/prometheus
synced 2024-12-25 07:52:28 +00:00
Get OpenStack variables from env as fallback (#3293)
This change enables the OpenStack service discovery to read the authentication parameters from the OS_* environment variables when the identity endpoint URL is not defined in the Prometheus configuration file.
This commit is contained in:
parent
e948721a0b
commit
88e4815bb7
@ -19,6 +19,7 @@ import (
|
||||
|
||||
"github.com/go-kit/kit/log"
|
||||
"github.com/gophercloud/gophercloud"
|
||||
"github.com/gophercloud/gophercloud/openstack"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"golang.org/x/net/context"
|
||||
|
||||
@ -52,15 +53,24 @@ type Discovery interface {
|
||||
|
||||
// NewDiscovery returns a new OpenStackDiscovery which periodically refreshes its targets.
|
||||
func NewDiscovery(conf *config.OpenstackSDConfig, l log.Logger) (Discovery, error) {
|
||||
opts := gophercloud.AuthOptions{
|
||||
IdentityEndpoint: conf.IdentityEndpoint,
|
||||
Username: conf.Username,
|
||||
UserID: conf.UserID,
|
||||
Password: string(conf.Password),
|
||||
TenantName: conf.ProjectName,
|
||||
TenantID: conf.ProjectID,
|
||||
DomainName: conf.DomainName,
|
||||
DomainID: conf.DomainID,
|
||||
var opts gophercloud.AuthOptions
|
||||
if conf.IdentityEndpoint == "" {
|
||||
var err error
|
||||
opts, err = openstack.AuthOptionsFromEnv()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
opts = gophercloud.AuthOptions{
|
||||
IdentityEndpoint: conf.IdentityEndpoint,
|
||||
Username: conf.Username,
|
||||
UserID: conf.UserID,
|
||||
Password: string(conf.Password),
|
||||
TenantName: conf.ProjectName,
|
||||
TenantID: conf.ProjectID,
|
||||
DomainName: conf.DomainName,
|
||||
DomainID: conf.DomainID,
|
||||
}
|
||||
}
|
||||
switch conf.Role {
|
||||
case config.OpenStackRoleHypervisor:
|
||||
|
Loading…
Reference in New Issue
Block a user