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 are ClusterIP, NodePort, or LoadBalancer. Default is LoadBalancer.

  • 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 are Local or Cluster. Default is Cluster.

  • 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

Last modified: February 21, 2023

Was this article helpful?