From 09295cd664353308441b2bf2e029b42e06fd593b Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Fri, 6 Nov 2015 09:53:57 -0800 Subject: [PATCH] Headless services should not need to declare ports --- pkg/api/validation/validation.go | 2 +- pkg/api/validation/validation_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index ac53ae8b3bc..3783255d4ec 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -1224,7 +1224,7 @@ func ValidateService(service *api.Service) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} allErrs = append(allErrs, ValidateObjectMeta(&service.ObjectMeta, true, ValidateServiceName).Prefix("metadata")...) - if len(service.Spec.Ports) == 0 { + if len(service.Spec.Ports) == 0 && service.Spec.ClusterIP != api.ClusterIPNone { allErrs = append(allErrs, errs.NewFieldRequired("spec.ports")) } if service.Spec.Type == api.ServiceTypeLoadBalancer { diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 08a60b5100d..bfd0dd86bc7 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -1792,6 +1792,14 @@ func TestValidateService(t *testing.T) { }, numErrs: 1, }, + { + name: "missing ports but headless", + tweakSvc: func(s *api.Service) { + s.Spec.Ports = nil + s.Spec.ClusterIP = api.ClusterIPNone + }, + numErrs: 0, + }, { name: "empty port[0] name", tweakSvc: func(s *api.Service) {