MonetDB Custom Resource Specification
The MonetDb custom resource defines a MonetDB database instance for IBM Process Mining. This section describes
all available specification properties for MonetDB.
API and metadata
The following API is used for a MonetDB configuration:
apiVersion: processmining.ibm.com/v1alpha1
kind: MonetDb
Standard Kubernetes metadata fields:
- name: The name of the MonetDB instance (required)
- namespace: The namespace where the MonetDB instance will be deployed
Specification Properties
The following specification properties can be used for a MonetDB configuration:
- version
-
- Type:
string - Default:
2.2.0 - Allowed Values:
2.2.0 - Description: Specifies the version of MonetDB to deploy.
spec: version: 2.2.0 - Type:
- nodeselector
-
- Type:
object - Description: Allows you to constrain the MonetDB pod to run on specific nodes based on labels.
Properties:
- key (string): The node label key to match
- value (string): The node label value to match
spec: nodeselector: key: targetMonet value: node-group-1 - Type:
- storage
-
- Type:
object - Description: Configures persistent storage for the MonetDB database farm.
Properties:
- create
-
- Type:
boolean - Default:
true - Description: Create a new PersistentVolumeClaim (PVC) for MonetDB storage. Set to
falseif using an existing PVC.
- Type:
- name
-
- Type:
string - Default:
<instance-name>-monetdb-dbfarm - Description: The name of the
PersistentVolumeClaim. Ifcreateisfalse, this should reference an existing PVC.
- Type:
- size
-
- Type:
integer - Default:
30 - Description: The size of the persistent volume in gigabytes (Gi).
- Type:
- class
-
- Type:
string - Default:
""(empty string, uses cluster default) - Description: The StorageClass to use for the PersistentVolumeClaim.
- Type:
spec: storage: create: true name: monetdb-custom-pvc size: 50 class: fast-ssdExample with existing PVC:
spec: storage: create: false name: monetdb-external-pvc - Type:
- resources
-
- Type:
object - Description: Defines CPU, memory, and ephemeral storage resource requests and limits for the MonetDB container.
Properties:
- requests
-
- Type:
object - Description: Minimum resources guaranteed for the container.
Sub-properties:
- cpu (string): CPU request (e.g.,
"500m","1")- Default:
"500m"
- Default:
- memory (string): Memory request (e.g.,
"2Gi","4Gi")- Default:
"2Gi"
- Default:
- ephemeralstorage (string): Ephemeral storage request (e.g.,
"1Gi")- Default:
"1Gi"
- Default:
- Type:
- limits
-
- Type:
object - Description: Maximum resources the container can use.
Sub-properties:
- cpu (string): CPU limit (e.g.,
"8000m","8")- Default:
"8000m"
- Default:
- memory (string): Memory limit (e.g.,
"18Gi","32Gi")- Default:
"18Gi"
- Default:
- ephemeralstorage (string): Ephemeral storage limit (e.g.,
"8Gi")- Default:
"8Gi"
- Default:
- Type:
spec: resources: requests: cpu: "1000m" memory: "4Gi" ephemeralstorage: "2Gi" limits: cpu: "16000m" memory: "32Gi" ephemeralstorage: "16Gi" - Type:
- image
-
- Type:
string - Default:
cp.icr.io/cp/processmining-monet@sha256:551c2eeda7dd89421b48d3d18d8b70edd42b8f647d950ae3e8f7228f90dbcb2f2.2.0 - Description: The container image to use for the MonetDB deployment. Can be specified as a tag or digest.
spec: image: 'cp.icr.io/cp/processmining-monet@sha256:551c2eeda7dd89421b48d3d18d8b70edd42b8f647d950ae3e8f7228f90dbcb2f' - Type:
- probe
-
- Type:
object - Description: Configures the liveness and readiness probe settings for the MonetDB pod. These settings are critical when MonetDB pod crashes unexpectedly, as database recovery during restart can take several minutes. Adjusting these values, particularly
timeoutSeconds, helps prevent probe failures during lengthy recovery operations.
Sub-properties:
- enabled (boolean): Enables or disables the probe configuration. When enabled, the probe monitors the health of the MonetDB pod.
- Default:
"true"
- Default:
- initialDelaySeconds (integer): Number of seconds to wait after the container starts before performing the first probe. This allows time for MonetDB to initialize before health checks begin.
- Default:
"25"
- Default:
- periodSeconds (integer): How often (in seconds) to perform the probe. The probe will check the pod's health at this interval.
- Default:
"20"
- Default:
- timeoutSeconds (integer): Number of seconds after which the probe times out. This is the most critical setting when pod recovery fails due to timeout. If MonetDB recovery takes longer than this value, the probe will fail. Increase this value if you experience probe failures during database recovery after crashes.
- Default:
"600"
- Default:
spec: probe: enabled: true initialDelaySeconds: 25 periodSeconds: 20 timeoutSeconds: 600 - Type:
Status
The MonetDB custom resource includes a status section that reflects the observed state of the resource.
- conditions
-
- Type:
array - Description: List of conditions representing the current state of the MonetDB instance.
Condition Properties:
- type (string, required): The type of condition (e.g.,
"Ready") - status (string, required): The status of the condition (
"True","False", or"Unknown") - reason (string): A brief reason for the condition's status
- message (string): A human-readable message with details about the condition
- Type:
Examples
The following examples show minimal and complete MonetDB CRD configuration:
- Complete example:
apiVersion: processmining.ibm.com/v1alpha1 kind: MonetDb metadata: name: monetdb-production namespace: process-mining spec: version: 2.2.0 nodeselector: key: database-tier value: high-performance storage: create: true name: monetdb-production-pvc size: 100 class: fast-ssd resources: requests: cpu: "2000m" memory: "8Gi" ephemeralstorage: "4Gi" limits: cpu: "16000m" memory: "64Gi" ephemeralstorage: "32Gi" image: 'cp.icr.io/cp/processmining-monet@sha256:551c2eeda7dd89421b48d3d18d8b70edd42b8f647d950ae3e8f7228f90dbcb2f' - Minimal example:
apiVersion: processmining.ibm.com/v1alpha1 kind: MonetDb metadata: name: monetdb-simple spec: storage: size: 32
Notes
- Preserve Unknown Fields: The spec has
x-kubernetes-preserve-unknown-fields: true, allowing additional custom properties not explicitly defined in the schema. - Default Values: If properties are not specified, the operator will use default values defined in the operator's role defaults.
- Storage Considerations:
- Ensure adequate storage size based on your expected data volume
- Use appropriate
StorageClassfor performance requirements - Consider using existing PVCs for data persistence across deployments
- Resource Planning:
- Default limits allow up to 8 CPU cores and 18Gi memory
- Adjust based on workload requirements and cluster capacity
- Monitor actual usage to optimize resource allocation
- Node Selection: Use
nodeselectorto ensure MonetDB runs on nodes with appropriate hardware characteristics (e.g., high I/O, sufficient memory).