diff --git a/pkg/apis/kops/validation/instancegroup.go b/pkg/apis/kops/validation/instancegroup.go index 4a1b809296..98eb59152b 100644 --- a/pkg/apis/kops/validation/instancegroup.go +++ b/pkg/apis/kops/validation/instancegroup.go @@ -88,6 +88,12 @@ func ValidateInstanceGroup(g *kops.InstanceGroup) error { } } + for i, x := range g.Spec.Volumes { + if x.DeviceName == nil { + return field.Invalid(field.NewPath("volumes").Index(i).Child("deviceName"), "", "volume must have a device name") + } + } + if err := validateInstanceProfile(g.Spec.IAM, field.NewPath("iam")); err != nil { return err } diff --git a/pkg/apis/kops/validation/legacy.go b/pkg/apis/kops/validation/legacy.go index 7a0e21dbfe..65a65ab394 100644 --- a/pkg/apis/kops/validation/legacy.go +++ b/pkg/apis/kops/validation/legacy.go @@ -17,6 +17,7 @@ limitations under the License. package validation import ( + "errors" "fmt" "net" "strings" @@ -801,6 +802,12 @@ func DeepValidate(c *kops.Cluster, groups []*kops.InstanceGroup, strict bool) er if len(errs) != 0 { return errs[0] } + default: + for _, x := range groups { + if len(x.Spec.Volumes) > 0 { + return errors.New("instancegroup volumes are only available with aws at present") + } + } } }