pull/6/head
Tim Hockin 2017-04-16 13:06:01 -07:00
parent 9153bfa911
commit fa93290b72
8 changed files with 820 additions and 980 deletions

View File

@ -645,15 +645,6 @@ func Convert_v1_Pod_To_api_Pod(in *Pod, out *api.Pod, s conversion.Scope) error
return nil
}
func Convert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *ServiceSpec, s conversion.Scope) error {
if err := autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in, out, s); err != nil {
return err
}
// Publish both externalIPs and deprecatedPublicIPs fields in v1.
out.DeprecatedPublicIPs = in.ExternalIPs
return nil
}
func Convert_v1_Secret_To_api_Secret(in *Secret, out *api.Secret, s conversion.Scope) error {
if err := autoConvert_v1_Secret_To_api_Secret(in, out, s); err != nil {
return err
@ -672,17 +663,6 @@ func Convert_v1_Secret_To_api_Secret(in *Secret, out *api.Secret, s conversion.S
return nil
}
func Convert_v1_ServiceSpec_To_api_ServiceSpec(in *ServiceSpec, out *api.ServiceSpec, s conversion.Scope) error {
if err := autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in, out, s); err != nil {
return err
}
// Prefer the legacy deprecatedPublicIPs field, if provided.
if len(in.DeprecatedPublicIPs) > 0 {
out.ExternalIPs = in.DeprecatedPublicIPs
}
return nil
}
func Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in *api.PodSecurityContext, out *PodSecurityContext, s conversion.Scope) error {
out.SupplementalGroups = in.SupplementalGroups
if in.SELinuxOptions != nil {

File diff suppressed because it is too large Load Diff

View File

@ -3647,21 +3647,10 @@ message ServiceSpec {
// will also accept traffic for this service. These IPs are not managed by
// Kubernetes. The user is responsible for ensuring that traffic arrives
// at a node with this IP. A common example is external load-balancers
// that are not part of the Kubernetes system. A previous form of this
// functionality exists as the deprecatedPublicIPs field. When using this
// field, callers should also clear the deprecatedPublicIPs field.
// that are not part of the Kubernetes system.
// +optional
repeated string externalIPs = 5;
// deprecatedPublicIPs is deprecated and replaced by the externalIPs field
// with almost the exact same semantics. This field is retained in the v1
// API for compatibility until at least 8/20/2016. It will be removed from
// any new API revisions. If both deprecatedPublicIPs *and* externalIPs are
// set, deprecatedPublicIPs is used.
// +k8s:conversion-gen=false
// +optional
repeated string deprecatedPublicIPs = 6;
// Supports "ClientIP" and "None". Used to maintain session affinity.
// Enable client IP based session affinity.
// Must be ClientIP or None.

View File

@ -41477,7 +41477,7 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [10]bool
var yyq2 [9]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
yyq2[0] = len(x.Ports) != 0
@ -41485,14 +41485,13 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
yyq2[2] = x.ClusterIP != ""
yyq2[3] = x.Type != ""
yyq2[4] = len(x.ExternalIPs) != 0
yyq2[5] = len(x.DeprecatedPublicIPs) != 0
yyq2[6] = x.SessionAffinity != ""
yyq2[7] = x.LoadBalancerIP != ""
yyq2[8] = len(x.LoadBalancerSourceRanges) != 0
yyq2[9] = x.ExternalName != ""
yyq2[5] = x.SessionAffinity != ""
yyq2[6] = x.LoadBalancerIP != ""
yyq2[7] = len(x.LoadBalancerSourceRanges) != 0
yyq2[8] = x.ExternalName != ""
var yynn2 int
if yyr2 || yy2arr2 {
r.EncodeArrayStart(10)
r.EncodeArrayStart(9)
} else {
yynn2 = 0
for _, b := range yyq2 {
@ -41645,45 +41644,12 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[5] {
if x.DeprecatedPublicIPs == nil {
r.EncodeNil()
} else {
yym19 := z.EncBinary()
_ = yym19
if false {
} else {
z.F.EncSliceStringV(x.DeprecatedPublicIPs, false, e)
}
}
} else {
r.EncodeNil()
}
} else {
if yyq2[5] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("deprecatedPublicIPs"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.DeprecatedPublicIPs == nil {
r.EncodeNil()
} else {
yym20 := z.EncBinary()
_ = yym20
if false {
} else {
z.F.EncSliceStringV(x.DeprecatedPublicIPs, false, e)
}
}
}
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[6] {
x.SessionAffinity.CodecEncodeSelf(e)
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[6] {
if yyq2[5] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("sessionAffinity"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
@ -41692,9 +41658,9 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[7] {
yym25 := z.EncBinary()
_ = yym25
if yyq2[6] {
yym22 := z.EncBinary()
_ = yym22
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.LoadBalancerIP))
@ -41703,12 +41669,12 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[7] {
if yyq2[6] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("loadBalancerIP"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym26 := z.EncBinary()
_ = yym26
yym23 := z.EncBinary()
_ = yym23
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.LoadBalancerIP))
@ -41717,12 +41683,12 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[8] {
if yyq2[7] {
if x.LoadBalancerSourceRanges == nil {
r.EncodeNil()
} else {
yym28 := z.EncBinary()
_ = yym28
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
z.F.EncSliceStringV(x.LoadBalancerSourceRanges, false, e)
@ -41732,15 +41698,15 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeNil()
}
} else {
if yyq2[8] {
if yyq2[7] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("loadBalancerSourceRanges"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.LoadBalancerSourceRanges == nil {
r.EncodeNil()
} else {
yym29 := z.EncBinary()
_ = yym29
yym26 := z.EncBinary()
_ = yym26
if false {
} else {
z.F.EncSliceStringV(x.LoadBalancerSourceRanges, false, e)
@ -41750,9 +41716,9 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[9] {
yym31 := z.EncBinary()
_ = yym31
if yyq2[8] {
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ExternalName))
@ -41761,12 +41727,12 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[9] {
if yyq2[8] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("externalName"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym32 := z.EncBinary()
_ = yym32
yym29 := z.EncBinary()
_ = yym29
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ExternalName))
@ -41889,59 +41855,47 @@ func (x *ServiceSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
z.F.DecSliceStringX(yyv11, false, d)
}
}
case "deprecatedPublicIPs":
if r.TryDecodeAsNil() {
x.DeprecatedPublicIPs = nil
} else {
yyv13 := &x.DeprecatedPublicIPs
yym14 := z.DecBinary()
_ = yym14
if false {
} else {
z.F.DecSliceStringX(yyv13, false, d)
}
}
case "sessionAffinity":
if r.TryDecodeAsNil() {
x.SessionAffinity = ""
} else {
yyv15 := &x.SessionAffinity
yyv15.CodecDecodeSelf(d)
yyv13 := &x.SessionAffinity
yyv13.CodecDecodeSelf(d)
}
case "loadBalancerIP":
if r.TryDecodeAsNil() {
x.LoadBalancerIP = ""
} else {
yyv16 := &x.LoadBalancerIP
yym17 := z.DecBinary()
_ = yym17
yyv14 := &x.LoadBalancerIP
yym15 := z.DecBinary()
_ = yym15
if false {
} else {
*((*string)(yyv16)) = r.DecodeString()
*((*string)(yyv14)) = r.DecodeString()
}
}
case "loadBalancerSourceRanges":
if r.TryDecodeAsNil() {
x.LoadBalancerSourceRanges = nil
} else {
yyv18 := &x.LoadBalancerSourceRanges
yym19 := z.DecBinary()
_ = yym19
yyv16 := &x.LoadBalancerSourceRanges
yym17 := z.DecBinary()
_ = yym17
if false {
} else {
z.F.DecSliceStringX(yyv18, false, d)
z.F.DecSliceStringX(yyv16, false, d)
}
}
case "externalName":
if r.TryDecodeAsNil() {
x.ExternalName = ""
} else {
yyv20 := &x.ExternalName
yym21 := z.DecBinary()
_ = yym21
yyv18 := &x.ExternalName
yym19 := z.DecBinary()
_ = yym19
if false {
} else {
*((*string)(yyv20)) = r.DecodeString()
*((*string)(yyv18)) = r.DecodeString()
}
}
default:
@ -41955,16 +41909,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj22 int
var yyb22 bool
var yyhl22 bool = l >= 0
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
var yyj20 int
var yyb20 bool
var yyhl20 bool = l >= 0
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -41972,21 +41926,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Ports = nil
} else {
yyv23 := &x.Ports
yym24 := z.DecBinary()
_ = yym24
yyv21 := &x.Ports
yym22 := z.DecBinary()
_ = yym22
if false {
} else {
h.decSliceServicePort((*[]ServicePort)(yyv23), d)
h.decSliceServicePort((*[]ServicePort)(yyv21), d)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -41994,21 +41948,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Selector = nil
} else {
yyv25 := &x.Selector
yym26 := z.DecBinary()
_ = yym26
yyv23 := &x.Selector
yym24 := z.DecBinary()
_ = yym24
if false {
} else {
z.F.DecMapStringStringX(yyv25, false, d)
z.F.DecMapStringStringX(yyv23, false, d)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42016,21 +41970,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ClusterIP = ""
} else {
yyv27 := &x.ClusterIP
yym28 := z.DecBinary()
_ = yym28
yyv25 := &x.ClusterIP
yym26 := z.DecBinary()
_ = yym26
if false {
} else {
*((*string)(yyv27)) = r.DecodeString()
*((*string)(yyv25)) = r.DecodeString()
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42038,16 +41992,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.Type = ""
} else {
yyv29 := &x.Type
yyv29.CodecDecodeSelf(d)
yyv27 := &x.Type
yyv27.CodecDecodeSelf(d)
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42055,43 +42009,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ExternalIPs = nil
} else {
yyv30 := &x.ExternalIPs
yym31 := z.DecBinary()
_ = yym31
yyv28 := &x.ExternalIPs
yym29 := z.DecBinary()
_ = yym29
if false {
} else {
z.F.DecSliceStringX(yyv30, false, d)
z.F.DecSliceStringX(yyv28, false, d)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.DeprecatedPublicIPs = nil
} else {
yyv32 := &x.DeprecatedPublicIPs
yym33 := z.DecBinary()
_ = yym33
if false {
} else {
z.F.DecSliceStringX(yyv32, false, d)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
} else {
yyb22 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42099,16 +42031,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.SessionAffinity = ""
} else {
yyv34 := &x.SessionAffinity
yyv34.CodecDecodeSelf(d)
yyv30 := &x.SessionAffinity
yyv30.CodecDecodeSelf(d)
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42116,21 +42048,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.LoadBalancerIP = ""
} else {
yyv35 := &x.LoadBalancerIP
yym36 := z.DecBinary()
_ = yym36
yyv31 := &x.LoadBalancerIP
yym32 := z.DecBinary()
_ = yym32
if false {
} else {
*((*string)(yyv35)) = r.DecodeString()
*((*string)(yyv31)) = r.DecodeString()
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42138,21 +42070,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.LoadBalancerSourceRanges = nil
} else {
yyv37 := &x.LoadBalancerSourceRanges
yym38 := z.DecBinary()
_ = yym38
yyv33 := &x.LoadBalancerSourceRanges
yym34 := z.DecBinary()
_ = yym34
if false {
} else {
z.F.DecSliceStringX(yyv37, false, d)
z.F.DecSliceStringX(yyv33, false, d)
}
}
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
@ -42160,26 +42092,26 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
if r.TryDecodeAsNil() {
x.ExternalName = ""
} else {
yyv39 := &x.ExternalName
yym40 := z.DecBinary()
_ = yym40
yyv35 := &x.ExternalName
yym36 := z.DecBinary()
_ = yym36
if false {
} else {
*((*string)(yyv39)) = r.DecodeString()
*((*string)(yyv35)) = r.DecodeString()
}
}
for {
yyj22++
if yyhl22 {
yyb22 = yyj22 > l
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb22 = r.CheckBreak()
yyb20 = r.CheckBreak()
}
if yyb22 {
if yyb20 {
break
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj22-1, "")
z.DecStructFieldNotFound(yyj20-1, "")
}
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
@ -70473,7 +70405,7 @@ func (x codecSelfer1234) decSliceService(v *[]Service, d *codec1978.Decoder) {
yyrg1 := len(yyv1) > 0
yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 464)
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 440)
if yyrt1 {
if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1]

View File

@ -2854,21 +2854,10 @@ type ServiceSpec struct {
// will also accept traffic for this service. These IPs are not managed by
// Kubernetes. The user is responsible for ensuring that traffic arrives
// at a node with this IP. A common example is external load-balancers
// that are not part of the Kubernetes system. A previous form of this
// functionality exists as the deprecatedPublicIPs field. When using this
// field, callers should also clear the deprecatedPublicIPs field.
// that are not part of the Kubernetes system.
// +optional
ExternalIPs []string `json:"externalIPs,omitempty" protobuf:"bytes,5,rep,name=externalIPs"`
// deprecatedPublicIPs is deprecated and replaced by the externalIPs field
// with almost the exact same semantics. This field is retained in the v1
// API for compatibility until at least 8/20/2016. It will be removed from
// any new API revisions. If both deprecatedPublicIPs *and* externalIPs are
// set, deprecatedPublicIPs is used.
// +k8s:conversion-gen=false
// +optional
DeprecatedPublicIPs []string `json:"deprecatedPublicIPs,omitempty" protobuf:"bytes,6,rep,name=deprecatedPublicIPs"`
// Supports "ClientIP" and "None". Used to maintain session affinity.
// Enable client IP based session affinity.
// Must be ClientIP or None.

View File

@ -1819,8 +1819,7 @@ var map_ServiceSpec = map[string]string{
"selector": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#overview",
"clusterIP": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies",
"type": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: http://kubernetes.io/docs/user-guide/services#overview",
"externalIPs": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. A previous form of this functionality exists as the deprecatedPublicIPs field. When using this field, callers should also clear the deprecatedPublicIPs field.",
"deprecatedPublicIPs": "deprecatedPublicIPs is deprecated and replaced by the externalIPs field with almost the exact same semantics. This field is retained in the v1 API for compatibility until at least 8/20/2016. It will be removed from any new API revisions. If both deprecatedPublicIPs *and* externalIPs are set, deprecatedPublicIPs is used.",
"externalIPs": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.",
"sessionAffinity": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies",
"loadBalancerIP": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.",
"loadBalancerSourceRanges": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: http://kubernetes.io/docs/user-guide/services-firewalls",

View File

@ -4691,7 +4691,6 @@ func autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in *ServiceSpec, out *api.Ser
out.ClusterIP = in.ClusterIP
out.Type = api.ServiceType(in.Type)
out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs))
// INFO: in.DeprecatedPublicIPs opted out of conversion generation
out.SessionAffinity = api.ServiceAffinity(in.SessionAffinity)
out.LoadBalancerIP = in.LoadBalancerIP
out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges))
@ -4699,6 +4698,11 @@ func autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in *ServiceSpec, out *api.Ser
return nil
}
// Convert_v1_ServiceSpec_To_api_ServiceSpec is an autogenerated conversion function.
func Convert_v1_ServiceSpec_To_api_ServiceSpec(in *ServiceSpec, out *api.ServiceSpec, s conversion.Scope) error {
return autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in, out, s)
}
func autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *ServiceSpec, s conversion.Scope) error {
out.Type = ServiceType(in.Type)
out.Ports = *(*[]ServicePort)(unsafe.Pointer(&in.Ports))
@ -4712,6 +4716,11 @@ func autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *Ser
return nil
}
// Convert_api_ServiceSpec_To_v1_ServiceSpec is an autogenerated conversion function.
func Convert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *ServiceSpec, s conversion.Scope) error {
return autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in, out, s)
}
func autoConvert_v1_ServiceStatus_To_api_ServiceStatus(in *ServiceStatus, out *api.ServiceStatus, s conversion.Scope) error {
if err := Convert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil {
return err

View File

@ -3203,11 +3203,6 @@ func DeepCopy_v1_ServiceSpec(in interface{}, out interface{}, c *conversion.Clon
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.DeprecatedPublicIPs != nil {
in, out := &in.DeprecatedPublicIPs, &out.DeprecatedPublicIPs
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.LoadBalancerSourceRanges != nil {
in, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges
*out = make([]string, len(*in))