Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: switch from rootless containers to rootful containers #232

Merged
merged 12 commits into from
Mar 1, 2023

Conversation

vsiravar
Copy link
Member

@vsiravar vsiravar commented Feb 20, 2023

Issue #, if available:
Fixes #196
Description of changes:
Change finch vm configuration to support rootful containers. Opening a draft PR to get early feedback while investigating lima-vm/lima#1376.
Testing done:

2 e2e tests are failing due to lima-vm/lima#1376.

Additional tests for persistent disk feature to persist volumes and networks after vm is reinitialized

Test for additonal_disk

Retains volumes after vm is restarted

$ finch vm stop && finch vm remove && finch vm init
$ finch run --name test-container -v ~/workplace:/workplace alpine ls /workplace
testfiles
$ finch vm stop && finch vm remove && finch vm init
$ finch start --attach test-container              
testfiles

Retains created network after vm is reinitialized

$ finch vm stop && finch vm remove && finch vm init
$ finch network create my-bridge-network-1
756c515526ed29831c59d9f7d1b1142ec3e440b19096dc224ee25e9a883d00c1
$ finch network ls
NETWORK ID      NAME                   FILE
17f29b073143    bridge                 /etc/cni/net.d/nerdctl-bridge.conflist
d2f8cc31a256    my-bridge-network-1    /etc/cni/net.d/nerdctl-my-bridge-network-1.conflist
ce498ce9f1f0    my-bridge-network      /etc/cni/net.d/nerdctl-my-bridge-network.conflist

$ finch vm stop && finch vm remove && finch vm init
$ finch network ls                                 
NETWORK ID      NAME                   FILE
17f29b073143    bridge                 /etc/cni/net.d/nerdctl-bridge.conflist
d2f8cc31a256    my-bridge-network-1    /etc/cni/net.d/nerdctl-my-bridge-network-1.conflist
ce498ce9f1f0    my-bridge-network      /etc/cni/net.d/nerdctl-my-bridge-network.conflist

# Connect container to the network
$ finch run --network my-bridge-network-1 alpine

Tests for persisting images, containers, networks and volumes between rootless and rootful.

Test setup

  1. Install finch 0.4.0 from Installer(rootless).
  2. Create images, containers, networks and volumes.
$ finch pull alpine 
$ finch run alpine
$ finch network create rootless-network
$ finch run --name test-container -v ~/workplace:/workplace alpine ls /workplace
$ finch images
REPOSITORY    TAG       IMAGE ID        CREATED          PLATFORM          SIZE       BLOB SIZE
alpine        latest    69665d02cb32    2 minutes ago    linux/arm64/v8    7.8 MiB    3.1 MiB
$ finch ps -a
CONTAINER ID    IMAGE                              COMMAND            CREATED               STATUS                           PORTS    NAMES
1a1684bba87e    docker.io/library/alpine:latest    "/bin/sh"          2 minutes ago         Exited (0) 2 minutes ago                  alpine-1a168
924bd7b54549    docker.io/library/alpine:latest    "ls /workplace"    About a minute ago    Exited (0) About a minute ago 
  1. Stop and remove vm.
  2. Build finch from this branch(rootful) and replace the finch binary under /Applications/Finch/bin/.
  3. Edit /Applications/Finch/os/finch.yaml with finch.yaml file from this branch.
  4. Start the vm and check its running in rootful mode.
$ LIMA_HOME=/Applications/Finch/lima/data /Applications/Finch/lima/bin/limactl shell finch 
$ ps aux | grep containerd
root        1595  0.0  0.4 757868 33160 ?        Ssl  17:41   0:00 /usr/local/bin/containerd-stargz-grpc --log-level=debug --config=/etc/containerd-stargz-grpc/config.toml
root        1720  0.3  0.5 1419508 42832 ?       Ssl  17:41   0:00 /usr/local/bin/containerd
root        1911  0.0  0.1 720460  9640 ?        Sl   17:41   0:00 /usr/local/bin/containerd-shim-runc-v2 -namespace finch -id 1a1684bba87ea1d5a73285ae29ad890c91c27f74a9c7c43f236d34245fa4cc5c -address /run/containerd/containerd.sock
root        2142  0.0  0.1 720716 10284 ?        Sl   17:42   0:00 /usr/local/bin/containerd-shim-runc-v2 -namespace finch -id 
  1. Run tests
$ finch images  
REPOSITORY    TAG       IMAGE ID        CREATED           PLATFORM          SIZE       BLOB SIZE
alpine        latest    69665d02cb32    10 minutes ago    linux/arm64/v8    7.8 MiB    3.1 MiB
$ finch ps -a   
CONTAINER ID    IMAGE                              COMMAND            CREATED           STATUS     PORTS    NAMES
1a1684bba87e    docker.io/library/alpine:latest    "/bin/sh"          10 minutes ago    Created             alpine-1a168
924bd7b54549    docker.io/library/alpine:latest    "ls /workplace"    10 minutes ago    Created             test-container
$ finch start 1a1684bba87e
1a1684bba87e

$ finch network ls
NETWORK ID      NAME                FILE
17f29b073143    bridge              /etc/cni/net.d/nerdctl-bridge.conflist
4b2aad24cab9    rootless-network    /etc/cni/net.d/nerdctl-rootless-network.conflist
                host                
                none                

$ finch start --attach test-container
finch

