From 5f1e9bc9627487a2ee53583aff85d0829770846a Mon Sep 17 00:00:00 2001 From: Peter Rifel Date: Mon, 19 Oct 2020 22:50:17 -0600 Subject: [PATCH] Use AWS SDK list of enum values for api validation --- pkg/apis/kops/validation/BUILD.bazel | 1 + pkg/apis/kops/validation/aws.go | 4 ++-- pkg/apis/kops/validation/instancegroup.go | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/apis/kops/validation/BUILD.bazel b/pkg/apis/kops/validation/BUILD.bazel index 0cac0f3b51..1b8ce058ba 100644 --- a/pkg/apis/kops/validation/BUILD.bazel +++ b/pkg/apis/kops/validation/BUILD.bazel @@ -25,6 +25,7 @@ go_library( "//upup/pkg/fi:go_default_library", "//upup/pkg/fi/cloudup/awsup:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/arn:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library", "//vendor/github.com/blang/semver/v4:go_default_library", "//vendor/golang.org/x/net/ipv4:go_default_library", "//vendor/golang.org/x/net/ipv6:go_default_library", diff --git a/pkg/apis/kops/validation/aws.go b/pkg/apis/kops/validation/aws.go index 3dd0bb959b..f18f17a617 100644 --- a/pkg/apis/kops/validation/aws.go +++ b/pkg/apis/kops/validation/aws.go @@ -20,6 +20,7 @@ import ( "strconv" "strings" + "github.com/aws/aws-sdk-go/service/ec2" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kops/pkg/apis/kops" @@ -104,9 +105,8 @@ func awsValidateSpotDurationInMinute(fieldPath *field.Path, ig *kops.InstanceGro func awsValidateInstanceInterruptionBehavior(fieldPath *field.Path, ig *kops.InstanceGroup) field.ErrorList { allErrs := field.ErrorList{} if ig.Spec.InstanceInterruptionBehavior != nil { - validInterruptionBehaviors := []string{"terminate", "hibernate", "stop"} instanceInterruptionBehavior := *ig.Spec.InstanceInterruptionBehavior - allErrs = append(allErrs, IsValidValue(fieldPath, &instanceInterruptionBehavior, validInterruptionBehaviors)...) + allErrs = append(allErrs, IsValidValue(fieldPath, &instanceInterruptionBehavior, ec2.InstanceInterruptionBehavior_Values())...) } return allErrs } diff --git a/pkg/apis/kops/validation/instancegroup.go b/pkg/apis/kops/validation/instancegroup.go index 11922432d5..4bde947961 100644 --- a/pkg/apis/kops/validation/instancegroup.go +++ b/pkg/apis/kops/validation/instancegroup.go @@ -23,6 +23,7 @@ import ( "k8s.io/kops/pkg/nodeidentity/aws" "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/service/ec2" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" @@ -55,7 +56,7 @@ func ValidateInstanceGroup(g *kops.InstanceGroup, cloud fi.Cloud) field.ErrorLis } if g.Spec.Tenancy != "" { - allErrs = append(allErrs, IsValidValue(field.NewPath("spec", "tenancy"), &g.Spec.Tenancy, []string{"default", "dedicated", "host"})...) + allErrs = append(allErrs, IsValidValue(field.NewPath("spec", "tenancy"), &g.Spec.Tenancy, ec2.Tenancy_Values())...) } if g.Spec.MaxSize != nil && g.Spec.MinSize != nil {