finch icon indicating copy to clipboard operation
finch copied to clipboard

fix: Configure Buildkit Namespace as Env Variable

Open ollypom opened this issue 2 years ago • 0 comments
trafficstars

Signed-off-by: Olly Pomeroy [email protected]

Issue #, if available: https://github.com/runfinch/finch/issues/71

Description of changes: Adding the env section to the lima vm configuration, and the defining a CONTAINERND_NAMESPACE variable.

The containerd-rootless-setup.sh script in nerdctl takes a CONTAINERND_NAMESPACE variable when configuring the buildkit containerd worker namespace. This variable is defined here in lima so that it is passed into the containerd-rootless-setup.sh script, used by the CIDATA scripts while provisioning the VM.

This variable is passed into CIDATA here and is used within the containerd-rootless-setup.sh script here.

Testing done:

Built locally and verified the Variable is being consumed.

$ buildctl --addr=unix:///run/user/504/buildkit-finch/buildkitd.sock debug workers -v
ID:             34w45gxhe8bfdr76y9jxvdo16
Platforms:      linux/arm64,linux/amd64
Labels:
        org.mobyproject.buildkit.worker.containerd.namespace:   finch
        org.mobyproject.buildkit.worker.containerd.uuid:        a6e1dad3-4843-4ab4-b595-a912b5a3e76f
        org.mobyproject.buildkit.worker.executor:               containerd
        org.mobyproject.buildkit.worker.hostname:               lima-finch
        org.mobyproject.buildkit.worker.network:                host
        org.mobyproject.buildkit.worker.snapshotter:            overlayfs
GC Policy rule#0:
        All:            false
        Filters:        type==source.local,type==exec.cachemount,type==source.git.checkout
        Keep Duration:  48h0m0s
        Keep Bytes:     512MB
GC Policy rule#1:
        All:            false
        Keep Duration:  1440h0m0s
        Keep Bytes:     10GB
GC Policy rule#2:
        All:            false
        Keep Bytes:     10GB
GC Policy rule#3:
        All:            true
        Keep Bytes:     10GB

Also tested this solves the issue:

$ cat Dockerfile.one 
FROM debian
RUN apt-get update

$ cat Dockerfile.two 
FROM mydebian
RUN apt-get install curl -y

$ ../finch/_output/bin/finch build -t mydebian -f Dockerfile.one .
[+] Building 0.9s (6/6) FINISHED                                                                                                                                                                                
 => [internal] load .dockerignore                                                                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                                                                            0.0s
 => [internal] load build definition from Dockerfile.one                                                                                                                                                   0.0s
 => => transferring dockerfile: 72B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/debian:latest                                                                                                                                           0.8s
 => [1/2] FROM docker.io/library/debian@sha256:c66c0e5dc607baefefda1d9e64a3b3a317e4189c540c8eac0c1a06186fe353a1                                                                                            0.0s
 => => resolve docker.io/library/debian@sha256:c66c0e5dc607baefefda1d9e64a3b3a317e4189c540c8eac0c1a06186fe353a1                                                                                            0.0s
 => CACHED [2/2] RUN apt-get update                                                                                                                                                                        0.0s
 => exporting to image                                                                                                                                                                                     0.0s
 => => exporting layers                                                                                                                                                                                    0.0s
 => => exporting manifest sha256:1ea8c95744126d9a451938b8db0fa7da10042f35e21f16a011361076975b34ba                                                                                                          0.0s
 => => exporting config sha256:bc9337720dfc88a9ee7388eb364c8b5bc7486b082577cda7d17f578fa2079c5a                                                                                                            0.0s
 => => naming to docker.io/library/mydebian:latest                                                                                                                                                         0.0s
 => => unpacking to docker.io/library/mydebian:latest                                                                                                                                                      0.0s

$ ../finch/_output/bin/finch image ls
REPOSITORY    TAG       IMAGE ID        CREATED           PLATFORM       SIZE         BLOB SIZE
mydebian      latest    1ea8c9574412    21 seconds ago    linux/arm64    146.0 MiB    64.3 MiB

$ ../finch/_output/bin/finch build -t mydebian2 -f Dockerfile.two .
[+] Building 4.6s (6/6) FINISHED                                                                                                                                                                                
 => [internal] load .dockerignore                                                                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                                                                            0.0s
 => [internal] load build definition from Dockerfile.two                                                                                                                                                   0.0s
 => => transferring dockerfile: 83B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/mydebian:latest                                                                                                                                         0.9s
 => CACHED [1/2] FROM docker.io/library/mydebian@sha256:1ea8c95744126d9a451938b8db0fa7da10042f35e21f16a011361076975b34ba                                                                                   0.5s
 => => resolve docker.io/library/mydebian@sha256:1ea8c95744126d9a451938b8db0fa7da10042f35e21f16a011361076975b34ba                                                                                          0.5s
 => [2/2] RUN apt-get install curl -y                                                                                                                                                                      2.7s
 => exporting to image                                                                                                                                                                                     0.4s 
 => => exporting layers                                                                                                                                                                                    0.3s 
 => => exporting manifest sha256:b3110f4faff6ac2334d9989c7dab34cb288d03ecb6ef6bd83c2eb02255e39e44                                                                                                          0.0s 
 => => exporting config sha256:570d3e1d79d7ecc8bb54fbb9603c216b39489f036d703fc76891b566a9c358ec                                                                                                            0.0s 
 => => naming to docker.io/library/mydebian2:latest                                                                                                                                                        0.0s 
 => => unpacking to docker.io/library/mydebian2:latest                                                                                                                                                     0.1s 
  • [ 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.

ollypom avatar Dec 22 '22 11:12 ollypom