aboutsummaryrefslogtreecommitdiff
path: root/helm/templates/deployment.yaml
blob: 87c33d12372de8df1e2f86632f83b0e03f822e28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "docker-osx.fullname" . }}
  labels:
    app.kubernetes.io/name: {{ include "docker-osx.name" . }}
    helm.sh/chart: {{ include "docker-osx.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ include "docker-osx.name" . }}
      app.kubernetes.io/instance: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ include "docker-osx.name" . }}
        app.kubernetes.io/instance: {{ .Release.Name }}
    spec:
      containers:
      - name: {{ .Chart.Name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: true
          readOnlyRootFilesystem: false
          privileged: true
          capabilities:
            add:
            - net_raw
            - NET_ADMIN
        ports:
        - name: http
          containerPort: {{ .Values.service.port }}
          protocol: TCP
        livenessProbe:
          tcpSocket:
            port: http
          {{- if .Values.qemu.systemInstaller.downloadDelay }}
          initialDelaySeconds: {{ .Values.qemu.systemInstaller.downloadDelay }}
          {{- end }}
        readinessProbe:
          tcpSocket:
            port: http
          {{- if .Values.qemu.systemInstaller.downloadDelay }}
          initialDelaySeconds: {{ .Values.qemu.systemInstaller.downloadDelay }}
          {{- end }}
        env:
        - name: CORES
          value: "{{ .Values.resources.requests.cpu }}"
        - name: SMP
          value: "{{ .Values.resources.requests.cpu }}"
        - name: RAM
          value: "{{ .Values.resources.requests.memory | trimSuffix "Mi" }}"
        - name: TZ
          value: "{{ .Values.tz }}"
        resources:
{{ toYaml .Values.resources | indent 10 }}
        volumeMounts:
        - mountPath: /home/arch/OSX-KVM/config.plist
          subPath: config.plist
          name: boot-components
        - mountPath: /home/arch/OSX-KVM/macOS-libvirt-Catalina.xml
          subPath: macOS-libvirt-Catalina.xml
          name: boot-components
        - mountPath: /home/arch/OSX-KVM/Launch_custom.sh
          subPath: Launch_custom.sh
          name: boot-components
        - mountPath: /home/arch/OSX-KVM/vncpasswd_file
          subPath: vncpasswd_file
          name: boot-components
        - mountPath: /etc/security/limits.conf
          subPath: limits.conf
          name: boot-components
        - mountPath: /dev/kvm
          name: kvm
        - mountPath: /dev/net/tun
          name: tun
        - mountPath: /dev/vfio
          name: vfio
        - mountPath: /dev/snd
          name: snd
        - mountPath: /tmp/.X11-unix
          name: x11
        {{- if .Values.persistence.data.enabled }}
        - name: data
          mountPath: /mnt/data
        {{- end }}
        {{- if .Values.extraVolumeMounts }}{{ toYaml .Values.extraVolumeMounts | trim | nindent 8 }}{{ end }}
        # args:
        # - 
      volumes:
      - name: boot-components
        configMap: 
          name: {{ template "docker-osx.fullname" . }}-boot-components
          items:
          - key: config.plist
            path: config.plist
          - key: macOS-libvirt-Catalina.xml
            path: macOS-libvirt-Catalina.xml
          - key: Launch_custom.sh
            path: Launch_custom.sh
          - key: vncpasswd_file
            path: vncpasswd_file
          - key: limits.conf
            path: limits.conf
      - name: kvm
        hostPath:
          path: /dev/kvm
      - name: tun
        hostPath:
          path: /dev/net/tun
      - name: vfio
        hostPath:
          path: /dev/vfio
      - name: snd
        hostPath:
          path: /dev/snd
      - name: x11
        hostPath:
          path: /dev/ssd_data/default/{{ .Release.Name }}/.X11-unix
      {{- if .Values.persistence.data.enabled }}
      - name: data
        persistentVolumeClaim:
          claimName: {{ if .Values.persistence.data.existingClaim }}{{ .Values.persistence.data.existingClaim }}{{- else }}{{ template "docker-osx.fullname" . }}-data{{- end }}
      {{- else }}
          emptyDir: {}
      {{- end }}
      {{- if .Values.extraVolumes  }}{{ toYaml .Values.extraVolumes | trim | nindent 6 }}{{ end }}
{{- if .Values.nodeSelector }}
      nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
{{- end }}