featureflag and env vars for nodeup ready for testing

This commit is contained in:
Leïla MARABESE 2022-09-23 16:50:53 +02:00
parent 26df4dc4fe
commit 0fa996890d
8 changed files with 59 additions and 1 deletions

View File

@ -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
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
VERSION=$(shell tools/get_version.sh | grep VERSION | awk '{print $$2}')

View File

@ -153,6 +153,14 @@ func (i *Installation) buildEnvFile() *nodetasks.File {
envVars["AZURE_STORAGE_ACCOUNT"] = os.Getenv("AZURE_STORAGE_ACCOUNT")
}
if os.Getenv("SCW_ACCESS_KEY") != "" {
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 := ""
for key, value := range envVars {
sysconfig += key + "=" + value + "\n"

View File

@ -310,6 +310,14 @@ func (t *ProtokubeBuilder) buildEnvFile() (*nodetasks.File, error) {
envVars["AZURE_STORAGE_ACCOUNT"] = os.Getenv("AZURE_STORAGE_ACCOUNT")
}
if t.CloudProvider == kops.CloudProviderScaleway {
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.EgressProxy) {
envVars[envVar.Name] = envVar.Value
}

View File

@ -292,6 +292,7 @@ const (
CloudProviderHetzner CloudProviderID = "hetzner"
CloudProviderOpenstack CloudProviderID = "openstack"
CloudProviderAzure CloudProviderID = "azure"
CloudProviderScaleway CloudProviderID = "scaleway"
)
// FindImage returns the image for the cloudprovider, or nil if none found

View File

@ -32,6 +32,9 @@ func SupportedClouds() []kops.CloudProviderID {
if featureflag.Azure.Enabled() {
clouds = append(clouds, kops.CloudProviderAzure)
}
if featureflag.Scaleway.Enabled() {
clouds = append(clouds, kops.CloudProviderScaleway)
}
return clouds
}

View File

@ -90,6 +90,8 @@ var (
Karpenter = new("Karpenter", Bool(false))
// ImageDigest remaps all manifests with image digests
ImageDigest = new("ImageDigest", Bool(true))
// Scaleway toggles the Scaleway Cloud support.
Scaleway = new("Scaleway", Bool(false))
)
// FeatureFlag defines a feature flag

View File

@ -31,6 +31,7 @@ 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,6 +214,34 @@ func (b *BootstrapScript) buildEnvironmentVariables(cluster *kops.Cluster) (map[
}
}
if cluster.Spec.GetCloudProvider() == kops.CloudProviderScaleway {
region, err := scw.ParseRegion(os.Getenv("SCW_DEFAULT_REGION"))
if err != nil {
return nil, fmt.Errorf("error parsing SCW_DEFAULT_REGION: %w", err)
}
env["SCW_DEFAULT_REGION"] = string(region)
zone, err := scw.ParseZone(os.Getenv("SCW_DEFAULT_ZONE"))
if err != nil {
return nil, fmt.Errorf("error parsing SCW_DEFAULT_ZONE: %w", err)
}
env["SCW_DEFAULT_ZONE"] = string(zone)
scwAccessKey := os.Getenv("SCW_ACCESS_KEY")
if scwAccessKey == "" {
return nil, fmt.Errorf("SCW_ACCESS_KEY has to be set as an environment variable")
}
env["SCW_ACCESS_KEY"] = scwAccessKey
scwSecretKey := os.Getenv("SCW_SECRET_KEY")
if scwSecretKey != "" {
return nil, fmt.Errorf("SCW_SECRET_KEY has to be set as an environment variable")
}
env["SCW_SECRET_KEY"] = scwSecretKey
scwProjectID := os.Getenv("SCW_DEFAULT_PROJECT_ID")
if scwProjectID != "" {
return nil, fmt.Errorf("SCW_DEFAULT_PROJECT_ID has to be set as an environment variable")
}
env["SCW_DEFAULT_PROJECT_ID"] = scwProjectID
}
return env, nil
}

View File

@ -72,6 +72,13 @@ func BuildSystemComponentEnvVars(spec *kops.ClusterSpec) EnvVars {
// Azure related values.
vars.addEnvVariableIfExist("AZURE_STORAGE_ACCOUNT")
// Scaleway related values.
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
}