- [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.

@vsiravar vsiravar changed the title feat: Vsiravar/switch to rootful feat: Change finch vm config to support rootful containers Feb 20, 2023
finch.yaml Outdated Show resolved Hide resolved
finch.yaml Outdated Show resolved Hide resolved
finch.yaml Outdated Show resolved Hide resolved
finch.yaml Outdated Show resolved Hide resolved
finch.yaml Outdated Show resolved Hide resolved
finch.yaml Outdated Show resolved Hide resolved
Copy link
Member

@davidhsingyuchen davidhsingyuchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM re. the current code, thanks!

@vsiravar vsiravar changed the title feat: Change finch vm config to support rootful containers feat!: Change finch vm config to support rootful containers Feb 28, 2023
@ningziwen
Copy link
Member

Should this be feat! (bumps minor version) or fix (bumps patch version)?

Following semantic versioning, my thought is the switching implementation details but not impacting external features should be fix, even if rootful is a big switch.

However, this broke two existing e2e tests, but these 2 e2e tests are specifically to how we implement the tests. It only happens in using netcat to run a server in container and test port forwarding. The reason is when container starts in rootful mode, it will ping the netcat port for one time, and netcat will exit after being pinged for one time. We are changing from netcat to nginx and they would all passed because nginx can be consistently pinged.

@estesp
Copy link
Contributor

estesp commented Feb 28, 2023

I'm more inclined to fix over feat! by nature of the fact that end user interfaces and usage does not change at all for the user. Some user's experiences with finch will improve due to the removal of the underlying limitations of rootless, which definitely would be seen as a "fix" by users, not a new feature.

Copy link
Member

@davidhsingyuchen davidhsingyuchen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can change the PR title, which will be commit msg and appear in changelog later, to be something like switch from rootless containers to rootful containers. The current title may not be clear that all the containers are going to be rootful, not just supported.

@pendo324
Copy link
Member

If the change is transparent to users, meaning that users before the change will not have their VM stop working, and users after the change will still have their vm init/vm start working without any errors or changes needed, then I don't think it's a breaking change, and we can use fix!.

Yes, we had to refactor the test, but most users aren't running containers that only publish a message on a port once ("one-shot" containers), so I actually think the new test is more representative of the actual usage of the -p option, and we should treat the followup into why the behavior is different between rootless and rootfull as a separate issue.

However, in my testing, this does (or at least can) break users with existing VMs when they update and run vm start again. At least I hit an error case like this:

$ ./_output/bin/finch vm start
INFO[0000] Starting existing Finch virtual machine...
INFO[0028] Finch virtual machine started successfully
FATA[0028] failed to setup ssh client: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
$ ./_output/bin/finch images
FATA[0000] cannot access containerd socket "/run/containerd/containerd.sock": no such file or directory
FATA[0000] exit status 1

Repro is:

  1. init a new VM with the latest main
  2. stop it
  3. pull this PR
  4. make finch
  5. try to run vm start

@davidhsingyuchen
Copy link
Member

this does (or at least can) break users with existing VMs when they update and run vm start again

A Finch user will use an installer to update their Finch, and the existing VM will be erased by the installer, so this problem may not happen for normal users? In other words, it should only impact Finch devs.

Wondering this:

  1. A user has some containers and images.
  2. Run Finch installer to upgrade their Finch to a version that contains this change.
  3. finch vm init
  4. Will the previous containers and images be usable?

Since we're mounting the rootful counterparts into the same location in the persistent disk, theoretically it should work, but maybe we should verify that because if it's not working, then it'll be a breaking change for our users.

@vsiravar vsiravar changed the title feat!: Change finch vm config to support rootful containers feat!: switch from rootless containers to rootful containers Feb 28, 2023
@vsiravar
Copy link
Member Author

vsiravar commented Feb 28, 2023

Wondering this:

  1. A user has some containers and images.
  2. Run Finch installer to upgrade their Finch to a version that contains this change.
  3. finch vm init
  4. Will the previous containers and images be usable?

Since we're mounting the rootful counterparts into the same location in the persistent disk, theoretically it should work, but maybe we should verify that because if it's not working, then it'll be a breaking change for our users.

I tried this test. The test was setup using

  1. Install finch 0.4.0 from Installer(rootless).
  2. Create images, containers, networks and volumes.
  3. Stop and remove vm.
  4. Build finch from this branch(rootful) and replace the finch binary under /Applications/Finch/bin/.
  5. Edit /Applications/Finch/os/finch.yaml with finch.yaml file from this branch.
  6. Start the vm.

Observations.

  1. The images and containers persist between rootless and rootful.
  2. Images can be run without errors. However while starting the containers using finch start command, there is an error complaining about mounts. Error log below
% finch start  77a9e1787dff
FATA[0000] failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/siravara.linux/.local/share/nerdctl/1935db59/containers/finch/77a9e1787dffb48651a2a72204636d604af437aa63fd0d53fa69d65cd0291839/hostname" to rootfs at "/etc/hostname": stat /home/siravara.linux/.local/share/nerdctl/1935db59/containers/finch/77a9e1787dffb48651a2a72204636d604af437aa63fd0d53fa69d65cd0291839/hostname: no such file or directory: unknown 

This would be a breaking change for users who want to start their saved containers after upgrading to rootful.

@vsiravar vsiravar changed the title feat!: switch from rootless containers to rootful containers fix!: switch from rootless containers to rootful containers Feb 28, 2023
@vsiravar vsiravar marked this pull request as ready for review February 28, 2023 22:02
@vsiravar vsiravar marked this pull request as draft February 28, 2023 22:02
@pendo324
Copy link
Member

this does (or at least can) break users with existing VMs when they update and run vm start again

A Finch user will use an installer to update their Finch, and the existing VM will be erased by the installer, so this problem may not happen for normal users? In other words, it should only impact Finch devs.

That's a good point, the scenario I posted can only really happen to devs. We can include a mention in the release notes to say that it's expected and also list how to fix it.

Wondering this:

  1. A user has some containers and images.
  2. Run Finch installer to upgrade their Finch to a version that contains this change.
  3. finch vm init
  4. Will the previous containers and images be usable?

Since we're mounting the rootful counterparts into the same location in the persistent disk, theoretically it should work, but maybe we should verify that because if it's not working, then it'll be a breaking change for our users.

I just tested this (basically just removing my dev vm before re-init), and it worked fine fwiw. I think we already have e2e tests for persistent volume, but not across versions so this sounds like something we will have to manually verify.

@pendo324
Copy link
Member

Observations.

  1. The images and containers persist between rootless and rootful.
  2. Images can be run without errors. However while starting the containers using finch start command, there is an error complaining about mounts. Error log below
% finch start  77a9e1787dff
FATA[0000] failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/siravara.linux/.local/share/nerdctl/1935db59/containers/finch/77a9e1787dffb48651a2a72204636d604af437aa63fd0d53fa69d65cd0291839/hostname" to rootfs at "/etc/hostname": stat /home/siravara.linux/.local/share/nerdctl/1935db59/containers/finch/77a9e1787dffb48651a2a72204636d604af437aa63fd0d53fa69d65cd0291839/hostname: no such file or directory: unknown 

This would be a breaking change for users who want to start their saved containers after upgrading to rootful.

Interesting, I guess my tests weren't as in depth as yours. I think we can actually fix that by mounting the persistent data volume to both the old rootless and new rootfull locations. Can you try that out?

finch.yaml Outdated Show resolved Hide resolved
@vsiravar
Copy link
Member Author

vsiravar commented Feb 28, 2023

Interesting, I guess my tests weren't as in depth as yours. I think we can actually fix that by mounting the persistent data volume to both the old rootless and new rootfull locations. Can you try that out?

This actually works. However should we make this change though just to support rootless containers which were created prior to this change?

@davidhsingyuchen
Copy link
Member

davidhsingyuchen commented Mar 1, 2023

Interesting, I guess my tests weren't as in depth as yours. I think we can actually fix that by mounting the persistent data volume to both the old rootless and new rootfull locations. Can you try that out?

This actually works. However should we make this change though just to support rootless containers which were created prior to this change?

Thanks for looking into it. I think its ok to mount both locations, it shouldn't hurt anything else 👍. Why we do it might be slightly confusing to more advanced users though, so just document it as a comment in the finch.yaml provisioning script.

I'm also good with this. However, my assumption is that eventually we still want to remove those rootless mounts to avoid confusion and reduce complexity of our code, and we're delaying that, so the blast radius of it can be minimized. To be specific, I suppose we'd like to add a TODO: in a future release, we will remove those mounts in a BREAKING CHANGES PR, and in the release notes, we will say something around this: "Containers created by Finch <= v0.4.0 will be malfunctional after upgrading to this version", and hopefully it will be already long enough since the next version of v0.4.0 is out so that the possibility of our users still having such containers running is low.

Seems mounting both locations persistently doesn't add any performance burden or very minimum maintainence burden? Instead of a TODO to remove it as a breaking change, how about adding a comment to say mounting both locations gives the ability of switching between rootful and rootless without breaking change?

Yeah that's fair. I don't have a strong opinion on this. By "confusion & complexity", I was mainly referring to the fact that yet another set of paths that needs to be understood by Finch devs.

Signed-off-by: Vishwas Siravara <siravara@amazon.com>
@vsiravar vsiravar changed the title fix!: switch from rootless containers to rootful containers fix: switch from rootless containers to rootful containers Mar 1, 2023
@vsiravar vsiravar marked this pull request as ready for review March 1, 2023 07:56
pendo324
pendo324 previously approved these changes Mar 1, 2023
@vsiravar
Copy link
Member Author

vsiravar commented Mar 1, 2023

Added tests in PR description testing persistence of images, containers, volumes and networks between rootless and rootful.

Signed-off-by: Vishwas Siravara <siravara@amazon.com>
@vsiravar vsiravar merged commit ae43a07 into runfinch:main Mar 1, 2023
AnqiPang pushed a commit that referenced this pull request Mar 2, 2023
🤖 I have created a release *beep* *boop*
---


## [0.4.1](v0.4.0...v0.4.1)
(2023-03-02)


### Bug Fixes

* parse --add-host special ip with equal sign
([#229](#229))
([fb4b62b](fb4b62b))
* switch from rootless containers to rootful containers
([#232](#232))
([ae43a07](ae43a07))


### Build System or External Dependencies

* **deps:** Bump github.com/containerd/containerd from 1.6.14 to 1.6.18
([#223](#223))
([7480222](7480222))
* **deps:** bump github.com/lima-vm/lima from 0.14.2 to 0.15.0
([#247](#247))
([007081e](007081e))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.3
([#233](#233))
([1185372](1185372))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4
([#245](#245))
([5e64716](5e64716))
* **deps:** Bump github.com/onsi/gomega from 1.26.0 to 1.27.1
([#234](#234))
([cd43781](cd43781))
* **deps:** bump github.com/onsi/gomega from 1.27.1 to 1.27.2
([#246](#246))
([863c51e](863c51e))
* **deps:** Bump github.com/runfinch/common-tests from 0.5.0 to 0.6.0
([#235](#235))
([4a33a2e](4a33a2e))
* **deps:** Bump github.com/spf13/afero from 1.9.3 to 1.9.4
([#241](#241))
([58f26e6](58f26e6))
* **deps:** bump github.com/stretchr/testify from 1.8.1 to 1.8.2
([#244](#244))
([984af70](984af70))
* **deps:** Bump golang.org/x/crypto from 0.5.0 to 0.6.0
([#212](#212))
([e1a36cf](e1a36cf))
* **deps:** bump k8s.io/apimachinery from 0.26.1 to 0.26.2
([#251](#251))
([4a7268e](4a7268e))
* update os image versions
([#255](#255))
([576765b](576765b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@vsiravar
Copy link
Member Author

vsiravar commented Mar 3, 2023

Adding additional observations with forward compatibility.

I was doing some more testing between rootful and rootless mode. If there is a situation where users who produce rootful containers will for some reason downgrade the version of finch to a rootless version(say 0.4.0) the persisted data will not run in the rootelss context and users might lose persisted data. I found that rootful containers can't run in rootless mode from my test.
Which makes it not forward compatible.
Maybe in the release notes we can mention that "Containers produced using this version and later versions may misbehave in versions <= 0.4.0"?

@pendo324
Copy link
Member

pendo324 commented Mar 3, 2023

Adding additional observations with forward compatibility.

I was doing some more testing between rootful and rootless mode. If there is a situation where users who produce rootful containers will for some reason downgrade the version of finch to a rootless version(say 0.4.0) the persisted data will not run in the rootelss context and users might lose persisted data. I found that rootful containers can't run in rootless mode from my test. Which makes it not forward compatible. Maybe in the release notes we can mention that "Containers produced using this version and later versions may misbehave in versions <= 0.4.0"?

Yeah, we should definitely mention that in the patch notes. Eventually, we may support both modes and need to come up with a more permanent fix for this (maybe just two different sets of mount points, or two different hosts), but for now, I think it makes sense as a note. We might even want to add it to a doc page/README too.

@vsiravar
Copy link
Member Author

vsiravar commented Mar 3, 2023

Adding additional observations with forward compatibility.
I was doing some more testing between rootful and rootless mode. If there is a situation where users who produce rootful containers will for some reason downgrade the version of finch to a rootless version(say 0.4.0) the persisted data will not run in the rootelss context and users might lose persisted data. I found that rootful containers can't run in rootless mode from my test. Which makes it not forward compatible. Maybe in the release notes we can mention that "Containers produced using this version and later versions may misbehave in versions <= 0.4.0"?

Yeah, we should definitely mention that in the patch notes. Eventually, we may support both modes and need to come up with a more permanent fix for this (maybe just two different sets of mount points, or two different hosts), but for now, I think it makes sense as a note. We might even want to add it to a doc page/README too.

Cool will add the below note in the release notes.

Note on rootful containers

Containers created by Finch >= v0.4.1 will malfunction in versions <=0.4.0.

@pendo324
Copy link
Member

pendo324 commented Mar 3, 2023

Note on rootful containers

Containers created by Finch >= v0.4.1 will malfunction in versions <=0.4.0.

Looks good, but is it possible to add some more context into why this would occur?

@vsiravar
Copy link
Member Author

vsiravar commented Mar 3, 2023

Note on rootful containers

Containers created by Finch >= v0.4.1 will malfunction in versions <=0.4.0.

Looks good, but is it possible to add some more context into why this would occur?

Changed to

"Containers created using Finch version 0.4.1 or later may not function properly in versions 0.4.0 or earlier due to how the data of rootful containers is stored with root user permissions. This can cause issues when accessed by older versions of Finch that do not support rootful containers."

vsiravar pushed a commit to vsiravar/finch-public that referenced this pull request Mar 20, 2023
🤖 I have created a release *beep* *boop*
---


##
[0.5.0](v0.4.1...v0.5.0)
(2023-03-20)


### ⚠ BREAKING CHANGES

* persists nerdctl user data
([runfinch#182](https://github.com/vsiravar/finch-public/issues/182))
* changes persistent disk path to prevent collisions

### Features

* add `finch cp` command
([runfinch#135](https://github.com/vsiravar/finch-public/issues/135))
([5989361](5989361))
* add `finch vm status` command
([runfinch#83](https://github.com/vsiravar/finch-public/issues/83))
([37d74d0](37d74d0))
* add config to support additional directories
([runfinch#128](https://github.com/vsiravar/finch-public/issues/128))
([0ceb060](0ceb060))
* adds a --force flag to vm stop and remove
([runfinch#178](https://github.com/vsiravar/finch-public/issues/178))
([d499a7d](d499a7d))
* Play with semver and revert
([#46](#46))
([2299e1e](2299e1e))
* Print version with Client and Server
([runfinch#108](https://github.com/vsiravar/finch-public/issues/108))
([7f7cdda](7f7cdda))
* saves containerd user data to a persistent disk
([runfinch#133](https://github.com/vsiravar/finch-public/issues/133))
([fccb4f3](fccb4f3))
* Support special IP host-gateway in --add-host flag
([runfinch#216](https://github.com/vsiravar/finch-public/issues/216))
([9a38c8e](9a38c8e))


### Bug Fixes

* changes persistent disk path to prevent collisions
([3eb66a2](3eb66a2))
* Configure Buildkit Namespace as Env Variable
([runfinch#129](https://github.com/vsiravar/finch-public/issues/129))
([ffb90be](ffb90be))
* correctly handle local environment value pass-through
([runfinch#158](https://github.com/vsiravar/finch-public/issues/158))
([e138f10](e138f10))
* error readable by using the right placeholder
([#39](#39))
([8e5f38d](8e5f38d))
* fix the misleading log when applying invalid config
([runfinch#119](https://github.com/vsiravar/finch-public/issues/119))
([b4f74c5](b4f74c5))
* ignore .ssh pub keys
([runfinch#109](https://github.com/vsiravar/finch-public/issues/109))
([0b74597](0b74597))
* parse --add-host special ip with equal sign
([runfinch#229](https://github.com/vsiravar/finch-public/issues/229))
([fb4b62b](fb4b62b))
* persists nerdctl user data
([runfinch#182](https://github.com/vsiravar/finch-public/issues/182))
([59f372c](59f372c))
* persists network user data
([runfinch#211](https://github.com/vsiravar/finch-public/issues/211))
([f6baf82](f6baf82))
* print debug logs after newline
([runfinch#273](https://github.com/vsiravar/finch-public/issues/273))
([8faa7de](8faa7de))
* print debug logs when lima disk command fails
([runfinch#270](https://github.com/vsiravar/finch-public/issues/270))
([78a3f50](78a3f50))
* switch from rootless containers to rootful containers
([runfinch#232](https://github.com/vsiravar/finch-public/issues/232))
([ae43a07](ae43a07))


### Build System or External Dependencies

* clean up finch-core _output directory in clean target
([runfinch#290](https://github.com/vsiravar/finch-public/issues/290))
([4684a95](4684a95))
* **deps:** bump finch-core to 0.1.1
([runfinch#93](https://github.com/vsiravar/finch-public/issues/93))
([3f3bce5](3f3bce5))
* **deps:** Bump github.com/containerd/containerd from 1.6.14 to 1.6.18
([runfinch#223](https://github.com/vsiravar/finch-public/issues/223))
([7480222](7480222))
* **deps:** Bump github.com/google/go-licenses from 1.5.0 to 1.6.0
([runfinch#168](https://github.com/vsiravar/finch-public/issues/168))
([bb5674c](bb5674c))
* **deps:** Bump github.com/lima-vm/lima from 0.12.0 to 0.13.0
([#40](#40))
([520cc7f](520cc7f))
* **deps:** Bump github.com/lima-vm/lima from 0.13.0 to 0.14.0
([runfinch#113](https://github.com/vsiravar/finch-public/issues/113))
([9b275bc](9b275bc))
* **deps:** Bump github.com/lima-vm/lima from 0.14.0 to 0.14.1
([runfinch#120](https://github.com/vsiravar/finch-public/issues/120))
([9dea794](9dea794))
* **deps:** Bump github.com/lima-vm/lima from 0.14.1 to 0.14.2
([runfinch#130](https://github.com/vsiravar/finch-public/issues/130))
([26b7b09](26b7b09))
* **deps:** bump github.com/lima-vm/lima from 0.14.2 to 0.15.0
([runfinch#247](https://github.com/vsiravar/finch-public/issues/247))
([007081e](007081e))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1
([#50](#50))
([fa108fd](fa108fd))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0
([runfinch#114](https://github.com/vsiravar/finch-public/issues/114))
([934521c](934521c))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1
([runfinch#121](https://github.com/vsiravar/finch-public/issues/121))
([becbc44](becbc44))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.7.0 to 2.7.1
([runfinch#193](https://github.com/vsiravar/finch-public/issues/193))
([7aaa381](7aaa381))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.7.1 to 2.8.0
([runfinch#200](https://github.com/vsiravar/finch-public/issues/200))
([596ed33](596ed33))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.3
([runfinch#233](https://github.com/vsiravar/finch-public/issues/233))
([1185372](1185372))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4
([runfinch#245](https://github.com/vsiravar/finch-public/issues/245))
([5e64716](5e64716))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.8.4 to 2.9.0
([runfinch#265](https://github.com/vsiravar/finch-public/issues/265))
([7e2d49e](7e2d49e))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1
([runfinch#285](https://github.com/vsiravar/finch-public/issues/285))
([d741a03](d741a03))
* **deps:** Bump github.com/onsi/gomega from 1.24.1 to 1.24.2
([runfinch#122](https://github.com/vsiravar/finch-public/issues/122))
([d8174ff](d8174ff))
* **deps:** Bump github.com/onsi/gomega from 1.24.2 to 1.25.0
([runfinch#165](https://github.com/vsiravar/finch-public/issues/165))
([e4b9e96](e4b9e96))
* **deps:** Bump github.com/onsi/gomega from 1.25.0 to 1.26.0
([runfinch#183](https://github.com/vsiravar/finch-public/issues/183))
([12661b7](12661b7))
* **deps:** Bump github.com/onsi/gomega from 1.26.0 to 1.27.1
([runfinch#234](https://github.com/vsiravar/finch-public/issues/234))
([cd43781](cd43781))
* **deps:** bump github.com/onsi/gomega from 1.27.1 to 1.27.2
([runfinch#246](https://github.com/vsiravar/finch-public/issues/246))
([863c51e](863c51e))
* **deps:** Bump github.com/runfinch/common-tests from 0.1.1 to 0.2.0
([runfinch#125](https://github.com/vsiravar/finch-public/issues/125))
([1bac92a](1bac92a))
* **deps:** Bump github.com/runfinch/common-tests from 0.2.0 to 0.3.0
([runfinch#151](https://github.com/vsiravar/finch-public/issues/151))
([79df04e](79df04e))
* **deps:** Bump github.com/runfinch/common-tests from 0.5.0 to 0.6.0
([runfinch#235](https://github.com/vsiravar/finch-public/issues/235))
([4a33a2e](4a33a2e))
* **deps:** bump github.com/runfinch/common-tests from 0.6.1 to 0.6.2
([runfinch#300](https://github.com/vsiravar/finch-public/issues/300))
([dd626a0](dd626a0))
* **deps:** Bump github.com/runfinch/common-tests version from v0.1.0 to
v0.1.1 ([runfinch#76](https://github.com/vsiravar/finch-public/issues/76))
([fd22d4a](fd22d4a))
* **deps:** Bump github.com/runfinch/common-tests version from v0.3.0 to
v0.3.1 ([runfinch#169](https://github.com/vsiravar/finch-public/issues/169))
([16157fe](16157fe))
* **deps:** Bump github.com/spf13/afero from 1.9.2 to 1.9.3
([#43](#43))
([bf0ad84](bf0ad84))
* **deps:** Bump github.com/spf13/afero from 1.9.3 to 1.9.4
([runfinch#241](https://github.com/vsiravar/finch-public/issues/241))
([58f26e6](58f26e6))
* **deps:** bump github.com/spf13/afero from 1.9.4 to 1.9.5
([runfinch#263](https://github.com/vsiravar/finch-public/issues/263))
([a0e277f](a0e277f))
* **deps:** Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
([#44](#44))
([31c6d70](31c6d70))
* **deps:** bump github.com/stretchr/testify from 1.8.1 to 1.8.2
([runfinch#244](https://github.com/vsiravar/finch-public/issues/244))
([984af70](984af70))
* **deps:** Bump github.com/xorcare/pointer from 1.2.1 to 1.2.2
([#42](#42))
([8e83137](8e83137))
* **deps:** Bump golang.org/x/crypto from 0.1.0 to 0.3.0
([#49](#49))
([89826cf](89826cf))
* **deps:** Bump golang.org/x/crypto from 0.3.0 to 0.4.0
([runfinch#102](https://github.com/vsiravar/finch-public/issues/102))
([d2778e3](d2778e3))
* **deps:** Bump golang.org/x/crypto from 0.4.0 to 0.5.0
([runfinch#138](https://github.com/vsiravar/finch-public/issues/138))
([8d06eec](8d06eec))
* **deps:** Bump golang.org/x/crypto from 0.4.0 to 0.5.0
([runfinch#144](https://github.com/vsiravar/finch-public/issues/144))
([603419a](603419a))
* **deps:** Bump golang.org/x/crypto from 0.5.0 to 0.6.0
([runfinch#212](https://github.com/vsiravar/finch-public/issues/212))
([e1a36cf](e1a36cf))
* **deps:** bump golang.org/x/crypto from 0.6.0 to 0.7.0
([runfinch#264](https://github.com/vsiravar/finch-public/issues/264))
([ec1c07f](ec1c07f))
* **deps:** Bump golang.org/x/tools from 0.2.0 to 0.3.0
([#52](#52))
([27c8f24](27c8f24))
* **deps:** Bump golang.org/x/tools from 0.3.0 to 0.4.0
([runfinch#101](https://github.com/vsiravar/finch-public/issues/101))
([b3c4df1](b3c4df1))
* **deps:** Bump golang.org/x/tools from 0.4.0 to 0.5.0
([runfinch#139](https://github.com/vsiravar/finch-public/issues/139))
([89194dc](89194dc))
* **deps:** Bump golang.org/x/tools from 0.5.0 to 0.6.0
([runfinch#215](https://github.com/vsiravar/finch-public/issues/215))
([decf250](decf250))
* **deps:** bump golang.org/x/tools from 0.6.0 to 0.7.0
([runfinch#268](https://github.com/vsiravar/finch-public/issues/268))
([8072e39](8072e39))
* **deps:** Bump k8s.io/apimachinery from 0.25.2 to 0.25.4
([#51](#51))
([8f15779](8f15779))
* **deps:** Bump k8s.io/apimachinery from 0.25.4 to 0.26.0
([runfinch#115](https://github.com/vsiravar/finch-public/issues/115))
([e9084a4](e9084a4))
* **deps:** Bump k8s.io/apimachinery from 0.26.0 to 0.26.1
([runfinch#174](https://github.com/vsiravar/finch-public/issues/174))
([829b0bc](829b0bc))
* **deps:** bump k8s.io/apimachinery from 0.26.1 to 0.26.2
([runfinch#251](https://github.com/vsiravar/finch-public/issues/251))
([4a7268e](4a7268e))
* **deps:** bump k8s.io/apimachinery from 0.26.2 to 0.26.3
([runfinch#306](https://github.com/vsiravar/finch-public/issues/306))
([fe392cb](fe392cb))
* **deps:** Bump lima version
([runfinch#141](https://github.com/vsiravar/finch-public/issues/141))
([35da07d](35da07d))
* **deps:** Bump lima version
([runfinch#302](https://github.com/vsiravar/finch-public/issues/302))
([0269743](0269743))
* **deps:** Bump lima version
([runfinch#75](https://github.com/vsiravar/finch-public/issues/75))
([cfaa4f6](cfaa4f6))
* **deps:** Bump submodules
([runfinch#281](https://github.com/vsiravar/finch-public/issues/281))
([d4fd1f6](d4fd1f6))
* **deps:** Bump submodules
([runfinch#304](https://github.com/vsiravar/finch-public/issues/304))
([b38af9f](b38af9f))
* make finch-core a submodule instead of downloading archives
([runfinch#188](https://github.com/vsiravar/finch-public/issues/188))
([b08f588](b08f588))
* update os image versions
([runfinch#255](https://github.com/vsiravar/finch-public/issues/255))
([576765b](576765b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
vsiravar pushed a commit to vsiravar/finch-public that referenced this pull request Mar 20, 2023
🤖 I have created a release *beep* *boop*
---


##
[0.6.0](v0.5.0...v0.6.0)
(2023-03-20)


### ⚠ BREAKING CHANGES

* persists nerdctl user data
([runfinch#182](https://github.com/vsiravar/finch-public/issues/182))
* changes persistent disk path to prevent collisions

### Features

* add `finch cp` command
([runfinch#135](https://github.com/vsiravar/finch-public/issues/135))
([5989361](5989361))
* add `finch vm status` command
([runfinch#83](https://github.com/vsiravar/finch-public/issues/83))
([37d74d0](37d74d0))
* add config to support additional directories
([runfinch#128](https://github.com/vsiravar/finch-public/issues/128))
([0ceb060](0ceb060))
* adds a --force flag to vm stop and remove
([runfinch#178](https://github.com/vsiravar/finch-public/issues/178))
([d499a7d](d499a7d))
* Play with semver and revert
([#46](#46))
([2299e1e](2299e1e))
* Print version with Client and Server
([runfinch#108](https://github.com/vsiravar/finch-public/issues/108))
([7f7cdda](7f7cdda))
* saves containerd user data to a persistent disk
([runfinch#133](https://github.com/vsiravar/finch-public/issues/133))
([fccb4f3](fccb4f3))
* Support special IP host-gateway in --add-host flag
([runfinch#216](https://github.com/vsiravar/finch-public/issues/216))
([9a38c8e](9a38c8e))


### Bug Fixes

* changes persistent disk path to prevent collisions
([3eb66a2](3eb66a2))
* Configure Buildkit Namespace as Env Variable
([runfinch#129](https://github.com/vsiravar/finch-public/issues/129))
([ffb90be](ffb90be))
* correctly handle local environment value pass-through
([runfinch#158](https://github.com/vsiravar/finch-public/issues/158))
([e138f10](e138f10))
* error readable by using the right placeholder
([#39](#39))
([8e5f38d](8e5f38d))
* fix the misleading log when applying invalid config
([runfinch#119](https://github.com/vsiravar/finch-public/issues/119))
([b4f74c5](b4f74c5))
* ignore .ssh pub keys
([runfinch#109](https://github.com/vsiravar/finch-public/issues/109))
([0b74597](0b74597))
* parse --add-host special ip with equal sign
([runfinch#229](https://github.com/vsiravar/finch-public/issues/229))
([fb4b62b](fb4b62b))
* persists nerdctl user data
([runfinch#182](https://github.com/vsiravar/finch-public/issues/182))
([59f372c](59f372c))
* persists network user data
([runfinch#211](https://github.com/vsiravar/finch-public/issues/211))
([f6baf82](f6baf82))
* print debug logs after newline
([runfinch#273](https://github.com/vsiravar/finch-public/issues/273))
([8faa7de](8faa7de))
* print debug logs when lima disk command fails
([runfinch#270](https://github.com/vsiravar/finch-public/issues/270))
([78a3f50](78a3f50))
* switch from rootless containers to rootful containers
([runfinch#232](https://github.com/vsiravar/finch-public/issues/232))
([ae43a07](ae43a07))


### Build System or External Dependencies

* clean up finch-core _output directory in clean target
([runfinch#290](https://github.com/vsiravar/finch-public/issues/290))
([4684a95](4684a95))
* **deps:** bump finch-core to 0.1.1
([runfinch#93](https://github.com/vsiravar/finch-public/issues/93))
([3f3bce5](3f3bce5))
* **deps:** Bump github.com/containerd/containerd from 1.6.14 to 1.6.18
([runfinch#223](https://github.com/vsiravar/finch-public/issues/223))
([7480222](7480222))
* **deps:** Bump github.com/google/go-licenses from 1.5.0 to 1.6.0
([runfinch#168](https://github.com/vsiravar/finch-public/issues/168))
([bb5674c](bb5674c))
* **deps:** Bump github.com/lima-vm/lima from 0.12.0 to 0.13.0
([#40](#40))
([520cc7f](520cc7f))
* **deps:** Bump github.com/lima-vm/lima from 0.13.0 to 0.14.0
([runfinch#113](https://github.com/vsiravar/finch-public/issues/113))
([9b275bc](9b275bc))
* **deps:** Bump github.com/lima-vm/lima from 0.14.0 to 0.14.1
([runfinch#120](https://github.com/vsiravar/finch-public/issues/120))
([9dea794](9dea794))
* **deps:** Bump github.com/lima-vm/lima from 0.14.1 to 0.14.2
([runfinch#130](https://github.com/vsiravar/finch-public/issues/130))
([26b7b09](26b7b09))
* **deps:** bump github.com/lima-vm/lima from 0.14.2 to 0.15.0
([runfinch#247](https://github.com/vsiravar/finch-public/issues/247))
([007081e](007081e))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1
([#50](#50))
([fa108fd](fa108fd))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0
([runfinch#114](https://github.com/vsiravar/finch-public/issues/114))
([934521c](934521c))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1
([runfinch#121](https://github.com/vsiravar/finch-public/issues/121))
([becbc44](becbc44))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.7.0 to 2.7.1
([runfinch#193](https://github.com/vsiravar/finch-public/issues/193))
([7aaa381](7aaa381))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.7.1 to 2.8.0
([runfinch#200](https://github.com/vsiravar/finch-public/issues/200))
([596ed33](596ed33))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.3
([runfinch#233](https://github.com/vsiravar/finch-public/issues/233))
([1185372](1185372))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4
([runfinch#245](https://github.com/vsiravar/finch-public/issues/245))
([5e64716](5e64716))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.8.4 to 2.9.0
([runfinch#265](https://github.com/vsiravar/finch-public/issues/265))
([7e2d49e](7e2d49e))
* **deps:** bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1
([runfinch#285](https://github.com/vsiravar/finch-public/issues/285))
([d741a03](d741a03))
* **deps:** Bump github.com/onsi/gomega from 1.24.1 to 1.24.2
([runfinch#122](https://github.com/vsiravar/finch-public/issues/122))
([d8174ff](d8174ff))
* **deps:** Bump github.com/onsi/gomega from 1.24.2 to 1.25.0
([runfinch#165](https://github.com/vsiravar/finch-public/issues/165))
([e4b9e96](e4b9e96))
* **deps:** Bump github.com/onsi/gomega from 1.25.0 to 1.26.0
([runfinch#183](https://github.com/vsiravar/finch-public/issues/183))
([12661b7](12661b7))
* **deps:** Bump github.com/onsi/gomega from 1.26.0 to 1.27.1
([runfinch#234](https://github.com/vsiravar/finch-public/issues/234))
([cd43781](cd43781))
* **deps:** bump github.com/onsi/gomega from 1.27.1 to 1.27.2
([runfinch#246](https://github.com/vsiravar/finch-public/issues/246))
([863c51e](863c51e))
* **deps:** Bump github.com/runfinch/common-tests from 0.1.1 to 0.2.0
([runfinch#125](https://github.com/vsiravar/finch-public/issues/125))
([1bac92a](1bac92a))
* **deps:** Bump github.com/runfinch/common-tests from 0.2.0 to 0.3.0
([runfinch#151](https://github.com/vsiravar/finch-public/issues/151))
([79df04e](79df04e))
* **deps:** Bump github.com/runfinch/common-tests from 0.5.0 to 0.6.0
([runfinch#235](https://github.com/vsiravar/finch-public/issues/235))
([4a33a2e](4a33a2e))
* **deps:** bump github.com/runfinch/common-tests from 0.6.1 to 0.6.2
([runfinch#300](https://github.com/vsiravar/finch-public/issues/300))
([dd626a0](dd626a0))
* **deps:** Bump github.com/runfinch/common-tests version from v0.1.0 to
v0.1.1 ([runfinch#76](https://github.com/vsiravar/finch-public/issues/76))
([fd22d4a](fd22d4a))
* **deps:** Bump github.com/runfinch/common-tests version from v0.3.0 to
v0.3.1 ([runfinch#169](https://github.com/vsiravar/finch-public/issues/169))
([16157fe](16157fe))
* **deps:** Bump github.com/spf13/afero from 1.9.2 to 1.9.3
([#43](#43))
([bf0ad84](bf0ad84))
* **deps:** Bump github.com/spf13/afero from 1.9.3 to 1.9.4
([runfinch#241](https://github.com/vsiravar/finch-public/issues/241))
([58f26e6](58f26e6))
* **deps:** bump github.com/spf13/afero from 1.9.4 to 1.9.5
([runfinch#263](https://github.com/vsiravar/finch-public/issues/263))
([a0e277f](a0e277f))
* **deps:** Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
([#44](#44))
([31c6d70](31c6d70))
* **deps:** bump github.com/stretchr/testify from 1.8.1 to 1.8.2
([runfinch#244](https://github.com/vsiravar/finch-public/issues/244))
([984af70](984af70))
* **deps:** Bump github.com/xorcare/pointer from 1.2.1 to 1.2.2
([#42](#42))
([8e83137](8e83137))
* **deps:** Bump golang.org/x/crypto from 0.1.0 to 0.3.0
([#49](#49))
([89826cf](89826cf))
* **deps:** Bump golang.org/x/crypto from 0.3.0 to 0.4.0
([runfinch#102](https://github.com/vsiravar/finch-public/issues/102))
([d2778e3](d2778e3))
* **deps:** Bump golang.org/x/crypto from 0.4.0 to 0.5.0
([runfinch#138](https://github.com/vsiravar/finch-public/issues/138))
([8d06eec](8d06eec))
* **deps:** Bump golang.org/x/crypto from 0.4.0 to 0.5.0
([runfinch#144](https://github.com/vsiravar/finch-public/issues/144))
([603419a](603419a))
* **deps:** Bump golang.org/x/crypto from 0.5.0 to 0.6.0
([runfinch#212](https://github.com/vsiravar/finch-public/issues/212))
([e1a36cf](e1a36cf))
* **deps:** bump golang.org/x/crypto from 0.6.0 to 0.7.0
([runfinch#264](https://github.com/vsiravar/finch-public/issues/264))
([ec1c07f](ec1c07f))
* **deps:** Bump golang.org/x/tools from 0.2.0 to 0.3.0
([#52](#52))
([27c8f24](27c8f24))
* **deps:** Bump golang.org/x/tools from 0.3.0 to 0.4.0
([runfinch#101](https://github.com/vsiravar/finch-public/issues/101))
([b3c4df1](b3c4df1))
* **deps:** Bump golang.org/x/tools from 0.4.0 to 0.5.0
([runfinch#139](https://github.com/vsiravar/finch-public/issues/139))
([89194dc](89194dc))
* **deps:** Bump golang.org/x/tools from 0.5.0 to 0.6.0
([runfinch#215](https://github.com/vsiravar/finch-public/issues/215))
([decf250](decf250))
* **deps:** bump golang.org/x/tools from 0.6.0 to 0.7.0
([runfinch#268](https://github.com/vsiravar/finch-public/issues/268))
([8072e39](8072e39))
* **deps:** Bump k8s.io/apimachinery from 0.25.2 to 0.25.4
([#51](#51))
([8f15779](8f15779))
* **deps:** Bump k8s.io/apimachinery from 0.25.4 to 0.26.0
([runfinch#115](https://github.com/vsiravar/finch-public/issues/115))
([e9084a4](e9084a4))
* **deps:** Bump k8s.io/apimachinery from 0.26.0 to 0.26.1
([runfinch#174](https://github.com/vsiravar/finch-public/issues/174))
([829b0bc](829b0bc))
* **deps:** bump k8s.io/apimachinery from 0.26.1 to 0.26.2
([runfinch#251](https://github.com/vsiravar/finch-public/issues/251))
([4a7268e](4a7268e))
* **deps:** bump k8s.io/apimachinery from 0.26.2 to 0.26.3
([runfinch#306](https://github.com/vsiravar/finch-public/issues/306))
([fe392cb](fe392cb))
* **deps:** Bump lima version
([runfinch#141](https://github.com/vsiravar/finch-public/issues/141))
([35da07d](35da07d))
* **deps:** Bump lima version
([runfinch#302](https://github.com/vsiravar/finch-public/issues/302))
([0269743](0269743))
* **deps:** Bump lima version
([runfinch#75](https://github.com/vsiravar/finch-public/issues/75))
([cfaa4f6](cfaa4f6))
* **deps:** Bump submodules
([runfinch#281](https://github.com/vsiravar/finch-public/issues/281))
([d4fd1f6](d4fd1f6))
* **deps:** Bump submodules
([runfinch#304](https://github.com/vsiravar/finch-public/issues/304))
([b38af9f](b38af9f))
* make finch-core a submodule instead of downloading archives
([runfinch#188](https://github.com/vsiravar/finch-public/issues/188))
([b08f588](b08f588))
* update os image versions
([runfinch#255](https://github.com/vsiravar/finch-public/issues/255))
([576765b](576765b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@vsiravar vsiravar deleted the vsiravar/switch-to-rootful branch August 28, 2023 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support rootful containers in finch
5 participants