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..6478d125 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 { @@ -15,8 +16,13 @@ func (e ServiceSpecMapper) ToInternal(data map[string]interface{}) { return } - data["clusterIp"] = "None" - data["type"] = "ClusterIP" + if convert.IsEmpty(data["hostname"]) { + data["type"] = "ClusterIP" + data["clusterIp"] = "None" + } else { + data["type"] = "ExternalName" + data["clusterIp"] = "" + } } func (e ServiceSpecMapper) ModifySchema(schema *types.Schema, schemas *types.Schemas) error {