60 lines
1.8 KiB
YAML
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
|