Running the Data Grid Operator
Data Grid Documentation
Abstract
Preface Copy linkLink copied to clipboard!
The Data Grid Operator provides operational intelligence and reduces management complexity for deploying Data Grid on OpenShift clusters.
Chapter 1. Technology Preview Copy linkLink copied to clipboard!
The Data Grid Operator is currently a Technology Preview.
Technology Preview features or capabilities are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them for production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information see Red Hat Technology Preview Features Support Scope.
Chapter 2. Spinning Up Data Grid Clusters Copy linkLink copied to clipboard!
You create Data Grid clusters from custom resource definitions.
Prerequisites
Install the Data Grid Operator from the OperatorHub.
2.1. Creating Minimal Data Grid Clusters Copy linkLink copied to clipboard!
Quickly spin up a Data Grid cluster with two nodes and let the Data Grid Operator generate credentials. You can retrieve the credentials from the pods after you create the Data Grid cluster. However, because Data Grid clusters require authentication, you cannot connect to the pods without the credentials.
Procedure
Create a custom resource
yamlfor the minimal cluster.$ cat > cr_minimal.yaml<<EOF apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: example-rhdg spec: replicas: 2 EOF-
replicasspecifies the number of nodes in the Data Grid cluster.
-
Apply the custom resource
yaml.$ oc apply -f cr_minimal.yamlVerify that the Data Grid Operator creates the pods.
$ oc get pods -w NAME READY STATUS RESTARTS AGE example-rhdg-1 0/1 ContainerCreating 0 4s example-rhdg-2 0/1 ContainerCreating 0 4s example-rhdg-3 0/1 ContainerCreating 0 5s infinispan-operator-0 1/1 Running 0 3m example-rhdg-3 1/1 Running 0 8s example-rhdg-2 1/1 Running 0 8s example-rhdg-1 1/1 Running 0 8s
2.2. Creating Data Grid Clusters with Credentials Copy linkLink copied to clipboard!
Create secrets that contain credentials so application users can authenticate to Data Grid nodes. You can then specify the name of the secret in a custom resource yaml and spin up clusters with the Data Grid Operator.
Procedure
Create a secret that contains credentials for the application user.
Add an authentication secret
yaml, for example:$ cat > connect_secret.yaml<<EOF apiVersion: v1 kind: Secret metadata: name: connect-secret type: Opaque stringData: username: developer password: changeme EOFThe secret must:
-
Be
type: Opaque. Have
usernameandpasswordfields.ImportantThe preceding authentication secret contains sample values for the
usernameandpasswordfields. You should replace these values with credentials that conform to your organization’s security requirements.
-
Be
Apply the authentication secret
yaml.$ oc apply -f connect_secret.yaml
Create a custom resource
yamlfor the cluster that includes the name of the secret that contains your credentials.$ cat > cr_minimal_with_auth.yaml<<EOF apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: example-rhdg spec: replicas: 2 connector: authentication: type: Credentials secretName: connect-secret EOF-
replicasspecifies the number of nodes in the Data Grid cluster. -
connectorconfigures how users connect to Data Grid nodes to store and retrieve data.
-
Apply the custom resource
yaml.$ oc apply -f cr_minimal_with_auth.yamlVerify that the Data Grid Operator creates the pods.
$ oc get pods -w NAME READY STATUS RESTARTS AGE example-rhdg-1 0/1 ContainerCreating 0 4s example-rhdg-2 0/1 ContainerCreating 0 4s example-rhdg-3 0/1 ContainerCreating 0 5s infinispan-operator-0 1/1 Running 0 3m example-rhdg-3 1/1 Running 0 8s example-rhdg-2 1/1 Running 0 8s example-rhdg-1 1/1 Running 0 8s
2.3. Verifying Data Grid Clusters Copy linkLink copied to clipboard!
Review log messages to verify that the Data Grid Operator has successfully created a Data Grid cluster.
Procedure
Verify that the Data Grid nodes can discover each other, for example:
$ oc logs example-rhdg-0 | grep DNS_PING INFO Configuring JGroups discovery protocol to openshift.DNS_PING INFO [org.jgroups.protocols.openshift.DNS_PING] (MSC service thread 1-2) serviceName [my-namespace] set; clustering enabledVerify that the nodes have received a clustered view. Do either of the following:
Retrieve the cluster view from the pod log files.
$ oc logs example-rhdg-0 | grep ISPN000094 INFO [org.infinispan.CLUSTER] (MSC service thread 1-2) \ ISPN000094: Received new cluster view for channel cluster: \ [example-rhdg-0|0] (1) [example-rhdg-0] INFO [org.infinispan.CLUSTER] (jgroups-3,{example_crd_name-0) \ ISPN000094: Received new cluster view for channel cluster: \ [example-rhdg-0|1] (2) [example-rhdg-0, example-rhdg-1]Retrieve the custom resource type for the Data Grid Operator.
$ oc get infinispan -o yamlThe output of the preceding command contains the following message to indicate that the Data Grid nodes have received a clustered view:
conditions: - message: 'View: [example-rhdg-0, example-rhdg-1]' status: "True" type: wellFormed
Chapter 3. Managing Cluster Credentials Copy linkLink copied to clipboard!
Perform tasks to manage authentication for Data Grid clusters.
Prerequisites
-
An
occlient in your$PATH.
3.1. Retrieving Cluster Credentials Copy linkLink copied to clipboard!
You can retrieve credentials for your Data Grid clusters as base64-encoded strings from secrets in your cluster namespace.
If you do not create secrets and credentials when you create clusters, the Data Grid Operator automatically generates them with the following defaults:
- Default usernames
-
Management user is
admin. -
Application user is
developer.
-
Management user is
- Default credentials secrets
-
example-rhdg-mgmt-generated-secretcontains credentials for the management user. -
example-rhdg-app-generated-secretcontains credentials for the application user.
-
Procedure
Get the credentials from the secret. For example, to get the password for the application user from the default secret:
$ oc get secret example-rhdg-app-generated-secret \ -n my_namespace -o jsonpath="{.data.password}" | base64 --decodeTipUse the
jpJSON processor to retrieve credentials as follows:$ oc get secret example-rhdg-app-generated-secret \ -n my_namespace -o json | jq '.data | map_values(@base64d)' { "password": "tUElqbfoJmT,NJVN", "username": "developer" }