Docker-OSX/helm/README.md

2.1 KiB

docker-osx

Information

This installs docker-osx in Kubernetes.

Features

What works

  1. Setting cpu/memory options
  2. Setting VNC password
  3. Persistance
  4. Setting SMBIOS
  5. QEMU/virtio cpu changes
  6. Toggling Audio
  7. Additional port forwarding
  8. Kubernetes resource requests/limits
  9. Defining install partition size

What doesn't/isn't defined

  1. Defining a different version of macOS
  2. Additional QEMU parameters
  3. GPU support

Requirements

*) Install host machine requirements *) Ensure you are running QEMU 5.X *) Kubernetes *) Helm *) sickcodes/docker-osx-vnc Docker image

Build sickcodes/docker-osx-vnc

  1. Go back to the root directory

  2. Build docker image

    docker build \
        -t sickcodes/docker-osx-vnc:latest \
        -f vnc-version/Dockerfile .
    

Do not worry about passing CPU, RAM, etc as they are handled in values.yaml now.

Installation

In values.yaml..

  1. Set a unique password for vnc.password.
  2. Re-generate SMBIOS MLB, SystemSerialNumber, and SystemUUID for iServices to work.
  3. Update serverName to reflect the unique name (in the case more than one deployment is required).
  4. Configure downloadDelay (in a period of seconds) that reflects how long your internet connection will download around 500MB (BaseSystem.dmg) + uncompress the file (which took about the same time for me to download on a 1gig internet connection).
  5. Set service.ip to reflect an IP address of your choice, or use ingress.
  6. Update extraVolumes.hostPath.path to something useful for you.

Afterwards..

  1. Launch your VNC viewer of choice and connect to the IP/hostname you defined + the port 8888 with the password specified for vnc.password.
  2. Install macOS like usual.

Please note, after you have installed macOS feel free to set downloadDelay to nothing, as BaseSystem.dmg will be stored in the path defined for extraVolumes.hostPath.path

Resources

Please note, resource limits may vary based on hardware. The ones currently defined are ones that worked for me personally.