This is a prerelease version.

View latest

Hazelcast Platform Operator API Docs

A reference guide to the Hazelcast Platform Operator CRD types.

Hazelcast Platform Operator API Docs

This is a reference for the Hazelcast Platform Operator API types. These are all the types and fields that are used in the Hazelcast Platform Operator CRDs.

This document was generated from comments in the Go code in the api/ directory.

AgentConfiguration

Field Description Type Required Default

repository

Repository to pull Hazelcast Platform Operator Agent(https://github.com/hazelcast/platform-operator-agent)

string

false

"docker.io/hazelcast/platform-operator-agent"

version

Version of Hazelcast Platform Operator Agent.

string

false

"0.1.6"

BucketConfiguration

Field Description Type Required Default

secret

Name of the secret with credentials for cloud providers.

string

true

-

bucketURI

Full path to blob storage bucket.

string

true

-

DurableExecutorServiceConfiguration

Field Description Type Required Default

name

The name of the executor service

string

false

"default"

poolSize

The number of executor threads per member.

int32

false

16

durability

Durability of the executor.

int32

false

1

capacity

Capacity of the executor task per partition.

int32

false

100

ExecutorServiceConfiguration

Field Description Type Required Default

name

The name of the executor service

string

false

"default"

poolSize

The number of executor threads per member.

int32

false

8

queueCapacity

Task queue capacity of the executor.

int32

false

0

ExposeExternallyConfiguration

ExposeExternallyConfiguration defines how to expose Hazelcast cluster to external clients

Field Description Type Required Default

type

Specifies how members are exposed. Valid values are: - "Smart" (default): each member pod is exposed with a separate external address - "Unisocket": all member pods are exposed with one external address

ExposeExternallyType

false

"Smart"

discoveryServiceType

Type of the service used to discover Hazelcast cluster.

corev1.ServiceType

false

"LoadBalancer"

memberAccess

How each member is accessed from the external client. Only available for "Smart" client and valid values are: - "NodePortExternalIP" (default): each member is accessed by the NodePort service and the node external IP/hostname - "NodePortNodeName": each member is accessed by the NodePort service and the node name - "LoadBalancer": each member is accessed by the LoadBalancer service external address

MemberAccess

false

-

Hazelcast

Hazelcast is the Schema for the hazelcasts API

Field Description Type Required Default

metadata

 

metav1.ObjectMeta

false

-

spec

 

HazelcastSpec

false

{"repository" : "docker.io/hazelcast/hazelcast"}

status

 

HazelcastStatus

false

-

HazelcastClusterStatus

HazelcastClusterStatus defines the status of the Hazelcast cluster

Field Description Type Required Default

readyMembers

ReadyMembers represents the number of members that are connected to cluster from the desired number of members in the format <ready>/<desired>

string

true

-

HazelcastList

HazelcastList contains a list of Hazelcast

Field Description Type Required Default

metadata

 

metav1.ListMeta

false

-

items

 

[]Hazelcast

true

-

HazelcastMemberStatus

HazelcastMemberStatus defines the observed state of the individual Hazelcast member.

Field Description Type Required Default

podName

PodName is the name of the Hazelcast member pod.

string

false

-

uid

Uid is the unique member identifier within the cluster.

string

false

-

ip

Ip is the IP address of the member within the cluster.

string

false

-

version

Version represents the Hazelcast version of the member.

string

false

-

state

State represents the observed state of the member.

string

false

-

master

Master flag is set to true if the member is master.

bool

false

-

lite

Lite is the flag that is true when the member is lite-member.

bool

false

-

ownedPartitions

OwnedPartitions represents the partitions count on the member.

int32

false

-

connected

Ready is the flag that is set to true when the member is successfully started, connected to cluster and ready to accept connections.

bool

true

-

message

Message contains the optional message with the details of the cluster state.

string

false

-

reason

Reason contains the optional reason of member crash or restart.

string

false

-

restartCount

RestartCount is the number of times the member has been restarted.

int32

true

-

HazelcastPersistenceConfiguration

HazelcastPersistenceConfiguration contains the configuration for Hazelcast Persistence and K8s storage.

Field Description Type Required Default

baseDir

Persistence base directory.

string

true

-

clusterDataRecoveryPolicy

Configuration of the cluster recovery strategy.

DataRecoveryPolicyType

false

"FullRecoveryOnly"

autoForceStart

AutoForceStart enables the detection of constantly failing cluster and trigger the Force Start action.

bool

false

false

dataRecoveryTimeout

DataRecoveryTimeout is timeout for each step of data recovery in seconds. Maximum timeout is equal to DataRecoveryTimeout*2 (for each step: validation and data-load).

int32

false

-

pvc

Configuration of PersistenceVolumeClaim.

PersistencePvcConfiguration

false

-

hostPath

Host Path directory.

string

false

-

restore

Restore configuration

*RestoreConfiguration

false

{}

backupType

 

BackupType

false

"Local"

HazelcastSpec

HazelcastSpec defines the desired state of Hazelcast

Field Description Type Required Default

clusterSize

Number of Hazelcast members in the cluster.

*int32

false

3

repository

Repository to pull the Hazelcast Platform image from.

string

false

"docker.io/hazelcast/hazelcast"

version

Version of Hazelcast Platform.

string

false

"5.1.3"

imagePullPolicy

Pull policy for the Hazelcast Platform image

corev1.PullPolicy

false

"IfNotPresent"

imagePullSecrets

Image pull secrets for the Hazelcast Platform image

[]corev1.LocalObjectReference

false

-

licenseKeySecret

Name of the secret with Hazelcast Enterprise License Key.

string

false

-

exposeExternally

Configuration to expose Hazelcast cluster to external clients.

*ExposeExternallyConfiguration

false

{}

clusterName

Name of the Hazelcast cluster.

string

false

"dev"

scheduling

Scheduling details

*SchedulingConfiguration

false

{}

resources

Compute Resources required by the Hazelcast container.

*corev1.ResourceRequirements

false

{}

persistence

Persistence configuration

*HazelcastPersistenceConfiguration

false

{}

agent

B&R Agent configurations

*AgentConfiguration

false

{repository: "docker.io/hazelcast/platform-operator-agent", version: "0.1.6"}

userCodeDeployment

User Codes to Download into CLASSPATH

*UserCodeDeploymentConfig

false

-

executorServices

 

[]ExecutorServiceConfiguration

false

-

durableExecutorServices

 

[]DurableExecutorServiceConfiguration

false

-

scheduledExecutorServices

 

[]ScheduledExecutorServiceConfiguration

false

-

HazelcastStatus

HazelcastStatus defines the observed state of Hazelcast

Field Description Type Required Default

phase

Phase of the Hazelcast cluster

Phase

false

-

hazelcastClusterStatus

Status of the Hazelcast cluster

HazelcastClusterStatus

false

-

message

Message about the Hazelcast cluster state

string

false

-

externalAddresses

External addresses of the Hazelcast cluster members

string

false

-

members

Status of Hazelcast members

[]HazelcastMemberStatus

false

-

restore

Status of restore process of the Hazelcast cluster

*RestoreStatus

false

{}

PersistencePvcConfiguration

Field Description Type Required Default

accessModes

AccessModes contains the actual access modes of the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

[]corev1.PersistentVolumeAccessMode

false

-

requestStorage

A description of the PVC request capacity.

*resource.Quantity

false

-

storageClassName

Name of StorageClass which this persistent volume belongs to.

*string

false

-

RestoreStatus

Field Description Type Required Default

state

State shows the current phase of the restore process of the cluster.

RestoreState

true

-

remainingValidationTime

RemainingValidationTime show the time in seconds remained for the restore validation step.

int64

true

-

remainingDataLoadTime

RemainingDataLoadTime show the time in seconds remained for the restore data load step.

int64

true

-

ScheduledExecutorServiceConfiguration

Field Description Type Required Default

name

The name of the executor service

string

false

"default"

poolSize

The number of executor threads per member.

int32

false

16

durability

Durability of the executor.

int32

false

1

capacity

Capacity of the executor task per partition.

int32

false

100

capacityPolicy

The active policy for the capacity setting.

string

false

PER_NODE

SchedulingConfiguration

SchedulingConfiguration defines the pods scheduling details

Field Description Type Required Default

affinity

Affinity

*corev1.Affinity

false

-

tolerations

Tolerations

[]corev1.Toleration

false

-

nodeSelector

NodeSelector

map[string]string

false

-

topologySpreadConstraints

TopologySpreadConstraints

[]corev1.TopologySpreadConstraint

false

-

UserCodeDeploymentConfig

UserCodeDeploymentConfig contains the configuration for User Code download operation

Field Description Type Required Default

bucketConfig

Jar files in the bucket will be put under CLASSPATH.

*BucketConfiguration

false

-

triggerSequence

A string for triggering a rolling restart for re-downloading the user codes.

string

false

-

configMaps

Files in the ConfigMaps will be put under CLASSPATH.

[]string

false

-

ExternalConnectivityConfiguration

ExternalConnectivityConfiguration defines how to expose Management Center pod.

Field Description Type Required Default

type

How Management Center is exposed. Valid values are: - "ClusterIP" - "NodePort" - "LoadBalancer" (default)

ExternalConnectivityType

false

"LoadBalancer"

HazelcastClusterConfig

Field Description Type Required Default

name

Name of the Hazelcast cluster that Management Center will connect to, default is dev.

string

false

"dev"

address

IP address or DNS name of the Hazelcast cluster. If the cluster is exposed with a service name in a different namespace, use the following syntax "<service-name>.<service-namespace>".

string

true

-

ManagementCenter

ManagementCenter is the Schema for the managementcenters API

Field Description Type Required Default

metadata

 

metav1.ObjectMeta

false

-

spec

 

ManagementCenterSpec

false

{"repository" : "docker.io/hazelcast/management-center"}

status

 

ManagementCenterStatus

false

-

ManagementCenterList

ManagementCenterList contains a list of ManagementCenter

Field Description Type Required Default

metadata

 

metav1.ListMeta

false

-

items

 

[]ManagementCenter

true

-

ManagementCenterSpec

ManagementCenterSpec defines the desired state of ManagementCenter.

Field Description Type Required Default

repository

Repository to pull the Management Center image from.

string

false

"docker.io/hazelcast/management-center"

version

Version of Management Center.

string

false

"5.1.4"

imagePullPolicy

Pull policy for the Management Center image

corev1.PullPolicy

false

"IfNotPresent"

imagePullSecrets

Image pull secrets for the Management Center image

[]corev1.LocalObjectReference

false

-

licenseKeySecret

Name of the secret with Hazelcast Enterprise License Key.

string

false

-

hazelcastClusters

Connection configuration for the Hazelcast clusters that Management Center will monitor.

[]HazelcastClusterConfig

false

-

externalConnectivity

Configuration to expose Management Center to outside.

*ExternalConnectivityConfiguration

false

{type: "LoadBalancer"}

persistence

Configuration for Management Center persistence.

*PersistenceConfiguration

false

{enabled: true, size: "10Gi"}

scheduling

Scheduling details

*SchedulingConfiguration

false

-

resources

Compute Resources required by the MC container.

*corev1.ResourceRequirements

false

{}

ManagementCenterStatus

ManagementCenterStatus defines the observed state of ManagementCenter.

Field Description Type Required Default

phase

Phase of the Management Center

Phase

false

-

message

Message about the Management Center state

string

false

-

externalAddresses

External addresses of the Management Center instance

string

false

-

PersistenceConfiguration

Field Description Type Required Default

enabled

When true, MC will use a PersistentVolumeClaim to store data.

bool

false

true

existingVolumeClaimName

Name of the PersistentVolumeClaim MC will use for persistence. If not empty, MC will use the existing claim instead of creating a new one.

string

false

-

storageClass

StorageClass from which PersistentVolumeClaim will be created.

*string

false

-

size

Size of the created PersistentVolumeClaim.

*resource.Quantity

false

"10Gi"

HotBackup

HotBackup is the Schema for the hot backup API

Field Description Type Required Default

metadata

 

metav1.ObjectMeta

false

-

status

 

HotBackupStatus

false

-

spec

 

HotBackupSpec

true

-

HotBackupList

HotBackupList contains a list of HotBackup

Field Description Type Required Default

metadata

 

metav1.ListMeta

false

-

items

 

[]HotBackup

true

-

HotBackupSpec

HotBackupSpec defines the Spec of HotBackup

Field Description Type Required Default

hazelcastResourceName

HazelcastResourceName defines the name of the Hazelcast resource

string

true

-

schedule

Schedule contains a crontab-like expression that defines the schedule in which HotBackup will be started. If the Schedule is empty the HotBackup will start only once when applied.

string

false

-

bucketURI

URL of the bucket to download HotBackup folders.

string

false

-

secret

Name of the secret with credentials for cloud providers.

string

false

-

HotBackupStatus

HotBackupStatus defines the observed state of HotBackup

Field Description Type Required Default

state

 

HotBackupState

true

-

message

 

string

false

-

BitmapIndexOptionsConfig

Field Description Type Required Default

uniqueKey

 

string

true

-

uniqueKeyTransition

 

UniqueKeyTransition

true

-

EvictionConfig

Field Description Type Required Default

evictionPolicy

Eviction policy to be applied when map reaches its max size according to the max size policy.

EvictionPolicyType

false

"NONE"

maxSize

Max size of the map.

*int32

false

0

maxSizePolicy

Policy for deciding if the maxSize is reached.

MaxSizePolicyType

false

"PER_NODE"

IndexConfig

Field Description Type Required Default

name

Name of the index config.

string

false

-

type

Type of the index.

IndexType

true

-

attributes

Attributes of the index.

[]string

true

-

bitMapIndexOptions

Options for "BITMAP" index type.

*BitmapIndexOptionsConfig

false

-

Map

Map is the Schema for the maps API

Field Description Type Required Default

metadata

 

metav1.ObjectMeta

false

-

spec

 

MapSpec

true

-

status

 

MapStatus

false

-

MapList

MapList contains a list of Map

Field Description Type Required Default

metadata

 

metav1.ListMeta

false

-

items

 

[]Map

true

-

MapSpec

MapSpec defines the desired state of Hazelcast Map Config

Field Description Type Required Default

name

Name of the map config to be created. If empty, CR name will be used. It cannot be updated after map config is created successfully.

string

false

-

backupCount

Count of synchronous backups. It cannot be updated after map config is created successfully.

*int32

false

1

timeToLiveSeconds

Maximum time in seconds for each entry to stay in the map. If it is not 0, entries that are older than this time and not updated for this time are evicted automatically. It can be updated.

*int32

false

0

maxIdleSeconds

Maximum time in seconds for each entry to stay idle in the map. Entries that are idle for more than this time are evicted automatically. It can be updated.

*int32

false

0

eviction

Configuration for removing data from the map when it reaches its max size. It can be updated.

*EvictionConfig

false

{maxSize: 0}

indexes

Indexes to be created for the map data. You can learn more at https://docs.hazelcast.com/hazelcast/latest/query/indexing-maps. It cannot be updated after map config is created successfully.

[]IndexConfig

false

-

persistenceEnabled

When enabled, map data will be persisted. It cannot be updated after map config is created successfully.

bool

false

false

hazelcastResourceName

HazelcastResourceName defines the name of the Hazelcast resource. It cannot be updated after map config is created successfully.

string

true

-

mapStore

Configuration options when you want to load/store the map entries from/to a persistent data store such as a relational database You can learn more at https://docs.hazelcast.com/hazelcast/latest/data-structures/working-with-external-data

*MapStoreConfig

false

-

MapStatus

MapStatus defines the observed state of Map

Field Description Type Required Default

state

 

MapConfigState

false

-

message

 

string

false

-

memberStatuses

 

map[string]MapConfigState

false

-

MapStoreConfig

Field Description Type Required Default

initialMode

Sets the initial entry loading mode.

InitialModeType

false

LAZY

className

Name of your class implementing MapLoader and/or MapStore interface.

string

true

-

writeDelaySeconds

Number of seconds to delay the storing of entries.

int32

false

-

writeBatchSize

Used to create batches when writing to map store.

int32

false

1

writeCoealescing

It is meaningful if you are using write behind in MapStore. When it is set to true, only the latest store operation on a key during the write-delay-seconds will be reflected to MapStore.

*bool

false

true

propertiesSecretName

Properties can be used for giving information to the MapStore implementation

string

false

-

BackupType

BackupType represents the storage options for the HotBackup

Value Description

"External"

External backups to the provided cloud provider storage

"Local"

Local backups to local storage inside the cluster

CapacityPolicyType

CapacityPolicyType represents the active policy types for the capacity setting

Value Description

"PER_NODE"

CapacityPolicyPerNode is the policy for limiting the maximum number of tasks in each Hazelcast instance

"PER_PARTITION"

CapacityPolicyPerPartition is the policy for limiting the maximum number of tasks within each partition.

DataRecoveryPolicyType

DataRecoveryPolicyType represents the options for data recovery policy when the whole cluster restarts.

Value Description

"FullRecoveryOnly"

FullRecovery does not allow partial start of the cluster and corresponds to "cluster-data-recovery-policy.FULL_RECOVERY_ONLY" configuration option.

"PartialRecoveryMostRecent"

MostRecent allow partial start with the members that have most up-to-date partition table and corresponds to "cluster-data-recovery-policy.PARTIAL_RECOVERY_MOST_RECENT" configuration option.

"PartialRecoveryMostComplete"

MostComplete allow partial start with the members that have most complete partition table and corresponds to "cluster-data-recovery-policy.PARTIAL_RECOVERY_MOST_COMPLETE" configuration option.

ExposeExternallyType

ExposeExternallyType describes how Hazelcast members are exposed.

Value Description

"Smart"

ExposeExternallyTypeSmart exposes each Hazelcast member with a separate external address.

"Unisocket"

ExposeExternallyTypeUnisocket exposes all Hazelcast members with one external address.

MemberAccess

MemberAccess describes how each Hazelcast member is accessed from the external client.

Value Description

"NodePortExternalIP"

MemberAccessNodePortExternalIP lets the client access Hazelcast member with the NodePort service and the node external IP/hostname

"NodePortNodeName"

MemberAccessNodePortNodeName lets the client access Hazelcast member with the NodePort service and the node name

"LoadBalancer"

MemberAccessLoadBalancer lets the client access Hazelcast member with the LoadBalancer service

Phase

Phase represents the current state of the cluster

Value Description

"Running"

Running phase is the state when all the members of the cluster are successfully started

"Failed"

Failed phase is the state of error during the cluster startup

"Pending"

Pending phase is the state of starting the cluster when not all the members are started yet

RestoreState

Value Description

"Unknown"

 

"Failed"

 

"InProgress"

 

"Succeeded"

 

ExternalConnectivityType

ExternalConnectivityType describes how Management Center is exposed.

Value Description

"ClusterIP"

ExternalConnectivityTypeClusterIP exposes Management Center with ClusterIP service.

"NodePort"

ExternalConnectivityTypeNodePort exposes Management Center with NodePort service.

"LoadBalancer"

ExternalConnectivityTypeLoadBalancer exposes Management Center with LoadBalancer service.

HotBackupState

Value Description

"Unknown"

 

"Pending"

 

"NotStarted"

 

"InProgress"

 

"Failure"

 

"Success"

 

EvictionPolicyType

Value Description

"LRU"

Least recently used entries will be removed.

"LFU"

Least frequently used entries will be removed.

"NONE"

No eviction.

"RANDOM"

Randomly selected entries will be removed.

IndexType

Value Description

"SORTED"

 

"HASH"

 

"BITMAP"

 

InitialModeType

Value Description

"LAZY"

Loading is asynchronous. It is the default mode.

"EAGER"

Loading is blocked until all partitions are loaded.

MapConfigState

Value Description

"Failed"

 

"Success"

 

"Pending"

 

"Persisting"

Map config is added into all members but waiting for map to be persisten into ConfigMap

MaxSizePolicyType

Value Description

"PER_NODE"

Maximum number of map entries in each cluster member. You cannot set the max-size to a value lower than the partition count (which is 271 by default).

"PER_PARTITION"

Maximum number of map entries within each partition.

"USED_HEAP_PERCENTAGE"

Maximum used heap size percentage per map for each Hazelcast instance. If, for example, JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when used heap size exceeds 100 MB. It does not work when "in-memory-format" is set to OBJECT.

"USED_HEAP_SIZE"

Maximum used heap size in megabytes per map for each Hazelcast instance. It does not work when "in-memory-format" is set to OBJECT.

"FREE_HEAP_PERCENTAGE"

Minimum free heap size percentage for each Hazelcast instance. If, for example, JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when free heap size is below 100 MB.

"FREE_HEAP_SIZE"

Minimum free heap size in megabytes for each Hazelcast instance.

"USED_NATIVE_MEMORY_SIZE"

Maximum used native memory size in megabytes per map for each Hazelcast instance. It is available only in Hazelcast Enterprise HD.

"USED_NATIVE_MEMORY_PERCENTAGE"

Maximum used native memory size percentage per map for each Hazelcast instance. It is available only in Hazelcast Enterprise HD.

"FREE_NATIVE_MEMORY_SIZE"

Minimum free native memory size in megabytes for each Hazelcast instance. It is available only in Hazelcast Enterprise HD.

"FREE_NATIVE_MEMORY_PERCENTAGE"

Minimum free native memory size percentage for each Hazelcast instance. It is available only in Hazelcast Enterprise HD.

UniqueKeyTransition

Value Description

"OBJECT"

 

"LONG"

 

"RAW"