Outdated Version

You are viewing an older version of this section. View current production version.

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 Local.
  • 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 memsql-cluster.yaml file as shown below.

serviceSpec:
  type: "LoadBalancer"
  loadBalancerIP: "1.2.3.4"
  loadBalancerSourceRanges: [ "0.0.0.0/0" ]
  externalTrafficPolicy: "Local"
  headless: false
  objectMetaOverrides:
    labels:
      custom: label
    annotations:
      custom: annotations

Refer to the Kubernetes documentation for more information about these attributes.

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