mirror of https://github.com/kubernetes/kops.git
Refactor terraform provider version logic
As suggested in review of 14926, this approach might be more concise and clearer.
This commit is contained in:
parent
aeca5f9b54
commit
3a683e1444
|
@ -228,36 +228,37 @@ func (t *TerraformTarget) writeTerraform(buf *bytes.Buffer) {
|
||||||
|
|
||||||
providerKeys := sortedKeysForMap(providers)
|
providerKeys := sortedKeysForMap(providers)
|
||||||
for _, provider := range providerKeys {
|
for _, provider := range providerKeys {
|
||||||
var tf map[string]*terraformWriter.Literal
|
// providerVersions could be a constant, but keeping it here
|
||||||
switch provider {
|
// because it isn't shared and to allow for more complex logic in future.
|
||||||
case "aws":
|
providerVersions := map[string]map[string]string{
|
||||||
tf = map[string]*terraformWriter.Literal{
|
"aws": {
|
||||||
"source": terraformWriter.LiteralFromStringValue("hashicorp/aws"),
|
"source": "hashicorp/aws",
|
||||||
"version": terraformWriter.LiteralFromStringValue(">= 4.0.0"),
|
"version": ">= 4.0.0",
|
||||||
}
|
},
|
||||||
|
"google": {
|
||||||
|
"source": "hashicorp/google",
|
||||||
|
"version": ">= 2.19.0",
|
||||||
|
},
|
||||||
|
"hcloud": {
|
||||||
|
"source": "hetznercloud/hcloud",
|
||||||
|
"version": ">= 1.35.1",
|
||||||
|
},
|
||||||
|
"spotinst": {
|
||||||
|
"source": "spotinst/spotinst",
|
||||||
|
"version": ">= 1.33.0",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
case "google":
|
providerVersion := providerVersions[provider]
|
||||||
tf = map[string]*terraformWriter.Literal{
|
if providerVersion == nil {
|
||||||
"source": terraformWriter.LiteralFromStringValue("hashicorp/google"),
|
|
||||||
"version": terraformWriter.LiteralFromStringValue(">= 2.19.0"),
|
|
||||||
}
|
|
||||||
|
|
||||||
case "hcloud":
|
|
||||||
tf = map[string]*terraformWriter.Literal{
|
|
||||||
"source": terraformWriter.LiteralFromStringValue("hetznercloud/hcloud"),
|
|
||||||
"version": terraformWriter.LiteralFromStringValue(">= 1.35.1"),
|
|
||||||
}
|
|
||||||
|
|
||||||
case "spotinst":
|
|
||||||
tf = map[string]*terraformWriter.Literal{
|
|
||||||
"source": terraformWriter.LiteralFromStringValue("spotinst/spotinst"),
|
|
||||||
"version": terraformWriter.LiteralFromStringValue(">= 1.33.0"),
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
klog.Fatalf("unhandled provider %q", provider)
|
klog.Fatalf("unhandled provider %q", provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tf := make(map[string]*terraformWriter.Literal)
|
||||||
|
for k, v := range providerVersion {
|
||||||
|
tf[k] = terraformWriter.LiteralFromStringValue(v)
|
||||||
|
}
|
||||||
|
|
||||||
if aliases := providerAliases[provider]; len(aliases) != 0 {
|
if aliases := providerAliases[provider]; len(aliases) != 0 {
|
||||||
var configurationAliases []*terraformWriter.Literal
|
var configurationAliases []*terraformWriter.Literal
|
||||||
for _, alias := range providerAliases[provider] {
|
for _, alias := range providerAliases[provider] {
|
||||||
|
|
Loading…
Reference in New Issue