Infinispan Deployment.YAML on OpenShift Container Platform
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.