Deploying Infinispan to OpenShift can be done easily by using either Operator or Helm chart. However, there is an even easier way to deploy it, and that is by using a single YAML file.
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: infinispan
namespace: cache
labels:
app: infinispan
spec:
replicas: 1
selector:
matchLabels:
app: infinispan
template:
metadata:
labels:
app: infinispan
spec:
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: ispn-pv
containers:
- name: infinispan
image: 'quay.io/infinispan/server:16.1'
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1Gi
requests:
memory: 1Gi
env:
- name: USER
value: admin
- name: PASS
value: password
ports:
- name: infinispan
containerPort: 11222
protocol: TCP
volumeMounts:
- name: data-volume
mountPath: /opt/infinispan/server/data
---
kind: Service
apiVersion: v1
metadata:
name: infinispan
namespace: cache
spec:
ports:
- protocol: TCP
port: 11222
targetPort: 11222
selector:
app: infinispan
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ispn-pv
namespace: cache
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeMode: Filesystem
We can deploy this single file directly to OpenShift and have it up and running in a few minutes. However this approach is perfect for local development, testing, or a quick proof-of-concept. If you intend to scale Infinispan into a multi-node distributed cluster for production, you should migrate this configuration to a StatefulSet or leverage the official Infinispan Operator to handle cluster discovery and data replication.