Define ESIPP GA fields and deprecate alpha annotations
This commit is contained in:
parent
640373da10
commit
73fa1ddcac
@ -26,25 +26,19 @@ const (
|
|||||||
// Not all cloud providers support this annotation, though AWS & GCE do.
|
// Not all cloud providers support this annotation, though AWS & GCE do.
|
||||||
AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges"
|
AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges"
|
||||||
|
|
||||||
// AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behaviour
|
// AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behavior.
|
||||||
AnnotationValueExternalTrafficLocal = "OnlyLocal"
|
AnnotationValueExternalTrafficLocal = "OnlyLocal"
|
||||||
// AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behaviour
|
// AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behavior.
|
||||||
AnnotationValueExternalTrafficGlobal = "Global"
|
AnnotationValueExternalTrafficGlobal = "Global"
|
||||||
|
|
||||||
// TODO: The alpha annotations have been deprecated, remove them when we move this feature to GA.
|
// TODO: The beta annotations have been deprecated, remove them when we release k8s 1.8.
|
||||||
|
|
||||||
// AlphaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service
|
// BetaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service.
|
||||||
// If not specified, annotation is created by the service api backend with the allocated nodePort
|
// If not specified, annotation is created by the service api backend with the allocated nodePort.
|
||||||
// Will use user-specified nodePort value if specified by the client
|
// Will use user-specified nodePort value if specified by the client.
|
||||||
AlphaAnnotationHealthCheckNodePort = "service.alpha.kubernetes.io/healthcheck-nodeport"
|
|
||||||
|
|
||||||
// AlphaAnnotationExternalTraffic An annotation that denotes if this Service desires to route external traffic to local
|
|
||||||
// endpoints only. This preserves Source IP and avoids a second hop.
|
|
||||||
AlphaAnnotationExternalTraffic = "service.alpha.kubernetes.io/external-traffic"
|
|
||||||
|
|
||||||
// BetaAnnotationHealthCheckNodePort is the beta version of AlphaAnnotationHealthCheckNodePort.
|
|
||||||
BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport"
|
BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport"
|
||||||
|
|
||||||
// BetaAnnotationExternalTraffic is the beta version of AlphaAnnotationExternalTraffic.
|
// BetaAnnotationExternalTraffic An annotation that denotes if this Service desires to route
|
||||||
|
// external traffic to local endpoints only. This preserves Source IP and avoids a second hop.
|
||||||
BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic"
|
BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic"
|
||||||
)
|
)
|
||||||
|
@ -2453,6 +2453,16 @@ const (
|
|||||||
ServiceTypeExternalName ServiceType = "ExternalName"
|
ServiceTypeExternalName ServiceType = "ExternalName"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Service External Traffic Policy Type string
|
||||||
|
type ServiceExternalTrafficPolicyType string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ServiceExternalTrafficPolicyTypeLocal specifies local endpoints behavior.
|
||||||
|
ServiceExternalTrafficPolicyTypeLocal ServiceExternalTrafficPolicyType = "Local"
|
||||||
|
// ServiceExternalTrafficPolicyTypeGlobal specifies global (legacy) behavior.
|
||||||
|
ServiceExternalTrafficPolicyTypeGlobal ServiceExternalTrafficPolicyType = "Global"
|
||||||
|
)
|
||||||
|
|
||||||
// ServiceStatus represents the current status of a service
|
// ServiceStatus represents the current status of a service
|
||||||
type ServiceStatus struct {
|
type ServiceStatus struct {
|
||||||
// LoadBalancer contains the current status of the load-balancer,
|
// LoadBalancer contains the current status of the load-balancer,
|
||||||
@ -2552,6 +2562,20 @@ type ServiceSpec struct {
|
|||||||
// cloud-provider does not support the feature."
|
// cloud-provider does not support the feature."
|
||||||
// +optional
|
// +optional
|
||||||
LoadBalancerSourceRanges []string
|
LoadBalancerSourceRanges []string
|
||||||
|
|
||||||
|
// externalTrafficPolicy denotes if this Service desires to route external traffic to
|
||||||
|
// local endpoints only. This preserves Source IP and avoids a second hop for
|
||||||
|
// LoadBalancer and Nodeport type services.
|
||||||
|
// +optional
|
||||||
|
ExternalTrafficPolicy ServiceExternalTrafficPolicyType
|
||||||
|
|
||||||
|
// healthCheckNodePort specifies the healthcheck nodePort for the service.
|
||||||
|
// If not specified, HealthCheckNodePort is created by the service api
|
||||||
|
// backend with the allocated nodePort. Will use user-specified nodePort value
|
||||||
|
// if specified by the client. Only effects when Type is set to LoadBalancer
|
||||||
|
// and ExternalTrafficPolicy is set to Local.
|
||||||
|
// +optional
|
||||||
|
HealthCheckNodePort int32
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServicePort struct {
|
type ServicePort struct {
|
||||||
|
@ -26,25 +26,19 @@ const (
|
|||||||
// Not all cloud providers support this annotation, though AWS & GCE do.
|
// Not all cloud providers support this annotation, though AWS & GCE do.
|
||||||
AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges"
|
AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges"
|
||||||
|
|
||||||
// AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behaviour
|
// AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behavior.
|
||||||
AnnotationValueExternalTrafficLocal = "OnlyLocal"
|
AnnotationValueExternalTrafficLocal = "OnlyLocal"
|
||||||
// AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behaviour
|
// AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behavior.
|
||||||
AnnotationValueExternalTrafficGlobal = "Global"
|
AnnotationValueExternalTrafficGlobal = "Global"
|
||||||
|
|
||||||
// TODO: The alpha annotations have been deprecated, remove them when we move this feature to GA.
|
// TODO: The beta annotations have been deprecated, remove them when we release k8s 1.8.
|
||||||
|
|
||||||
// AlphaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service
|
// BetaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service.
|
||||||
// If not specified, annotation is created by the service api backend with the allocated nodePort
|
// If not specified, annotation is created by the service api backend with the allocated nodePort.
|
||||||
// Will use user-specified nodePort value if specified by the client
|
// Will use user-specified nodePort value if specified by the client.
|
||||||
AlphaAnnotationHealthCheckNodePort = "service.alpha.kubernetes.io/healthcheck-nodeport"
|
|
||||||
|
|
||||||
// AlphaAnnotationExternalTraffic An annotation that denotes if this Service desires to route external traffic to local
|
|
||||||
// endpoints only. This preserves Source IP and avoids a second hop.
|
|
||||||
AlphaAnnotationExternalTraffic = "service.alpha.kubernetes.io/external-traffic"
|
|
||||||
|
|
||||||
// BetaAnnotationHealthCheckNodePort is the beta version of AlphaAnnotationHealthCheckNodePort.
|
|
||||||
BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport"
|
BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport"
|
||||||
|
|
||||||
// BetaAnnotationExternalTraffic is the beta version of AlphaAnnotationExternalTraffic.
|
// BetaAnnotationExternalTraffic An annotation that denotes if this Service desires to route
|
||||||
|
// external traffic to local endpoints only. This preserves Source IP and avoids a second hop.
|
||||||
BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic"
|
BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic"
|
||||||
)
|
)
|
||||||
|
@ -2792,6 +2792,16 @@ const (
|
|||||||
ServiceTypeExternalName ServiceType = "ExternalName"
|
ServiceTypeExternalName ServiceType = "ExternalName"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Service External Traffic Policy Type string
|
||||||
|
type ServiceExternalTrafficPolicyType string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ServiceExternalTrafficPolicyTypeLocal specifies local endpoints behavior.
|
||||||
|
ServiceExternalTrafficPolicyTypeLocal ServiceExternalTrafficPolicyType = "Local"
|
||||||
|
// ServiceExternalTrafficPolicyTypeGlobal specifies global (legacy) behavior.
|
||||||
|
ServiceExternalTrafficPolicyTypeGlobal ServiceExternalTrafficPolicyType = "Global"
|
||||||
|
)
|
||||||
|
|
||||||
// ServiceStatus represents the current status of a service.
|
// ServiceStatus represents the current status of a service.
|
||||||
type ServiceStatus struct {
|
type ServiceStatus struct {
|
||||||
// LoadBalancer contains the current status of the load-balancer,
|
// LoadBalancer contains the current status of the load-balancer,
|
||||||
@ -2904,6 +2914,20 @@ type ServiceSpec struct {
|
|||||||
// Must be a valid DNS name and requires Type to be ExternalName.
|
// Must be a valid DNS name and requires Type to be ExternalName.
|
||||||
// +optional
|
// +optional
|
||||||
ExternalName string `json:"externalName,omitempty" protobuf:"bytes,10,opt,name=externalName"`
|
ExternalName string `json:"externalName,omitempty" protobuf:"bytes,10,opt,name=externalName"`
|
||||||
|
|
||||||
|
// externalTrafficPolicy denotes if this Service desires to route external traffic to
|
||||||
|
// local endpoints only. This preserves Source IP and avoids a second hop for
|
||||||
|
// LoadBalancer and Nodeport type services.
|
||||||
|
// +optional
|
||||||
|
ExternalTrafficPolicy ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,11,opt,name=externalTrafficPolicy"`
|
||||||
|
|
||||||
|
// healthCheckNodePort specifies the healthcheck nodePort for the service.
|
||||||
|
// If not specified, HealthCheckNodePort is created by the service api
|
||||||
|
// backend with the allocated nodePort. Will use user-specified nodePort value
|
||||||
|
// if specified by the client. Only effects when Type is set to LoadBalancer
|
||||||
|
// and ExternalTrafficPolicy is set to Local.
|
||||||
|
// +optional
|
||||||
|
HealthCheckNodePort int32 `json:"healthCheckNodePort,omitempty" protobuf:"bytes,12,opt,name=healthCheckNodePort"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServicePort contains information on service's port.
|
// ServicePort contains information on service's port.
|
||||||
|
@ -98,7 +98,7 @@ func init() {
|
|||||||
// To add a new feature, define a key for it above and add it here. The features will be
|
// To add a new feature, define a key for it above and add it here. The features will be
|
||||||
// available throughout Kubernetes binaries.
|
// available throughout Kubernetes binaries.
|
||||||
var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureSpec{
|
var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureSpec{
|
||||||
ExternalTrafficLocalOnly: {Default: true, PreRelease: utilfeature.Beta},
|
ExternalTrafficLocalOnly: {Default: true, PreRelease: utilfeature.GA},
|
||||||
AppArmor: {Default: true, PreRelease: utilfeature.Beta},
|
AppArmor: {Default: true, PreRelease: utilfeature.Beta},
|
||||||
DynamicKubeletConfig: {Default: false, PreRelease: utilfeature.Alpha},
|
DynamicKubeletConfig: {Default: false, PreRelease: utilfeature.Alpha},
|
||||||
DynamicVolumeProvisioning: {Default: true, PreRelease: utilfeature.Alpha},
|
DynamicVolumeProvisioning: {Default: true, PreRelease: utilfeature.Alpha},
|
||||||
|
Loading…
Reference in New Issue
Block a user