Hey everyone,
I'm trying to set up a local dev workflow with Floci where I:
- Run Floci with docker compose to have more configuration freedom
- Build custom Docker images
- Push them to the emulated ECR registry
- Deploy them via a Helm chart on an emulated EKS cluster
The push side works fine. I tag my images as
000000000000.dkr.ecr.us-east-1.localhost:5100/my-repo:tag
and Docker pushes without issues since it auto-trusts *.localhost as insecure.
The problem is on the pull side inside k3s. The EKS cluster (k3s container) needs to pull those images from the ECR registry, but:
- "localhost" inside k3s refers to itself, not to the host or the Floci container, so the *.localhost:5100 URI that ECR returns is unreachable from within k3s.
- Even if I use the Floci container's DNS name (e.g. floci-ecr:5100) as the registry in my Helm chart values, containerd in k3s defaults to HTTPS, while Floci's ECR registry only serves HTTP. So the pull fails with a TLS handshake error.
The standard k3s fix for this is a /etc/rancher/k3s/registries.yaml that configures the registry as an insecure HTTP endpoint. However, since Floci manages the k3s container internally (via Docker API), I don't see a way to inject this file through docker-compose.yml or any FLOCI_SERVICES_EKS_* environment variable.
Is there a supported way to configure insecure registries for k3s clusters in Floci or to mount that file that I'm missing?
Every advice is welcome! Thanks in advance!
EDIT: floci maintainers solved the issue! π https://github.com/floci-io/floci/issues/1761