mirror of https://github.com/kubernetes/kops.git
Openstack Environment Variable Mapping
This commit is contained in:
parent
d0713c633a
commit
4e752ca62d
|
@ -140,6 +140,25 @@ func (i *Installation) buildSystemdJob() *nodetasks.Service {
|
|||
buffer.WriteString("\" ")
|
||||
}
|
||||
|
||||
// Pass in required credentials when using user-defined swift endpoint
|
||||
if os.Getenv("OS_AUTH_URL") != "" {
|
||||
for _, envVar := range []string{
|
||||
"OS_TENANT_ID", "OS_TENANT_NAME", "OS_PROJECT_ID", "OS_PROJECT_NAME",
|
||||
"OS_PROJECT_DOMAIN_NAME", "OS_PROJECT_DOMAIN_ID",
|
||||
"OS_DOMAIN_NAME", "OS_DOMAIN_ID",
|
||||
"OS_USERNAME",
|
||||
"OS_PASSWORD",
|
||||
"OS_AUTH_URL",
|
||||
"OS_REGION_NAME",
|
||||
} {
|
||||
buffer.WriteString("\"")
|
||||
buffer.WriteString(envVar)
|
||||
buffer.WriteString("=")
|
||||
buffer.WriteString(os.Getenv(envVar))
|
||||
buffer.WriteString("\" ")
|
||||
}
|
||||
}
|
||||
|
||||
if os.Getenv("DIGITALOCEAN_ACCESS_TOKEN") != "" {
|
||||
buffer.WriteString("\"DIGITALOCEAN_ACCESS_TOKEN=")
|
||||
buffer.WriteString(os.Getenv("DIGITALOCEAN_ACCESS_TOKEN"))
|
||||
|
|
|
@ -104,6 +104,43 @@ func (b *CloudConfigBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
// We need this to support Kubernetes vSphere CloudProvider < v1.5.3
|
||||
lines = append(lines, "[disk]")
|
||||
lines = append(lines, "scsicontrollertype = pvscsi")
|
||||
case "openstack":
|
||||
osc := cloudConfig.Openstack
|
||||
if osc == nil {
|
||||
break
|
||||
}
|
||||
|
||||
lines = append(lines,
|
||||
fmt.Sprintf("auth-url=\"%s\"", os.Getenv("OS_AUTH_URL")),
|
||||
fmt.Sprintf("username=\"%s\"", os.Getenv("OS_USERNAME")),
|
||||
fmt.Sprintf("password=\"%s\"", os.Getenv("OS_PASSWORD")),
|
||||
fmt.Sprintf("region=\"%s\"", os.Getenv("OS_REGION_NAME")),
|
||||
fmt.Sprintf("tenant-id=\"%s\"", os.Getenv("OS_TENANT_ID")),
|
||||
fmt.Sprintf("tenant-name=\"%s\"", os.Getenv("OS_TENANT_NAME")),
|
||||
fmt.Sprintf("domain-name=\"%s\"", os.Getenv("OS_DOMAIN_NAME")),
|
||||
fmt.Sprintf("domain-id=\"%s\"", os.Getenv("OS_DOMAIN_ID")),
|
||||
"",
|
||||
)
|
||||
|
||||
if lb := osc.Loadbalancer; lb != nil {
|
||||
lines = append(lines,
|
||||
"[LoadBalancer]",
|
||||
fmt.Sprintf("floating-network-id=%s", fi.StringValue(lb.FloatingNetwork)),
|
||||
fmt.Sprintf("lb-method=%s", fi.StringValue(lb.Method)),
|
||||
fmt.Sprintf("lb-provider=%s", fi.StringValue(lb.Provider)),
|
||||
fmt.Sprintf("use-octavia=%t", fi.BoolValue(lb.UseOctavia)),
|
||||
"",
|
||||
)
|
||||
}
|
||||
if monitor := osc.Monitor; monitor != nil {
|
||||
lines = append(lines,
|
||||
"create-monitor=yes",
|
||||
fmt.Sprintf("monitor-delay=%s", fi.StringValue(monitor.Delay)),
|
||||
fmt.Sprintf("monitor-timeout=%s", fi.StringValue(monitor.Timeout)),
|
||||
fmt.Sprintf("monitor-max-retries=%d", fi.IntValue(monitor.MaxRetries)),
|
||||
"",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
config := "[global]\n" + strings.Join(lines, "\n") + "\n"
|
||||
|
|
|
@ -410,6 +410,24 @@ func (t *ProtokubeBuilder) ProtokubeEnvironmentVariables() string {
|
|||
buffer.WriteString(" ")
|
||||
}
|
||||
|
||||
if os.Getenv("OS_AUTH_URL") != "" {
|
||||
for _, envVar := range []string{
|
||||
"OS_TENANT_ID", "OS_TENANT_NAME", "OS_PROJECT_ID", "OS_PROJECT_NAME",
|
||||
"OS_PROJECT_DOMAIN_NAME", "OS_PROJECT_DOMAIN_ID",
|
||||
"OS_DOMAIN_NAME", "OS_DOMAIN_ID",
|
||||
"OS_USERNAME",
|
||||
"OS_PASSWORD",
|
||||
"OS_AUTH_URL",
|
||||
"OS_REGION_NAME",
|
||||
} {
|
||||
buffer.WriteString(" -e ")
|
||||
buffer.WriteString(envVar)
|
||||
buffer.WriteString("='")
|
||||
buffer.WriteString(os.Getenv(envVar))
|
||||
buffer.WriteString("'")
|
||||
}
|
||||
}
|
||||
|
||||
if kops.CloudProviderID(t.Cluster.Spec.CloudProvider) == kops.CloudProviderDO && os.Getenv("DIGITALOCEAN_ACCESS_TOKEN") != "" {
|
||||
buffer.WriteString(" ")
|
||||
buffer.WriteString("-e 'DIGITALOCEAN_ACCESS_TOKEN=")
|
||||
|
|
|
@ -72,6 +72,21 @@ func (b *BootstrapScript) buildEnvironmentVariables(cluster *kops.Cluster) (map[
|
|||
env["S3_SECRET_ACCESS_KEY"] = os.Getenv("S3_SECRET_ACCESS_KEY")
|
||||
}
|
||||
|
||||
// Pass in required credentials when using user-defined swift endpoint
|
||||
if os.Getenv("OS_AUTH_URL") != "" {
|
||||
for _, envVar := range []string{
|
||||
"OS_TENANT_ID", "OS_TENANT_NAME", "OS_PROJECT_ID", "OS_PROJECT_NAME",
|
||||
"OS_PROJECT_DOMAIN_NAME", "OS_PROJECT_DOMAIN_ID",
|
||||
"OS_DOMAIN_NAME", "OS_DOMAIN_ID",
|
||||
"OS_USERNAME",
|
||||
"OS_PASSWORD",
|
||||
"OS_AUTH_URL",
|
||||
"OS_REGION_NAME",
|
||||
} {
|
||||
env[envVar] = os.Getenv(envVar)
|
||||
}
|
||||
}
|
||||
|
||||
if kops.CloudProviderID(cluster.Spec.CloudProvider) == kops.CloudProviderDO {
|
||||
doToken := os.Getenv("DIGITALOCEAN_ACCESS_TOKEN")
|
||||
if doToken != "" {
|
||||
|
|
|
@ -135,6 +135,7 @@ func (oc OpenstackConfig) GetCredential() (gophercloud.AuthOptions, error) {
|
|||
// prioritize environment config
|
||||
env, enverr := openstack.AuthOptionsFromEnv()
|
||||
if enverr != nil {
|
||||
glog.Warningf("Could not initialize swift from environment: %v", enverr)
|
||||
// fallback to config file
|
||||
return oc.getCredentialFromFile()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue