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
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
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 false if using an existing PVC.
name
  • Type: string
  • Default: <instance-name>-monetdb-dbfarm
  • Description: The name of the PersistentVolumeClaim. If create is false, this should reference an existing PVC.
size
  • Type: integer
  • Default: 30
  • Description: The size of the persistent volume in gigabytes (Gi).
class
  • Type: string
  • Default: "" (empty string, uses cluster default)
  • Description: The StorageClass to use for the PersistentVolumeClaim.
spec:
  storage:
    create: true
    name: monetdb-custom-pvc
    size: 50
    class: fast-ssd

Example with existing PVC:

spec:
  storage:
    create: false
    name: monetdb-external-pvc
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"
  • memory (string): Memory request (e.g., "2Gi", "4Gi")
    • Default: "2Gi"
  • ephemeralstorage (string): Ephemeral storage request (e.g., "1Gi")
    • Default: "1Gi"
limits
  • Type: object
  • Description: Maximum resources the container can use.

Sub-properties:

  • cpu (string): CPU limit (e.g., "8000m", "8")
    • Default: "8000m"
  • memory (string): Memory limit (e.g., "18Gi", "32Gi")
    • Default: "18Gi"
  • ephemeralstorage (string): Ephemeral storage limit (e.g., "8Gi")
    • Default: "8Gi"
spec:
  resources:
    requests:
      cpu: "1000m"
      memory: "4Gi"
      ephemeralstorage: "2Gi"
    limits:
      cpu: "16000m"
      memory: "32Gi"
      ephemeralstorage: "16Gi"
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'
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"
  • 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"
  • periodSeconds (integer): How often (in seconds) to perform the probe. The probe will check the pod's health at this interval.
    • Default: "20"
  • 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"
spec:
  probe:
    enabled: true
    initialDelaySeconds: 25
    periodSeconds: 20
    timeoutSeconds: 600

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

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 StorageClass for 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 nodeselector to ensure MonetDB runs on nodes with appropriate hardware characteristics (e.g., high I/O, sufficient memory).