Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions api/v1/coherence_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -1545,11 +1545,8 @@ type ServiceMonitorSpec struct {
// +listType=atomic
// +optional
Relabelings []monitoringv1.RelabelConfig `json:"relabelings,omitempty"`
// TODO: VP
// HTTPConfigWithProxyAndTLSFiles defines the configuration for the HTTP client
// with proxy configuration and TLS configuration. It is used for
// ServiceMonitor endpoints.
HTTPConfigWithProxyAndTLSFiles monitoringv1.HTTPConfigWithProxyAndTLSFiles `json:",inline"`

monitoringv1.HTTPConfigWithProxyAndTLSFiles `json:",inline"`
}

func (in *ServiceMonitorSpec) CreateServiceMonitor() monitoringv1.ServiceMonitorSpec {
Expand Down
6 changes: 3 additions & 3 deletions docs/about/04_coherence_spec.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1039,17 +1039,17 @@ m| annotations | Annotations is free form yaml that will be added to the service
m| 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: https://kubernetes.io/docs/reference/networking/virtual-ips/ m| *https://pkg.go.dev/k8s.io/api/core/v1#ServiceAffinity | false
m| 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." m| []string | false
m| externalName | externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Kind to be ExternalName. m| *string | false
m| externalTrafficPolicy | externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading. m| *https://{k8s-doc-link}/#servicespec-v1-core[corev1.ServiceExternalTrafficPolicy] | false
m| externalTrafficPolicy | externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading. m| *https://pkg.go.dev/k8s.io/api/core/v1#ServiceExternalTrafficPolicy | false
m| healthCheckNodePort | 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 Kind is set to LoadBalancer and ExternalTrafficPolicy is set to Local. m| *int32 | false
m| publishNotReadyAddresses | publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. m| *bool | false
m| sessionAffinityConfig | sessionAffinityConfig contains the configurations of session affinity. m| *https://{k8s-doc-link}/#sessionaffinityconfig-v1-core[corev1.SessionAffinityConfig] | false
m| ipFamilies | IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the "IPv6DualStack" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName. +
+
This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. m| []https://pkg.go.dev/k8s.io/api/core/v1#IPFamily | false
m| ipFamilyPolicy | IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the "IPv6DualStack" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName. m| *https://{k8s-doc-link}/#servicespec-v1-core[corev1.IPFamilyPolicy] | false
m| ipFamilyPolicy | IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the "IPv6DualStack" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName. m| *https://pkg.go.dev/k8s.io/api/core/v1#IPFamilyPolicy | false
m| allocateLoadBalancerNodePorts | allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster load-balancer does not rely on NodePorts. allocateLoadBalancerNodePorts may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature. m| *bool | false
m| loadBalancerClass | loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. m| *string | false
m| internalTrafficPolicy | InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to "Local", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). m| *https://{k8s-doc-link}/#servicespec-v1-core[corev1.ServiceInternalTrafficPolicy] | false
m| internalTrafficPolicy | InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to "Local", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). m| *https://pkg.go.dev/k8s.io/api/core/v1#ServiceInternalTrafficPolicy | false
m| trafficDistribution | TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to "PreferClose", implementations should prioritize endpoints that are in the same zone. m| *string | false
|===

Expand Down
5 changes: 4 additions & 1 deletion utils/docgen/main.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, 2025, Oracle and/or its affiliates.
* Copyright (c) 2020, 2026, Oracle and/or its affiliates.
* Licensed under the Universal Permissive License v 1.0 as shown at
* http://oss.oracle.com/licenses/upl.
*/
Expand Down Expand Up @@ -70,6 +70,9 @@ func main() {
selfLinks["corev1.ServiceType"] = "https://pkg.go.dev/k8s.io/api/core/v1#ServiceType"
selfLinks["corev1.VolumeSource"] = fmt.Sprintf("%svolume-v1-core", k8sLink)
selfLinks["intstr.IntOrString"] = "https://pkg.go.dev/k8s.io/apimachinery/pkg/util/intstr#IntOrString"
selfLinks["corev1.ServiceExternalTrafficPolicy"] = "https://pkg.go.dev/k8s.io/api/core/v1#ServiceExternalTrafficPolicy"
selfLinks["corev1.ServiceInternalTrafficPolicy"] = "https://pkg.go.dev/k8s.io/api/core/v1#ServiceInternalTrafficPolicy"
selfLinks["corev1.IPFamilyPolicy"] = "https://pkg.go.dev/k8s.io/api/core/v1#IPFamilyPolicy"

printAPIDocs(os.Args[1:])
}
Expand Down