VM-Operator/deploy/vmop-deployment.yaml
Michael N. Lipp e4af5f132e
Some checks failed
Java CI with Gradle / build (push) Has been cancelled
Merge tag 'tags/VM-Operator-4.0.3' into release/v4.0.x
2025-08-11 18:53:20 +02:00

60 lines
1.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: vm-operator
labels:
app.kubernetes.io/name: vm-operator
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: vm-operator
app.kubernetes.io/component: manager
template:
metadata:
name: vm-operator
labels:
app.kubernetes.io/name: vm-operator
app.kubernetes.io/component: manager
spec:
containers:
- name: vm-operator
image: >-
ghcr.io/mnlipp/org.jdrupes.vmoperator.manager:4.0.2
env:
- name: JAVA_OPTS
# The VM operator needs about 25 MB of memory, plus 1 MB for
# each VM. The reason is that for the sake of effeciency, we
# have to keep a parsed representation of the CRD in memory,
# which requires about 512 KB per VM. While handling updates,
# we temporarily have the old and the new version of the CRD
# in memory, so we need another 512 KB per VM.
value: "-Xmx128m"
resources:
requests:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: config
mountPath: /etc/opt/vmoperator
- name: vmop-image-repository
mountPath: /var/local/vmop-image-repository
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
volumes:
- name: config
configMap:
name: vm-operator
- name: vmop-image-repository
persistentVolumeClaim:
claimName: vmop-image-repository
nodeSelector:
kubernetes.io/os: linux
serviceAccountName: vm-operator
securityContext:
runAsUser: 65534
runAsNonRoot: true