diff --git a/apis/project.cattle.io/v3/schema/service_spec_mapper.go b/apis/project.cattle.io/v3/schema/service_spec_mapper.go index f9192a41..ee832696 100644 --- a/apis/project.cattle.io/v3/schema/service_spec_mapper.go +++ b/apis/project.cattle.io/v3/schema/service_spec_mapper.go @@ -2,6 +2,7 @@ package schema import ( "github.com/rancher/norman/types" + "github.com/rancher/norman/types/convert" ) type ServiceSpecMapper struct { @@ -14,9 +15,12 @@ func (e ServiceSpecMapper) ToInternal(data map[string]interface{}) { if data == nil { return } - - data["clusterIp"] = "None" - data["type"] = "ClusterIP" + if convert.IsEmpty(data["hostname"]) { + data["type"] = "ClusterIP" + data["clusterIp"] = "None" + } else { + data["type"] = "ExternalName" + } } func (e ServiceSpecMapper) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {