View on GitHub

pega-helm-charts

Orchestrate a Pega Platform™ deployment by using Docker, Kubernetes, and Helm to take advantage of Pega Platform Cloud Choice flexibility.

Clustering Service Deployment

The Hazelcast clustering service is implemented using a Pega-provided Docker image that contains the Hazelcast clustering service image, which you must make available in your deployment Docker image repository. This Hazelcast subchart defines the additional deployment parameters the clustering service uses to define dynamic features for the client-server deployment model using Hazelcast. In the latter deployment model, Pega Platform uses Hazelcast in Client configuration to connect to a cluster of PODs running Hazelcast in server configuration. For Kubernetes based deployments client-server is the default and the recommended form of deployment.

Using Clustering service for client-server form of deployment is only supported from Pega Platform 8.6 or later.

Managing Resources

You can configure the memory and cpu limits for the Hazelcast service using the below parameters. Default value is used in case an alternate value is not specified.

Name Description Default value
resources.requests.memory Initial Memory request for PODS running the Hazelcast service 1Gi
resources.requests.cpu Initial CPU request for PODS running the Hazelcast service 1
resources.limits.memory Memory Limit for PODS running the Hazelcast service 1Gi
resources.limits.cpu CPU Limit for PODS running the Hazelcast service 2

Client Parameter

Name Description Default value
client.clusterName Cluster Name for Pega nodes to connect to for client-server Deployment PRPC

Server Parameters

Name Description Default value
server.java_opts Parameter for passing JVM Arguments. -Xms820m -Xmx820m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/hazelcast/logs/heapdump.hprof
server.jmx_enabled Enables exposing the collected metrics over JMX if set to true, disables it otherwise. true
server.health_monitoring_level Health monitoring log level. When SILENT, logs are printed only when values exceed some predefined threshold. When NOISY, logs are always printed periodically. Set OFF to turn off completely. OFF
server.operation_generic_thread_count Number of generic operation handler threads for each Hazelcast member. The default value is the maximum of 2 and (available processor count / 2). ""
server.operation_thread_count Number of partition based operation handler threads for each Hazelcast member. The default value is the maximum of 2 and the number of available processors. ""
server.io_thread_count Number of threads performing socket input and socket output. For example, If a default value of (3) is used, it implies there are 3 threads performing input and 3 threads performing output (6 threads in total). ""
server.event_thread_count Number of event handler threads. ""
server.max_join_seconds Join timeout, maximum time to attempt to join the cluster. ""
server.group_name Specifies the name of the cluster created by Hazelcast nodes. PRPC
server.clustering_service_group_name Specifies the name of the cluster created by clustering service (Hazelcast) nodes. prpchz
server.mancenter_url URL of the Hazelcast Management center to which the Hazelcast nodes can connect. ""
server.graceful_shutdown_max_wait_seconds Maximum wait in seconds during graceful shutdown. 600
server.service_dns_timeout Custom time for how long the DNS Lookup is checked. ""
server.logging_level Set logging level for Hazelcast. Available logging levels are OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE and ALL. Invalid levels are assumed to be OFF. info
server.diagnostics_enabled Specifies whether diagnostics tool is enabled or not for the cluster. true
server.diagnostics_metric_level The level of information saved in the log file is set to info by default. To change the level of information saved in the log file, change the value of the setting to the level that you want to use. info
server.diagnostic_log_file_size_mb The maximum size of each diagnostic file, default value used is 50 MB. 50
server.diagnostics_file_count The maximum number of diagnostic files that the system keeps. Default value is 3. 3

Example

image: "YOUR_HAZELCAST_IMAGE:TAG"
clusteringServiceImage: "YOUR_CLUSTERING_SERVICE_IMAGE:TAG"
imagePullPolicy: "Always"
replicas: 3
enabled: true
clusteringServiceEnabled: false
migration:
  enabled: false
  migrationJobImage: "YOUR_MIGRATION_JOB_IMAGE:TAG"
  embeddedToCSMigration: false
username: ""
password: ""

resources:
  requests:
    memory: "1Gi"
    cpu: 1
  limits:
    memory: "1Gi"
    cpu: 2
    
client:
  clusterName: "PRPC"
  
server:
  java_opts: "-Xms820m -Xmx820m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/hazelcast/logs/heapdump.hprof
  -XX:+UseParallelGC -Xlog:gc*,gc+phases=debug:file=/opt/hazelcast/logs/gc.log:time,pid,tags:filecount=5,filesize=3m"
  jmx_enabled: "true"
  health_monitoring_level: "OFF"
  operation_generic_thread_count: ""
  operation_thread_count: ""
  io_thread_count: ""
  event_thread_count: ""
  max_join_seconds: ""
  group_name: "PRPC"
  clustering_service_group_name: "prpchz"
  mancenter_url: ""
  graceful_shutdown_max_wait_seconds: "600"
  service_dns_timeout: ""
  logging_level: "info"
  diagnostics_enabled: "true"
  diagnostics_metric_level: "info"
  diagnostic_log_file_size_mb: "50"
  diagnostics_file_count: "3"