finch
finch copied to clipboard
feat: add finch-daemon
Issue #, if available:
Description of changes
Adds finch-daemon, so that it starts inside the VM and is exposed to processes inside the VM (via /run/finch.sock and /var/run/docker.sock), and processes on the native macOS host (via /path/to/lima/data/finch/sock/finch.sock).
To make this possible, these changes had to be made:
- Added finch-daemon specific logic to
./finch.yaml.d/mac.yaml- This logic makes it so that the
finch-daemonbinary and service file are copied into the VM, and then starts the daemon using systemd
- This logic makes it so that the
- In
Makefile.darwin, changed the order so that the finch-daemon specific provisioning script would be the final script, after being merged- Also added a
add-daemon-mounttarget, which makes it so that duplicate mounts are not added to Lima. This is done to avoid the default lima provisioning scripts failing due to trying to mount/unmount a directory twice (the end result is users may seecloud-final.servicefail after shelling into the VM. although this should only ever really impact developers, it was easy enough to fix)
- Also added a
- Added [email protected]
This change also currently relies on a fork of finch-core, which actually has the code necessary for building finch-daemon. Once https://github.com/runfinch/finch-core/pull/424 is merged, I'll update this PR to remove the use of a different finch-core upstream.
Testing done
- finch-daemon works as expected on macOS:
DOCKER_HOST=unix:///path/to/finch/_output/lima/data/finch/sock/finch.sock docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
public.ecr.aws/amazonlinux/amazonlinux 2023 75763d26a280 3 weeks ago 51.4MB
public.ecr.aws/docker/library/registry latest 12120425f07d 2 months ago 9.47MB
public.ecr.aws/lambda/nodejs 18-x86_64 97f94536a3af 3 weeks ago 180MB
- [x] I've reviewed the guidance in CONTRIBUTING.md
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.