mirror of https://github.com/kubernetes/kops.git
Merge pull request #14972 from Mia-Cross/scaleway_remove_location_env_vars
scaleway: remove location environment variables
This commit is contained in:
commit
9303a40dbe
2
Makefile
2
Makefile
|
|
@ -48,7 +48,7 @@ UPLOAD_CMD=$(KOPS_ROOT)/hack/upload ${UPLOAD_ARGS}
|
|||
# Unexport environment variables that can affect tests and are not used in builds
|
||||
unexport AWS_ACCESS_KEY_ID AWS_REGION AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN CNI_VERSION_URL DNS_IGNORE_NS_CHECK DNSCONTROLLER_IMAGE DO_ACCESS_TOKEN GOOGLE_APPLICATION_CREDENTIALS
|
||||
unexport KOPS_BASE_URL KOPS_CLUSTER_NAME KOPS_RUN_OBSOLETE_VERSION KOPS_STATE_STORE KOPS_STATE_S3_ACL KUBE_API_VERSIONS NODEUP_URL OPENSTACK_CREDENTIAL_FILE SKIP_PACKAGE_UPDATE
|
||||
unexport SKIP_REGION_CHECK S3_ACCESS_KEY_ID S3_ENDPOINT S3_REGION S3_SECRET_ACCESS_KEY HCLOUD_TOKEN SCW_ACCESS_KEY SCW_SECRET_KEY SCW_DEFAULT_PROJECT_ID SCW_DEFAULT_REGION SCW_DEFAULT_ZONE
|
||||
unexport SKIP_REGION_CHECK S3_ACCESS_KEY_ID S3_ENDPOINT S3_REGION S3_SECRET_ACCESS_KEY HCLOUD_TOKEN SCW_ACCESS_KEY SCW_SECRET_KEY SCW_DEFAULT_PROJECT_ID
|
||||
unexport AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_STORAGE_ACCOUNT AZURE_STORAGE_KEY AZURE_SUBSCRIPTION_ID AZURE_TENANT_ID
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ unset KOPS_BASE_URL DNSCONTROLLER_IMAGE KOPSCONTROLLER_IMAGE KUBE_APISERVER_HEAL
|
|||
unset AWS_ACCESS_KEY_ID AWS_REGION AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN CNI_VERSION_URL DNS_IGNORE_NS_CHECK DO_ACCESS_TOKEN GOOGLE_APPLICATION_CREDENTIALS HCLOUD_TOKEN
|
||||
unset KOPS_CLUSTER_NAME KOPS_RUN_OBSOLETE_VERSION KOPS_STATE_STORE KOPS_STATE_S3_ACL KUBE_API_VERSIONS NODEUP_URL OPENSTACK_CREDENTIAL_FILE PROTOKUBE_IMAGE SKIP_PACKAGE_UPDATE
|
||||
unset SKIP_REGION_CHECK S3_ACCESS_KEY_ID S3_ENDPOINT S3_REGION S3_SECRET_ACCESS_KEY
|
||||
unset SCW_ACCESS_KEY SCW_SECRET_KEY SCW_DEFAULT_PROJECT_ID SCW_DEFAULT_REGION SCW_DEFAULT_ZONE
|
||||
unset SCW_ACCESS_KEY SCW_SECRET_KEY SCW_DEFAULT_PROJECT_ID
|
||||
unset AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_STORAGE_ACCOUNT AZURE_STORAGE_KEY AZURE_SUBSCRIPTION_ID AZURE_TENANT_ID
|
||||
|
||||
# Run the tests in "autofix mode"
|
||||
|
|
|
|||
|
|
@ -137,8 +137,6 @@ func (i *Installation) buildEnvFile() *nodetasks.InstallFile {
|
|||
envVars["SCW_ACCESS_KEY"] = os.Getenv("SCW_ACCESS_KEY")
|
||||
envVars["SCW_SECRET_KEY"] = os.Getenv("SCW_SECRET_KEY")
|
||||
envVars["SCW_DEFAULT_PROJECT_ID"] = os.Getenv("SCW_DEFAULT_PROJECT_ID")
|
||||
envVars["SCW_DEFAULT_REGION"] = os.Getenv("SCW_DEFAULT_REGION")
|
||||
envVars["SCW_DEFAULT_ZONE"] = os.Getenv("SCW_DEFAULT_ZONE")
|
||||
}
|
||||
|
||||
sysconfig := ""
|
||||
|
|
|
|||
|
|
@ -297,8 +297,6 @@ func (t *ProtokubeBuilder) buildEnvFile() (*nodetasks.File, error) {
|
|||
envVars["SCW_ACCESS_KEY"] = os.Getenv("SCW_ACCESS_KEY")
|
||||
envVars["SCW_SECRET_KEY"] = os.Getenv("SCW_SECRET_KEY")
|
||||
envVars["SCW_DEFAULT_PROJECT_ID"] = os.Getenv("SCW_DEFAULT_PROJECT_ID")
|
||||
envVars["SCW_DEFAULT_REGION"] = os.Getenv("SCW_DEFAULT_REGION")
|
||||
envVars["SCW_DEFAULT_ZONE"] = os.Getenv("SCW_DEFAULT_ZONE")
|
||||
}
|
||||
|
||||
for _, envVar := range proxy.GetProxyEnvVars(t.Cluster.Spec.Networking.EgressProxy) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi/utils"
|
||||
"sigs.k8s.io/yaml"
|
||||
|
||||
"github.com/scaleway/scaleway-sdk-go/scw"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/apis/nodeup"
|
||||
"k8s.io/kops/pkg/model/resources"
|
||||
|
|
@ -213,15 +212,6 @@ func (b *BootstrapScript) buildEnvironmentVariables(cluster *kops.Cluster) (map[
|
|||
if cluster.Spec.GetCloudProvider() == kops.CloudProviderScaleway {
|
||||
errList := []error(nil)
|
||||
|
||||
region, err := scw.ParseRegion(os.Getenv("SCW_DEFAULT_REGION"))
|
||||
if err != nil {
|
||||
errList = append(errList, fmt.Errorf("error parsing SCW_DEFAULT_REGION: %w", err))
|
||||
}
|
||||
zone, err := scw.ParseZone(os.Getenv("SCW_DEFAULT_ZONE"))
|
||||
if err != nil {
|
||||
errList = append(errList, fmt.Errorf("error parsing SCW_DEFAULT_ZONE: %w", err))
|
||||
}
|
||||
|
||||
// We make sure that the credentials env vars are defined
|
||||
scwAccessKey := os.Getenv("SCW_ACCESS_KEY")
|
||||
if scwAccessKey == "" {
|
||||
|
|
@ -241,8 +231,6 @@ func (b *BootstrapScript) buildEnvironmentVariables(cluster *kops.Cluster) (map[
|
|||
return nil, errors.NewAggregate(errList)
|
||||
}
|
||||
|
||||
env["SCW_DEFAULT_REGION"] = string(region)
|
||||
env["SCW_DEFAULT_ZONE"] = string(zone)
|
||||
env["SCW_ACCESS_KEY"] = scwAccessKey
|
||||
env["SCW_SECRET_KEY"] = scwSecretKey
|
||||
env["SCW_DEFAULT_PROJECT_ID"] = scwProjectID
|
||||
|
|
|
|||
|
|
@ -57,12 +57,19 @@ func NewScwCloudProvider() (*ScwCloudProvider, error) {
|
|||
}
|
||||
klog.V(4).Infof("Found zone of the running server: %v", zone)
|
||||
|
||||
region, err := scaleway.ParseRegionFromZone(zone)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to parse Scaleway region: %s", err)
|
||||
}
|
||||
klog.V(4).Infof("Found region of the running server: %v", region)
|
||||
|
||||
privateIP := metadata.PrivateIP
|
||||
klog.V(4).Infof("Found first private net IP of the running server: %q", privateIP)
|
||||
|
||||
scwClient, err := scw.NewClient(
|
||||
scw.WithUserAgent(scaleway.KopsUserAgentPrefix+kopsv.Version),
|
||||
scw.WithEnv(),
|
||||
scw.WithDefaultRegion(region),
|
||||
scw.WithDefaultZone(zone),
|
||||
)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -89,18 +89,17 @@ type scwCloudImplementation struct {
|
|||
instanceAPI *instance.API
|
||||
}
|
||||
|
||||
// NewScwCloud returns a Cloud with a Scaleway Client using the env vars SCW_ACCESS_KEY, SCW_SECRET_KEY,
|
||||
// SCW_DEFAULT_PROJECT_ID, SCW_DEFAULT_REGION and SCW_DEFAULT_ZONE
|
||||
// NewScwCloud returns a Cloud with a Scaleway Client using the env vars SCW_ACCESS_KEY, SCW_SECRET_KEY and SCW_DEFAULT_PROJECT_ID
|
||||
func NewScwCloud(tags map[string]string) (ScwCloud, error) {
|
||||
errList := []error(nil)
|
||||
|
||||
region, err := scw.ParseRegion(os.Getenv("SCW_DEFAULT_REGION"))
|
||||
region, err := scw.ParseRegion(tags["region"])
|
||||
if err != nil {
|
||||
errList = append(errList, fmt.Errorf("error parsing SCW_DEFAULT_REGION: %w", err))
|
||||
errList = append(errList, fmt.Errorf("error parsing Scaleway region: %w", err))
|
||||
}
|
||||
zone, err := scw.ParseZone(os.Getenv("SCW_DEFAULT_ZONE"))
|
||||
zone, err := scw.ParseZone(tags["zone"])
|
||||
if err != nil {
|
||||
errList = append(errList, fmt.Errorf("error parsing SCW_DEFAULT_ZONE: %w", err))
|
||||
errList = append(errList, fmt.Errorf("error parsing Scaleway zone: %w", err))
|
||||
}
|
||||
|
||||
// We make sure that the credentials env vars are defined
|
||||
|
|
|
|||
|
|
@ -18,9 +18,12 @@ package scaleway
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/scaleway/scaleway-sdk-go/scw"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
)
|
||||
|
||||
// isHTTPCodeError returns true if err is an http error with code statusCode
|
||||
|
|
@ -41,3 +44,23 @@ func is404Error(err error) bool {
|
|||
notFoundError := &scw.ResourceNotFoundError{}
|
||||
return isHTTPCodeError(err, http.StatusNotFound) || errors.As(err, ¬FoundError)
|
||||
}
|
||||
|
||||
func ParseZoneFromClusterSpec(clusterSpec kops.ClusterSpec) (scw.Zone, error) {
|
||||
zone := ""
|
||||
for _, subnet := range clusterSpec.Networking.Subnets {
|
||||
if zone == "" {
|
||||
zone = subnet.Zone
|
||||
} else if zone != subnet.Zone {
|
||||
return "", fmt.Errorf("scaleway currently only supports clusters in the same zone")
|
||||
}
|
||||
}
|
||||
return scw.Zone(zone), nil
|
||||
}
|
||||
|
||||
func ParseRegionFromZone(zone scw.Zone) (region scw.Region, err error) {
|
||||
region, err = scw.ParseRegion(strings.TrimRight(string(zone), "-123"))
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("could not determine region from zone %s: %w", zone, err)
|
||||
}
|
||||
return region, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ import (
|
|||
gcetpm "k8s.io/kops/upup/pkg/fi/cloudup/gce/tpm"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/hetzner"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/openstack"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/scaleway"
|
||||
"k8s.io/kops/util/pkg/env"
|
||||
"sigs.k8s.io/yaml"
|
||||
)
|
||||
|
|
@ -190,6 +191,23 @@ func (tf *TemplateFunctions) AddTo(dest template.FuncMap, secretStore fi.SecretS
|
|||
return "[global]\n" + strings.Join(lines, "\n") + "\n"
|
||||
}
|
||||
|
||||
dest["SCW_ACCESS_KEY"] = func() string {
|
||||
return os.Getenv("SCW_ACCESS_KEY")
|
||||
}
|
||||
dest["SCW_SECRET_KEY"] = func() string {
|
||||
return os.Getenv("SCW_SECRET_KEY")
|
||||
}
|
||||
dest["SCW_DEFAULT_PROJECT_ID"] = func() string {
|
||||
return os.Getenv("SCW_DEFAULT_PROJECT_ID")
|
||||
}
|
||||
dest["SCW_DEFAULT_REGION"] = func() string {
|
||||
return tf.cloud.Region()
|
||||
}
|
||||
dest["SCW_DEFAULT_ZONE"] = func() string {
|
||||
scwCloud := tf.cloud.(scaleway.ScwCloud)
|
||||
return scwCloud.Zone()
|
||||
}
|
||||
|
||||
if featureflag.Spotinst.Enabled() {
|
||||
if creds, err := spotinst.LoadCredentials(); err == nil {
|
||||
dest["SpotinstToken"] = func() string { return creds.Token }
|
||||
|
|
|
|||
|
|
@ -163,11 +163,24 @@ func BuildCloud(cluster *kops.Cluster) (fi.Cloud, error) {
|
|||
}
|
||||
case kops.CloudProviderScaleway:
|
||||
{
|
||||
cloudTags := map[string]string{scaleway.TagClusterName: cluster.ObjectMeta.Name}
|
||||
zone, err := scaleway.ParseZoneFromClusterSpec(cluster.Spec)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error initializing Scaleway cloud: %w", err)
|
||||
}
|
||||
region, err := scaleway.ParseRegionFromZone(zone)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error initializing Scaleway cloud: %w", err)
|
||||
}
|
||||
|
||||
cloudTags := map[string]string{
|
||||
scaleway.TagClusterName: cluster.ObjectMeta.Name,
|
||||
"zone": string(zone),
|
||||
"region": string(region),
|
||||
}
|
||||
|
||||
scwCloud, err := scaleway.NewScwCloud(cloudTags)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error initializing scaleway cloud: %s", err)
|
||||
return nil, fmt.Errorf("error initializing Scaleway cloud: %w", err)
|
||||
}
|
||||
|
||||
cloud = scwCloud
|
||||
|
|
|
|||
|
|
@ -76,8 +76,6 @@ func BuildSystemComponentEnvVars(spec *kops.ClusterSpec) EnvVars {
|
|||
vars.addEnvVariableIfExist("SCW_ACCESS_KEY")
|
||||
vars.addEnvVariableIfExist("SCW_SECRET_KEY")
|
||||
vars.addEnvVariableIfExist("SCW_DEFAULT_PROJECT_ID")
|
||||
vars.addEnvVariableIfExist("SCW_DEFAULT_REGION")
|
||||
vars.addEnvVariableIfExist("SCW_DEFAULT_ZONE")
|
||||
|
||||
return vars
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue