Advanced Service Configuration
The serviceSpec
section is an optional section that provides advanced configuration controls over the services that are allocated to handle DDL and DML queries.
In addition to objectMetaOverrides
, you can specify the following options in this section:
type
determines how the service is exposed. Valid options areClusterIP
,NodePort
, orLoadBalancer
. Default isLoadBalancer
.loadBalancerIP
is the IP address of the load balancer if you need to manage it.loadBalancerSourceRanges
specifies the list of CIDR blocks to add to the load balancer.externalTrafficPolicy
specifies if the service routes external network traffic to either node-local or cluster-wide endpoints. Valid options areLocal
orCluster
. Default isCluster
.headless
specifies whether the service is a headless service or not. A headless service keeps track of its selected pods, but otherwise does not enable any network functionality.
If you need to specify these values, add the following section to the sdb-cluster.yaml
file as shown below.
serviceSpec: type: "LoadBalancer" loadBalancerIP: "1.2.3.4" loadBalancerSourceRanges: [ "0.0.0.0/0" ] externalTrafficPolicy: "Cluster" headless: false objectMetaOverrides: labels: custom: label annotations: custom: annotations
Refer to the Kubernetes documentation for more information about these attributes.
By default, the nodes are assigned public IPs. You must add annotations for the nodes to be assigned private IPs.
As of Operator 1.2.4, service creation can be disabled by setting the disableDDLAndDMLService
field to true in serviceSpec
. This will ignore all other fields in serviceSpec
, will not create new services, and will delete those services that were already created.
serviceSpec: disableDDLAndDMLService: true