| # This is a YAML-formatted file. | |
| # Declare variables to be passed into your templates. | |
| replicaCount: 1 | |
| image: | |
| repository: sickcodes/docker-osx-vnc | |
| tag: latest | |
| pullPolicy: IfNotPresent | |
| userName: ubuntu | |
| # Please note, this must be a directory name within `/system_image` mounted at the bottom in extraVolumeMounts | |
| serverName: server | |
| macos: | |
| # add kexts to EFI/OC/kexts and update config.plist | |
| # make sure your kexts are in kexts.path | |
| kexts: | |
| add: false | |
| path: /system_image/kexts | |
| kextsToAdd: {} | |
| # - name: BrcmBluetoothInjector.kext | |
| # executablePath: Contents/MacOS/BrcmBluetoothInjector | |
| # plistPath: Contents/Info.plist | |
| # - name: BrcmFirmwareData.kext | |
| # executablePath: Contents/MacOS/BrcmFirmwareData | |
| # plistPath: Contents/Info.plist | |
| # - name: BrcmPatchRAM3.kext | |
| # executablePath: Contents/MacOS/BrcmPatchRAM3 | |
| # plistPath: Contents/Info.plist | |
| # SMBIOS settings | |
| configPlist: | |
| SystemProductName: iMacPro1,1 | |
| MLB: D25338500GUF8YLJA | |
| SystemSerialNumber: D25LF7ZEF8JC | |
| SystemUUID: 139C94D6-A533-47D2-874F-D365BFD8B047 | |
| bootArgs: '-v keepsyms=1 tlbto_us=0 vti=9 -wegoff agdpmod=pikera' | |
| openCore: | |
| # Rebuild OpenCore.qcow2: this can be disabled if none of the above parameters in kexts, configPlist changes, and changing the | |
| # resolution are not desired, utilizing gpu passthrough and a few other things. Disabling is not recommended | |
| rebuild: true | |
| boot: | |
| # set to zero to have OpenCore stay at boot menu | |
| timeout: 0 | |
| installerSettings: | |
| # if using more than one deployment, a write lock will be put on the system installer dmg, so this will need to be disabled | |
| # for other pods | |
| version: 10.15.7 | |
| path: /system_image/installers | |
| # This section defines QEMU and virtlo parameters | |
| # | |
| # Note: | |
| # *) Increase downloadDelay if the pod gets killed for readiness/liveliness check. The first time the pod is started, | |
| # it will download the BaseSystem image and create a data partition to install the OS. If this value is really long, | |
| # the pod will take very long to allow VNC connections if it is rebooted/killed. | |
| # *) Big Sur (11.X) is currently broken, as it seems Apple reworked the packaging so that will have to be something fixed in | |
| # https://github.com/kholia/OSX-KVM/blob/master/fetch-macOS-v2.py | |
| # *) VNC and IOMMU GPU passthrough do not play together well. Disable one if using the other. This is a limitation of QEMU | |
| # unfortunately, so this means VNC from macOS will have to be used to view the VM when not using a physical GPU. | |
| # *) If using GPU passthrough, it is recommended to configure it first, as the installer will take way longer (several hours) | |
| # to install macOS with a software GPU configured. | |
| # | |
| qemu: | |
| cpu: Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+xsave,+xsaveopt,check | |
| softwareGpu: vmware | |
| hardwareGpu: | |
| # when enabled, qemu.softwareGpu will be disabled automatically. disabling this will rely on softwareGpu instead | |
| enabled: false | |
| hardwareId: 09:00 | |
| # slot can be found with `lspci -v -s <hardware-id>` | |
| slot: 05 | |
| # vfioGroup can be found with lsgroup.sh: | |
| # https://github.com/kholia/OSX-KVM/blob/master/scripts/lsgroup.sh | |
| vfioGroup: 50 | |
| # leave romfile blank if not using one to disable | |
| romfile: /system_image/vbios/Sapphire.RX480.8192.160603.rom | |
| systemInstaller: | |
| # if using more than one deployment, a write lock will be put on the system installer dmg, so this will need to be disabled | |
| # for other pods | |
| enabled: false | |
| downloadDelay: 15 | |
| # can be `writethrough`, `writeback`, or `none` | |
| cache: none | |
| # can be `native` or `threads` | |
| io: threads | |
| systemDisk: | |
| size: 128G | |
| # can be `writethrough`, `writeback`, or `none` | |
| cache: writeback | |
| # can be `native` or `threads` | |
| io: threads | |
| audio: | |
| # this enables onboard audio, hdmi audio is handled with qemu.hardwareGpu | |
| enabled: false | |
| driver: alsa | |
| netdev: | |
| extraPortForwarding: hostfwd=tcp::5901-:5900 | |
| # for usb, pass host adapters like such: | |
| # usb: | |
| # - vendorId: 0a5c | |
| # productId: 21e8 | |
| # | |
| # please use lsgroup.sh to find your host ids: | |
| # https://github.com/kholia/OSX-KVM/blob/master/scripts/lsgroup.sh | |
| # | |
| # for usb, may need to fix permissions: | |
| # sudo chmod 666 /dev/bus/usb/<bus>/<device> | |
| # | |
| # if need to add a usb controller via vfio-pci, use qemu.extraArgs | |
| # | |
| usb: {} | |
| # use the following formatting | |
| # extraArgs: | |
| # - -parallel none | |
| # - -boot order=dc | |
| extraArgs: {} | |
| # Password for accessing vm over vnc | |
| vnc: | |
| enabled: true | |
| resolution: 1920x1080 | |
| password: a5aeQbaPd4$jR80Q43 | |
| nameOverride: "" | |
| fullnameOverride: "" | |
| service: | |
| type: LoadBalancer | |
| ip: 192.168.1.10 | |
| targetPort: 50922 | |
| port: 10022 | |
| extraPorts: | |
| - port: 5901 | |
| targetPort: 5901 | |
| protocol: TCP | |
| name: os-level-vnc | |
| ingress: | |
| enabled: false | |
| annotations: {} | |
| # kubernetes.io/ingress.class: nginx | |
| # kubernetes.io/tls-acme: "true" | |
| paths: | |
| - / | |
| hosts: | |
| - docker-osx.local | |
| tls: [] | |
| # - secretName: chart-example-tls | |
| # hosts: | |
| # - chart-example.local | |
| # Note: Resources can vary dramatically depending on disk caching and software GPU rendering. With disk | |
| # caching and software rendering up to x5 the cpu and x9 memory can be consumed. With disk cache off | |
| # and GPU passthrough enabled up to x3 the cpu and x1.5 memory can be consumed. Therefore, these settings | |
| # really depend on hardware and configuration choices. Note, these values used a 1080p video resolution | |
| # as well. | |
| # | |
| # Warning: do not perform unit conversion on cpu and memory requests, as these units | |
| # are tied qemu and virtio settings. Also, only use intergers for cpu requests. | |
| resources: | |
| limits: | |
| cpu: 15 | |
| memory: 32768Mi | |
| requests: | |
| cpu: 4 | |
| memory: 16384Mi | |
| nodeSelector: {} | |
| tolerations: [] | |
| affinity: {} | |
| persistence: | |
| data: | |
| enabled: false | |
| ## configuration data Persistent Volume Storage Class | |
| ## If defined, storageClassName: <storageClass> | |
| ## If set to "-", storageClassName: "", which disables dynamic provisioning | |
| ## If undefined (the default) or set to null, no storageClassName spec is | |
| ## set, choosing the default provisioner. (gp2 on AWS, standard on | |
| ## GKE, AWS & OpenStack) | |
| ## | |
| # storageClass: "-" | |
| ## | |
| ## If you want to reuse an existing claim, you can pass the name of the PVC using | |
| ## the existingClaim variable | |
| existingClaim: docker-osx | |
| accessMode: ReadWriteOnce | |
| size: 5Gi | |
| # Any extra volumes to define for the pod | |
| extraVolumes: | |
| - name: data | |
| hostPath: | |
| path: /mnt/data/default/docker_osx/ | |
| type: DirectoryOrCreate | |
| # Any extra volume mounts to define for the containers | |
| extraVolumeMounts: | |
| - name: data | |
| mountPath: /system_image | |