Chapter 2. Configuring Data Grid Servers
Apply custom Data Grid Server configuration to your deployments.
2.1. Customizing Data Grid Server configuration
Apply custom deploy.infinispan
values to Data Grid clusters that configure the Cache Manager and underlying server mechanisms like security realms or Hot Rod and REST endpoints.
You must always provide a complete Data Grid Server configuration when you modify deploy.infinispan
values.
Do not modify or remove the default "metrics" configuration if you want to use monitoring capabilities for your Data Grid cluster.
Procedure
Modify Data Grid Server configuration as required:
Specify configuration values for the Cache Manager with
deploy.infinispan.cacheContainer
fields.For example, you can create caches at startup with any Data Grid configuration or add cache templates and use them to create caches on demand.
-
Configure security authorization to control user roles and permissions with the
deploy.infinispan.cacheContainer.security.authorization
field. -
Select one of the default JGroups stacks or configure cluster transport with the
deploy.infinispan.cacheContainer.transport
fields. -
Configure Data Grid Server endpoints with the
deploy.infinispan.server.endpoints
fields. -
Configure Data Grid Server network interfaces and ports with the
deploy.infinispan.server.interfaces
anddeploy.infinispan.server.socketBindings
fields. Configure Data Grid Server security mechanisms with the
deploy.infinispan.server.security
fields.NoteThe Data Grid chart does not currently support TLS/SSL security realms and encrypted client connections.
2.2. Data Grid Server configuration values
Data Grid Server configuration values let you customize the Cache Manager and modify server instances that run in OpenShift pods.
Data Grid Server configuration
deploy: infinispan: cacheContainer: # [USER] Add cache, template, and counter configuration. name: default # [USER] Specify `security: null` to disable security authorization. security: authorization: {} transport: cluster: ${infinispan.cluster.name:cluster} node-name: ${infinispan.node.name:} stack: kubernetes server: endpoints: # [USER] Hot Rod and REST endpoints. - securityRealm: default socketBinding: default # [METRICS] Metrics endpoint for cluster monitoring capabilities. - connectors: rest: restConnector: authentication: mechanisms: BASIC securityRealm: metrics socketBinding: metrics interfaces: - inetAddress: value: ${infinispan.bind.address:127.0.0.1} name: public security: credentialStores: - clearTextCredential: clearText: secret name: credentials path: credentials.pfx securityRealms: # [USER] Security realm for the Hot Rod and REST endpoints. - name: default # [USER] Comment or remove this properties realm to disable authentication. propertiesRealm: groupProperties: path: groups.properties groupsAttribute: Roles userProperties: path: users.properties # [METRICS] Security realm for the metrics endpoint. - name: metrics propertiesRealm: groupProperties: path: metrics-groups.properties relativeTo: infinispan.server.config.path groupsAttribute: Roles userProperties: path: metrics-users.properties plainText: true relativeTo: infinispan.server.config.path socketBindings: defaultInterface: public portOffset: ${infinispan.socket.binding.port-offset:0} socketBinding: # [USER] Socket binding for the Hot Rod and REST endpoints. - name: default port: 11222 # [METRICS] Socket binding for the metrics endpoint. - name: metrics port: 11223
Data Grid cache configuration
deploy: infinispan: cacheContainer: distributedCache: name: "mycache" mode: "SYNC" owners: "2" segments: "256" capacityFactor: "1.0" statistics: "true" encoding: mediaType: "application/x-protostream" expiration: lifespan: "5000" maxIdle: "1000" memory: maxCount: "1000000" whenFull: "REMOVE" partitionHandling: whenSplit: "ALLOW_READ_WRITES" mergePolicy: "PREFERRED_NON_NULL" #Provide additional Cache Manager configuration. server: #Provide configuration for server instances.
Cache template
deploy: infinispan: cacheContainer: distributedCacheConfiguration: name: "my-dist-template" mode: "SYNC" statistics: "true" encoding: mediaType: "application/x-protostream" expiration: lifespan: "5000" maxIdle: "1000" memory: maxCount: "1000000" whenFull: "REMOVE" #Provide additional Cache Manager configuration. server: #Provide configuration for server instances.
Cluster transport
deploy: infinispan: cacheContainer: transport: #Specifies the name of a default JGroups stack. stack: kubernetes #Provide additional Cache Manager configuration. server: #Provide configuration for server instances.
Additional resources