mirror of https://github.com/kubernetes/kops.git
Merge pull request #14878 from johngmyers/api-ptr-map
Simplify pointers to maps in API
This commit is contained in:
commit
4d7b3df665
|
|
@ -97,9 +97,9 @@ type ClusterSpec struct {
|
|||
// 'external': do not apply updates automatically; they are applied manually or by an external system
|
||||
UpdatePolicy *string `json:"updatePolicy,omitempty"`
|
||||
// ExternalPolicies allows the insertion of pre-existing managed policies on IG Roles
|
||||
ExternalPolicies *map[string][]string `json:"externalPolicies,omitempty"`
|
||||
ExternalPolicies map[string][]string `json:"externalPolicies,omitempty"`
|
||||
// Additional policies to add for roles
|
||||
AdditionalPolicies *map[string]string `json:"additionalPolicies,omitempty"`
|
||||
AdditionalPolicies map[string]string `json:"additionalPolicies,omitempty"`
|
||||
// A collection of files assets for deployed cluster wide
|
||||
FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
|
||||
// EtcdClusters stores the configuration for each cluster
|
||||
|
|
@ -757,13 +757,13 @@ func (t *TargetSpec) IsEmpty() bool {
|
|||
// TerraformSpec allows us to specify terraform config in an extensible way
|
||||
type TerraformSpec struct {
|
||||
// ProviderExtraConfig contains key/value pairs to add to the main terraform provider block
|
||||
ProviderExtraConfig *map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
ProviderExtraConfig map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
// FilesProviderExtraConfig contains key/value pairs to add to the terraform provider block used for managed files
|
||||
FilesProviderExtraConfig *map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
FilesProviderExtraConfig map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
}
|
||||
|
||||
func (t *TerraformSpec) IsEmpty() bool {
|
||||
return t.ProviderExtraConfig == nil
|
||||
return len(t.ProviderExtraConfig) == 0 && len(t.FilesProviderExtraConfig) == 0
|
||||
}
|
||||
|
||||
// FillDefaults populates default values.
|
||||
|
|
|
|||
|
|
@ -155,9 +155,9 @@ type ClusterSpec struct {
|
|||
// 'external': do not apply updates automatically; they are applied manually or by an external system
|
||||
UpdatePolicy *string `json:"updatePolicy,omitempty"`
|
||||
// ExternalPolicies allows the insertion of pre-existing managed policies on IG Roles
|
||||
ExternalPolicies *map[string][]string `json:"externalPolicies,omitempty"`
|
||||
ExternalPolicies map[string][]string `json:"externalPolicies,omitempty"`
|
||||
// Additional policies to add for roles
|
||||
AdditionalPolicies *map[string]string `json:"additionalPolicies,omitempty"`
|
||||
AdditionalPolicies map[string]string `json:"additionalPolicies,omitempty"`
|
||||
// A collection of files assets for deployed cluster wide
|
||||
FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
|
||||
// EtcdClusters stores the configuration for each cluster
|
||||
|
|
@ -763,13 +763,13 @@ func (t *TargetSpec) IsEmpty() bool {
|
|||
// TerraformSpec allows us to specify terraform config in an extensible way
|
||||
type TerraformSpec struct {
|
||||
// ProviderExtraConfig contains key/value pairs to add to the main terraform provider block
|
||||
ProviderExtraConfig *map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
ProviderExtraConfig map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
// FilesProviderExtraConfig contains key/value pairs to add to the terraform provider block used for managed files
|
||||
FilesProviderExtraConfig *map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
FilesProviderExtraConfig map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
}
|
||||
|
||||
func (t *TerraformSpec) IsEmpty() bool {
|
||||
return t.ProviderExtraConfig == nil
|
||||
return len(t.ProviderExtraConfig) == 0 && len(t.FilesProviderExtraConfig) == 0
|
||||
}
|
||||
|
||||
// EnvVar represents an environment variable present in a Container.
|
||||
|
|
|
|||
|
|
@ -76,24 +76,23 @@ func Convert_v1alpha2_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out *kops
|
|||
return err
|
||||
}
|
||||
if in.AdditionalPolicies != nil {
|
||||
policies := make(map[string]string, len(*in.AdditionalPolicies))
|
||||
for k, v := range *in.AdditionalPolicies {
|
||||
out.AdditionalPolicies = make(map[string]string, len(in.AdditionalPolicies))
|
||||
for k, v := range in.AdditionalPolicies {
|
||||
if k == "master" {
|
||||
k = "control-plane"
|
||||
}
|
||||
policies[k] = v
|
||||
out.AdditionalPolicies[k] = v
|
||||
}
|
||||
out.AdditionalPolicies = &policies
|
||||
}
|
||||
if in.ExternalPolicies != nil {
|
||||
policies := make(map[string][]string, len(*in.ExternalPolicies))
|
||||
for k, v := range *in.ExternalPolicies {
|
||||
policies := make(map[string][]string, len(in.ExternalPolicies))
|
||||
for k, v := range in.ExternalPolicies {
|
||||
if k == "master" {
|
||||
k = "control-plane"
|
||||
}
|
||||
policies[k] = v
|
||||
}
|
||||
out.ExternalPolicies = &policies
|
||||
out.ExternalPolicies = policies
|
||||
}
|
||||
if in.LegacyNetworking != nil {
|
||||
if err := autoConvert_v1alpha2_NetworkingSpec_To_kops_NetworkingSpec(in.LegacyNetworking, &out.Networking, s); err != nil {
|
||||
|
|
@ -317,24 +316,22 @@ func Convert_kops_ClusterSpec_To_v1alpha2_ClusterSpec(in *kops.ClusterSpec, out
|
|||
return err
|
||||
}
|
||||
if in.AdditionalPolicies != nil {
|
||||
policies := make(map[string]string, len(*in.AdditionalPolicies))
|
||||
for k, v := range *in.AdditionalPolicies {
|
||||
out.AdditionalPolicies = make(map[string]string, len(in.AdditionalPolicies))
|
||||
for k, v := range in.AdditionalPolicies {
|
||||
if k == "control-plane" {
|
||||
k = "master"
|
||||
}
|
||||
policies[k] = v
|
||||
out.AdditionalPolicies[k] = v
|
||||
}
|
||||
out.AdditionalPolicies = &policies
|
||||
}
|
||||
if in.ExternalPolicies != nil {
|
||||
policies := make(map[string][]string, len(*in.ExternalPolicies))
|
||||
for k, v := range *in.ExternalPolicies {
|
||||
out.ExternalPolicies = make(map[string][]string, len(in.ExternalPolicies))
|
||||
for k, v := range in.ExternalPolicies {
|
||||
if k == "control-plane" {
|
||||
k = "master"
|
||||
}
|
||||
policies[k] = v
|
||||
out.ExternalPolicies[k] = v
|
||||
}
|
||||
out.ExternalPolicies = &policies
|
||||
}
|
||||
out.LegacyNetworking = &NetworkingSpec{}
|
||||
if err := autoConvert_kops_NetworkingSpec_To_v1alpha2_NetworkingSpec(&in.Networking, out.LegacyNetworking, s); err != nil {
|
||||
|
|
|
|||
|
|
@ -1055,32 +1055,24 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
|
|||
}
|
||||
if in.ExternalPolicies != nil {
|
||||
in, out := &in.ExternalPolicies, &out.ExternalPolicies
|
||||
*out = new(map[string][]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.AdditionalPolicies != nil {
|
||||
in, out := &in.AdditionalPolicies, &out.AdditionalPolicies
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FileAssets != nil {
|
||||
|
|
@ -5293,24 +5285,16 @@ func (in *TerraformSpec) DeepCopyInto(out *TerraformSpec) {
|
|||
*out = *in
|
||||
if in.ProviderExtraConfig != nil {
|
||||
in, out := &in.ProviderExtraConfig, &out.ProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FilesProviderExtraConfig != nil {
|
||||
in, out := &in.FilesProviderExtraConfig, &out.FilesProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
|
|||
|
|
@ -94,9 +94,9 @@ type ClusterSpec struct {
|
|||
// 'external': do not apply updates automatically; they are applied manually or by an external system
|
||||
UpdatePolicy *string `json:"updatePolicy,omitempty"`
|
||||
// ExternalPolicies allows the insertion of pre-existing managed policies on IG Roles
|
||||
ExternalPolicies *map[string][]string `json:"externalPolicies,omitempty"`
|
||||
ExternalPolicies map[string][]string `json:"externalPolicies,omitempty"`
|
||||
// Additional policies to add for roles
|
||||
AdditionalPolicies *map[string]string `json:"additionalPolicies,omitempty"`
|
||||
AdditionalPolicies map[string]string `json:"additionalPolicies,omitempty"`
|
||||
// A collection of files assets for deployed cluster wide
|
||||
FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
|
||||
// EtcdClusters stores the configuration for each cluster
|
||||
|
|
@ -695,13 +695,13 @@ func (t *TargetSpec) IsEmpty() bool {
|
|||
// TerraformSpec allows us to specify terraform config in an extensible way
|
||||
type TerraformSpec struct {
|
||||
// ProviderExtraConfig contains key/value pairs to add to the main terraform provider block
|
||||
ProviderExtraConfig *map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
ProviderExtraConfig map[string]string `json:"providerExtraConfig,omitempty"`
|
||||
// FilesProviderExtraConfig contains key/value pairs to add to the terraform provider block used for managed files
|
||||
FilesProviderExtraConfig *map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
FilesProviderExtraConfig map[string]string `json:"filesProviderExtraConfig,omitempty"`
|
||||
}
|
||||
|
||||
func (t *TerraformSpec) IsEmpty() bool {
|
||||
return t.ProviderExtraConfig == nil
|
||||
return len(t.ProviderExtraConfig) == 0 && len(t.FilesProviderExtraConfig) == 0
|
||||
}
|
||||
|
||||
// EnvVar represents an environment variable present in a Container.
|
||||
|
|
|
|||
|
|
@ -976,32 +976,24 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
|
|||
}
|
||||
if in.ExternalPolicies != nil {
|
||||
in, out := &in.ExternalPolicies, &out.ExternalPolicies
|
||||
*out = new(map[string][]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.AdditionalPolicies != nil {
|
||||
in, out := &in.AdditionalPolicies, &out.AdditionalPolicies
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FileAssets != nil {
|
||||
|
|
@ -5146,24 +5138,16 @@ func (in *TerraformSpec) DeepCopyInto(out *TerraformSpec) {
|
|||
*out = *in
|
||||
if in.ProviderExtraConfig != nil {
|
||||
in, out := &in.ProviderExtraConfig, &out.ProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FilesProviderExtraConfig != nil {
|
||||
in, out := &in.FilesProviderExtraConfig, &out.FilesProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
|
|||
|
|
@ -189,16 +189,12 @@ func validateClusterSpec(spec *kops.ClusterSpec, c *kops.Cluster, fieldPath *fie
|
|||
}
|
||||
|
||||
// IAM additional policies
|
||||
if spec.AdditionalPolicies != nil {
|
||||
for k, v := range *spec.AdditionalPolicies {
|
||||
allErrs = append(allErrs, validateAdditionalPolicy(k, v, fieldPath.Child("additionalPolicies"))...)
|
||||
}
|
||||
for k, v := range spec.AdditionalPolicies {
|
||||
allErrs = append(allErrs, validateAdditionalPolicy(k, v, fieldPath.Child("additionalPolicies"))...)
|
||||
}
|
||||
// IAM external policies
|
||||
if spec.ExternalPolicies != nil {
|
||||
for k, v := range *spec.ExternalPolicies {
|
||||
allErrs = append(allErrs, validateExternalPolicies(k, v, fieldPath.Child("externalPolicies"))...)
|
||||
}
|
||||
for k, v := range spec.ExternalPolicies {
|
||||
allErrs = append(allErrs, validateExternalPolicies(k, v, fieldPath.Child("externalPolicies"))...)
|
||||
}
|
||||
|
||||
// EtcdClusters
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ func Test_Validate_AdditionalPolicies(t *testing.T) {
|
|||
for _, g := range grid {
|
||||
clusterSpec := &kops.ClusterSpec{
|
||||
KubernetesVersion: "1.17.0",
|
||||
AdditionalPolicies: &g.Input,
|
||||
AdditionalPolicies: g.Input,
|
||||
Networking: kops.NetworkingSpec{
|
||||
Subnets: []kops.ClusterSubnetSpec{
|
||||
{Name: "subnet1", Type: kops.SubnetTypePublic},
|
||||
|
|
|
|||
|
|
@ -1073,32 +1073,24 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
|
|||
}
|
||||
if in.ExternalPolicies != nil {
|
||||
in, out := &in.ExternalPolicies, &out.ExternalPolicies
|
||||
*out = new(map[string][]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
*out = make(map[string][]string, len(*in))
|
||||
for key, val := range *in {
|
||||
var outVal []string
|
||||
if val == nil {
|
||||
(*out)[key] = nil
|
||||
} else {
|
||||
in, out := &val, &outVal
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
(*out)[key] = outVal
|
||||
}
|
||||
}
|
||||
if in.AdditionalPolicies != nil {
|
||||
in, out := &in.AdditionalPolicies, &out.AdditionalPolicies
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FileAssets != nil {
|
||||
|
|
@ -5453,24 +5445,16 @@ func (in *TerraformSpec) DeepCopyInto(out *TerraformSpec) {
|
|||
*out = *in
|
||||
if in.ProviderExtraConfig != nil {
|
||||
in, out := &in.ProviderExtraConfig, &out.ProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.FilesProviderExtraConfig != nil {
|
||||
in, out := &in.FilesProviderExtraConfig, &out.FilesProviderExtraConfig
|
||||
*out = new(map[string]string)
|
||||
if **in != nil {
|
||||
in, out := *in, *out
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
|
|||
|
|
@ -324,12 +324,11 @@ func (b *IAMModelBuilder) buildIAMTasks(role iam.Subject, iamName string, c *fi.
|
|||
var externalPolicies []string
|
||||
|
||||
if b.Cluster.Spec.ExternalPolicies != nil {
|
||||
p := *(b.Cluster.Spec.ExternalPolicies)
|
||||
key := roleKey
|
||||
if key == "master" {
|
||||
key = "control-plane"
|
||||
}
|
||||
externalPolicies = append(externalPolicies, p[key]...)
|
||||
externalPolicies = append(externalPolicies, b.Cluster.Spec.ExternalPolicies[key]...)
|
||||
}
|
||||
sort.Strings(externalPolicies)
|
||||
|
||||
|
|
@ -349,9 +348,7 @@ func (b *IAMModelBuilder) buildIAMTasks(role iam.Subject, iamName string, c *fi.
|
|||
{
|
||||
additionalPolicy := ""
|
||||
if b.Cluster.Spec.AdditionalPolicies != nil {
|
||||
additionalPolicies := *(b.Cluster.Spec.AdditionalPolicies)
|
||||
|
||||
additionalPolicy = additionalPolicies[roleKey]
|
||||
additionalPolicy = b.Cluster.Spec.AdditionalPolicies[roleKey]
|
||||
}
|
||||
|
||||
additionalPolicyName := "additional." + iamName
|
||||
|
|
|
|||
|
|
@ -78,9 +78,8 @@ func (t *TerraformTarget) DefaultCheckExisting() bool {
|
|||
// tfGetProviderExtraConfig is a helper function to get extra config with safety checks on the pointers.
|
||||
func tfGetProviderExtraConfig(c *kops.TargetSpec) map[string]string {
|
||||
if c != nil &&
|
||||
c.Terraform != nil &&
|
||||
c.Terraform.FilesProviderExtraConfig != nil {
|
||||
return *c.Terraform.ProviderExtraConfig
|
||||
c.Terraform != nil {
|
||||
return c.Terraform.ProviderExtraConfig
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
@ -88,9 +87,8 @@ func tfGetProviderExtraConfig(c *kops.TargetSpec) map[string]string {
|
|||
// tfGetFilesProviderExtraConfig is a helper function to get extra config with safety checks on the pointers.
|
||||
func tfGetFilesProviderExtraConfig(c *kops.TargetSpec) map[string]string {
|
||||
if c != nil &&
|
||||
c.Terraform != nil &&
|
||||
c.Terraform.FilesProviderExtraConfig != nil {
|
||||
return *c.Terraform.FilesProviderExtraConfig
|
||||
c.Terraform != nil {
|
||||
return c.Terraform.FilesProviderExtraConfig
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue