Powered by Zoomin Software. For more details please contactZoomin

MarkLogic® Server on Kubernetes

MarkLogicCluster API

  • Last Updated: July 13, 2026
  • 4 minute read
    • MarkLogic Server
    • Documentation

The MarkLogicCluster API defines and configures options at the cluster level.

Field Type Description Default Constraint
clusterDomain string Domain for the Kubernetes cluster cluster.local
image string Container Image for all MarkLogic Clusters progressofficial/marklogic-db:12.0.3-ubi9-rootless-2.2.6 MaxLength: 256. If a dynamic group does not specify its own image, this tag must be latest or MarkLogic major version 12+
imagePullPolicy string Image pull policy for all MarkLogic Clusters IfNotPresent
imagePullSecrets []corev1.LocalObjectReference Registry secret names as an array for all MarkLogic Clusters []
auth AdminAuth Admin Auth for MarkLogic Cluster
serviceAccountName string Name of the service account assigned to MarkLogic Pods marklogic-workload Immutable after creation
automountServiceAccountToken bool Controls whether the service account token is mounted into MarkLogic Pods false
persistence Persistence Primary datadir persistence configuration for all MarkLogic Clusters {enabled: true, size: "10Gi"}
persistence.enabled bool Enables PVC-backed storage for the primary MarkLogic datadir true
persistence.size string Requested storage size for the primary data PVC. Increasing this value triggers resize reconciliation. Pattern matching, for example 10Gi. Shrinking is not supported.
persistence.resizeStrategy string Strategy for submitting PVC resize requests: parallel or sequential. Group-level values override cluster-level values. parallel Enum: parallel, sequential
persistence.storageClassName string Storage class for the primary data PVC. Leave empty to use the default storage class.
persistence.accessModes []corev1.PersistentVolumeAccessMode Access modes requested for the primary data PVC {ReadWriteOnce}
persistence.annotations map[string]string Annotations applied to the primary data PVC
resources corev1.ResourceRequirements CPU or memory request for all MarkLogic Clusters
terminationGracePeriodSeconds int64 Seconds the MarkLogic Pod terminate gracefully
updateStrategy appsv1.StatefulSetUpdateStrategyType Update strategy for MarkLogic pods OnDelete Enum: OnDelete, RollingUpdate
networkPolicy NetworkPolicy Network policy for all MarkLogic Clusters
podSecurityContext corev1.PodSecurityContext Security context for pod running MarkLogic containers
securityContext corev1.SecurityContext Security context for MarkLogic containers
affinity corev1.Affinity Affinity for MarkLogic pods assignment across cluster
nodeSelector map[string]string Node labels for MarkLogic pods assignment across cluster
topologySpreadConstraints []corev1.TopologySpreadConstraint POD Topology Spread Constraints to spread Pods across cluster
priorityClassName string Name of a PriortyClass defined to set pod priority across cluster
license License Set MarkLogic license Key and Licensee information
enableConverters bool Parameter to Install converters for the client if they are not already installed
hugePages HugePages Config Huge Pages across MarkLogic Cluster {enabled: false, mountPath: /dev/hugepages}
logCollection LogCollection Configure cluster wide log collection of MarkLogic server logs
haproxy HAProxy Configure HAProxy Load Balancer for MarkLogic Server across cluster
HAProxy enabled bool Enable the HAProxy load balancer for the cluster false
image string Container image for the HAProxy Pod haproxytech/haproxy-alpine:3.4.0
imagePullSecrets []corev1.LocalObjectReference Registry secret names for the HAProxy Pod image
podSecurityContext *corev1.PodSecurityContext Pod security context for the HAProxy Pod
securityContext *corev1.SecurityContext Container security context for the HAProxy container
replicas int32 Number of HAProxy replicas to run 1
frontendPort int32 Port exposed by HAProxy for the primary frontend listener 80
appServers []AppServers App server routing definitions exposed through HAProxy
pathBasedRouting bool Enable path-based routing for app servers false When enabled=true, path-based routing requires MarkLogic 11.1 or later
service *corev1.ServiceType Kubernetes Service type used for HAProxy
tcpPorts *Tcpports TCP port routing configuration for HAProxy
timeout Timeout Client, connect, and server timeout settings for HAProxy {client: 600, connect: 600, server: 600}
tls TlsForHAProxy TLS configuration for HAProxy listeners {enabled: false, secretName: "", certFileName: ""}
stats Stats Expose the HAProxy stats page and configure its authentication {enabled: false, port: 1024, auth: {enabled: false, username: "", password: ""}}
resources corev1.ResourceRequirements Resource requests and limits for the HAProxy container
affinity *corev1.Affinity Affinity rules for HAProxy Pods
nodeSelector map[string]string Node selector for HAProxy Pods
ingress Ingress Ingress resource configuration for exposing HAProxy
AppServers name string Name of the app server route
type string Routing type for the app server
port int32 Frontend port exposed by HAProxy for this app server
targetPort int32 Target port on the MarkLogic backend Service
path string Path used for path-based routing
Tcpports enabled bool Enable TCP port routing on HAProxy false
ports []TcpPort TCP ports exposed through HAProxy
TcpPort port int32 Frontend port exposed by HAProxy
targetPort int32 Target port on the MarkLogic backend Service
name string Name of the TCP route
type string Routing type for the TCP route
Timeout client int32 Timeout for client inactivity when the client is expected to send data 600
connect int32 Timeout for establishing a TCP connection to a backend server 600
server int32 Timeout for backend server inactivity when the server is expected to send data 600
TlsForHAProxy enabled bool Enable TLS for HAProxy false
secretName string Name of the Secret that stores the HAProxy certificate
certFileName string Name of the certificate file in the Secret
Stats enabled bool Enable the HAProxy stats page false
port int32 Port exposed for the HAProxy stats page 1024
auth StatsAuth Basic authentication configuration for the HAProxy stats page
StatsAuth enabled bool Enable basic authentication for the HAProxy stats page false
username string Username for the HAProxy stats page
password string Password for the HAProxy stats page
Ingress enabled bool Enable an Ingress resource for HAProxy false
ingressClassName string Ingress class that implements the HAProxy Ingress resource
labels map[string]string Additional labels for the HAProxy Ingress resource
annotations map[string]string Additional annotations for the HAProxy Ingress resource
host string Primary host name exposed by the HAProxy Ingress resource
tls []networkingv1.IngressTLS TLS configuration for the HAProxy Ingress resource
additionalHosts []networkingv1.IngressRule Additional host rules for the HAProxy Ingress resource
tls Tls Configure TLS on the default app servers (8000, 8001, 8002) across the cluster
additionalVolumes []corev1.Volume List of additional volumes to add to the MarkLogic containers across cluster Nil
additionalVolumeMounts []corev1.VolumeMount List of mount points for the additional volumes to add to the MarkLogic containers across cluster Nil
additionalVolumeClaimTemplates []corev1.PersistentVolumeClaim List of additional PVC templates to add to MarkLogic Pods across the cluster Nil
markLogicGroups []MarklogicGroups Configuration for specific MarkLogic Groups, each group is a statefulset 1-100 items. Group name values and groupConfig.name values must be unique. Exactly one group must set isBootstrap=true

MarkLogicCluster Status

The status field on the MarklogicCluster resource reports cluster-level reconciliation conditions.

Field Type Description
conditions []metav1.Condition Standard Kubernetes conditions that report cluster reconciliation state
TitleResults for “How to create a CRG?”Also Available inAlert