Custom Configuration of Hazelcast cluster
Hazelcast Platform Operator’s Custom Config allows users to provide a raw Hazelcast Configuration that can be directly utilized. It is perfect for those who want to take complete control over their configuration or to use new features that are not yet present in the Operator.
To use the Custom Config as a method of configuring the Hazelcast cluster, you need to create a
ConfigMap with the member configuration. The configuration must be in YAML format and consist of valid Hazelcast configuration.
apiVersion: v1 kind: ConfigMap metadata: name: custom-config-cm data: hazelcast: |- security: enabled: false realms: - name: simpleRealm authentication: simple: users: - username: dev password: 'secret' roles: - root
The name of the
ConfigMap should be set to the Hazelcast CR’s
apiVersion: hazelcast.com/v1alpha1 kind: Hazelcast metadata: name: hazelcast spec: customConfigCmName: custom-config-cm
The Custom Config is not designed as an alternative to the Hazelcast CR configuration, and it is not recommended to use it as the main source of the configuration. That said, Custom Config can and should be used together with the Hazelcast CR configuration.
apiVersion: v1 kind: ConfigMap metadata: name: custom-config-cm data: hazelcast: security: enabled: false realms: - name: simpleRealm authentication: simple: users: - username: dev password: 'secret' roles: - root
apiVersion: hazelcast.com/v1alpha1 kind: Hazelcast metadata: name: hazelcast spec: customConfigCmName: custom-config-cm userCodeDeployment: bucketConfig: secretName: br-secret-gcp bucketURI: "gs://operator-custom-class/executorService" executorServices: - name: service1 durableExecutorServices: - name: service2 scheduledExecutorServices: - name: service3
The configuration from the Hazelcat CR and the Custom Config will be merged into one structure that will be used as the Hazelcasat member configuration.
If the same feature is configured with Custom Config
ConfigMap and in the Hazelcast CR, the configuration from the Hazelcast CR will take precedence and will override the one from the Custom Config.
The Custom Config feature contains raw Hazelcast configuration that is not being managed by the Hazelcast Platform Operator. Thus its usage has some cautions and limitations.
It is not possible to combine the configuration of one feature in the Hazelcast CR and the Custom Config. The configuration from the Hazelcast CR will override the partial configuration from the Custom Config.
Some Hazelcast features require the management of additional K8s resources (e.g., Persistence requires PVCs). Custom Config does not allow configuring Kubernetes deployments, only the Hazelcast configuration. Therefore it is not possible to use Custom Config for such features; only the Hazelcast CR config is supported.
The Hazelcast Platform Operator communicates with the Hazelcast cluster, requiring a specific networking configuration. Reconfiguring it using Custom Config might break communication between the Operator and the cluster. To avoid such cases, the Operator will always override the networking section of the Custom Config. If you require any specific networking setup, please use Hazelcast CR.