Chapter 4. Creating Data Grid clusters Create Data Grid clusters running on OpenShift with the Infinispan CR or with the native Data Grid CLI plugin for oc clients. 4.1. Infinispan custom resource (CR) Data Grid Operator adds a new Custom Resource (CR) of type Infinispan that lets you handle Data Grid clusters as complex units on OpenShift. Data Grid Operator listens for Infinispan Custom Resources (CR) that you use to instantiate and configure Data Grid clusters and manage OpenShift resources, such as StatefulSets and Services. Infinispan CR Field Description apiVersion Declares the version of the Infinispan API. kind Declares the Infinispan CR. metadata.name Specifies a name for your Data Grid cluster. spec.replicas Specifies the number of pods in your Data Grid cluster. spec.service.type Specifies the type of Data Grid service to create. spec.version Specifies the Data Grid Server version of your cluster. 4.2. Creating Data Grid clusters Create Data Grid clusters with the native CLI plugin, kubectl-infinispan . Prerequisites Install Data Grid Operator. Have kubectl-infinispan on your PATH . Procedure Run the infinispan create cluster command. For example, create a Data Grid cluster with two pods as follows: Tip Add the --version argument to control the Data Grid version of your cluster. For example, --version=8.4.6-1 . If you don't specify the version, Data Grid Operator creates cluster with the latest supported Data Grid version. Watch Data Grid Operator create the Data Grid pods. steps After you create a Data Grid cluster, use the oc to apply changes to Infinispan CR and configure your Data Grid service. You can also delete Data Grid clusters with kubectl-infinispan and re-create them as required. Additional resources kubectl-infinispan command reference 4.3. Verifying Data Grid cluster views Confirm that Data Grid pods have successfully formed clusters. Prerequisites Create at least one Data Grid cluster. Procedure Retrieve the Infinispan CR for Data Grid Operator. The response indicates that Data Grid pods have received clustered views, as in the following example: Tip Do the following for automated scripts: Retrieving cluster view from logs You can also get the cluster view from Data Grid logs as follows: 4.4. Modifying Data Grid clusters Configure Data Grid clusters by providing Data Grid Operator with a custom Infinispan CR. Prerequisites Install Data Grid Operator. Create at least one Data Grid cluster. Have an oc client. Procedure Create a YAML file that defines your Infinispan CR. For example, create a my_infinispan.yaml file that changes the number of Data Grid pods to two: Apply your Infinispan CR. Watch Data Grid Operator scale the Data Grid pods. 4.5. Stopping and starting Data Grid clusters Stop and start Data Grid pods in a graceful, ordered fashion to correctly preserve cluster state. Clusters of Data Grid service pods must restart with the same number of pods that existed before shutdown. This allows Data Grid to restore the distribution of data across the cluster. After Data Grid Operator fully restarts the cluster you can safely add and remove pods. Procedure Change the spec.replicas field to 0 to stop the Data Grid cluster. spec: replicas: 0 Ensure you have the correct number of pods before you restart the cluster. Change the spec.replicas field to the same number of pods to restart the Data Grid cluster.

Commands:
apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: infinispan spec: replicas: 2 version: <Data Grid_version> service: type: DataGrid
infinispan create cluster --replicas=3 -Pservice.type=DataGrid infinispan
get pods -w
infinispan delete cluster infinispan
get infinispan -o yaml
conditions: - message: 'View: [infinispan-0, infinispan-1]' status: "True" type: wellFormed
wait --for condition=wellFormed --timeout=240s infinispan/infinispan
logs infinispan-0 | grep ISPN000094
INFO [org.infinispan.CLUSTER] (MSC service thread 1-2) ISPN000094: Received new cluster view for channel infinispan: [infinispan-0|0] (1) [infinispan-0] INFO [org.infinispan.CLUSTER] (jgroups-3,infinispan-0) ISPN000094: Received new cluster view for channel infinispan: [infinispan-0|1] (2) [infinispan-0, infinispan-1]
cat > cr_minimal.yaml<<EOF apiVersion: infinispan.org/v1 kind: Infinispan metadata: name: infinispan spec: replicas: 2 version: <Data Grid_version> service: type: DataGrid EOF
apply -f my_infinispan.yaml
get pods -w
spec: replicas: 0
get infinispan infinispan -o=jsonpath='{.status.replicasWantedAtRestart}'
spec: replicas: 6