Greenplum Operator Manifest File

This section describes each of the properties that you can define in a Greenplum Operator manifest file.

Synopsis

apiVersion: "greenplum.pivotal.io/v1"
kind: "GreenplumCluster"
metadata:
  name: <namespace>
spec:
  masterAndStandby:
    memory: "<memory-limit>"
    cpu: "<cpu-limit>"
    storageClassName: <storage-class>
    storageSize: <size>
  segments:
    primarySegmentCount: <int>
    memory: <memory-limit>
    cpu: <cpu-limit>
    storageClassName: <storage-class>
    storageSize: <size>

Description

You specify Greenplum cluster configuration properties to the Greenplum Operator via a YAML-formatted manifest file. A sample manifest file is provided in workspace/my-greenplum-cluster.yaml. The current version of the manifest supports configuring the cluster name, number of segments, and the memory, cpu, and storage settings for master and segment pods. See also Deploying a New Greenplum Cluster for information about deploying a new cluster using a manifest file.

Keywords and Values

Cluster Metadata

Name: <namespace>
Sets the namespace label for the Greenplum cluster instance resources. You can use this label to filter the output of kubectl commands. For example, if you set the name to my-greenplum then you can use commands like kubectl get all -l greenplum-cluster=my-greenplum or kubectl get pvc -l greenplum-cluster=my-greenplum. If you do not specify a name, the Greenplum Operator uses the namespace in the current kubectl context.

Segment Configuration

masterAndStandby:, segments:
These sections share many of the same properties to configure memory, CPU, and storage for Greenplum segment pods. masterAndStandby: settings apply only to both the master and standby master pods. All Greenplum for Kubernetes clusters include a standby master. The segments: section applies to each primary segment and mirror segment pod. All Greenplum for Kubernetes clusters use segment mirroring.

primarySegmentCount: <int>
The number of primary/mirror segment pod pair to create in the Greenplum cluster. All Greenplum for Kubernetes clusters use segment mirroring. Segment pods use the naming format segment-<type>-<number> where the segment <type> is either a for primary segments or b for mirror segments. Segment numbering starts at zero.

memory: <memory-limit>
The amount of memory allocated to a Greenplum segment pod. This value defines a memory limit; if a pod tries to exceed the limit it is removed and replaced by a nwe pod. You can specify a suffix to define the memory units (for example, 4.5Gi.). See Assign Memory Resources to Containers and Pods in the Kubernetes documentation for more information.

cpu: <cpu-limit>
The amount of CPU resources allocated to a Greenplum segment pod, specified as a Kubernetes CPU unit (for example, cpu: "1.2"). See Assign CPU Resources to Containers and Pods in the Kubernetes documentation for more information.

storageClassName: <storage-class>
(Required.) The Storage Class name to use for dynamically provisioning Persistent Volumes (PVs) for the Greenplum segment pod. If the PVs already exist, either from a previous deployment of the Greenplum instance or because you manually provisioned the PVs, then the Greenplum Operator uses the existing PVs. For best performance You can configure the Storage Class according to your performance needs. See Storage Classes in the Kubernetes documentation to understand the different configuration options. Pivotal recommends using a Storage Class that is provisioned with a local SSD and XFS filesystem for best performance.

storageSize: <size>
The storage size of the Persistent Volume Claim (PVC) for the Greenplum segment pod. Specify a suffix for the units (for example: 100G, 1T).

Examples

See the workspace/my-greenplum-cluster.yaml for an example manifest.

See Also

Deploying a New Greenplum Cluster, Deleting a Greenplum Cluster, Installing Greenplum for Kubernetes.