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

feat: saves containerd user data to a persistent disk #133

Merged
merged 1 commit into from
Jan 7, 2023

Conversation

sam-berning
Copy link
Contributor

this allows users to retain downloaded images, containers, etc. across new installations of finch

Signed-off-by: Sam Berning [email protected]

Issue #, if available: #77

Description of changes:

  • Adds a new package for managing the user data persistent disk
  • Checks disk configuration & creates disk if necessary on finch vm init
  • Attaches disk whenever the VM starts

Testing done:

  • Unit testing on disk and cmd/finch
  • Manual testing

Open questions:

  • Should we also check the configuration on finch vm start?

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

@sam-berning sam-berning force-pushed the userdata branch 2 times, most recently from da824ba to 99f0f5b Compare December 27, 2022 23:51
@ningziwen
Copy link
Member

Could you add e2e tests?

@ningziwen
Copy link
Member

ningziwen commented Dec 28, 2022

Could this change resolve this issue #11?

@ahsan-z-khan ahsan-z-khan linked an issue Jan 3, 2023 that may be closed by this pull request
@sam-berning sam-berning force-pushed the userdata branch 2 times, most recently from b20a70b to e1ad144 Compare January 3, 2023 22:59
@ningziwen ningziwen added this to the v0.2.0 milestone Jan 3, 2023
@sam-berning
Copy link
Contributor Author

Could this change resolve this issue #11?

I don't think so. We'd need to move the whole .../lima/data directory under the user's home directory which I think is outside the scope of this PR.

This current implementation is a little awkward though, because saving the datadisk via a symlink into a specific user's home directory necessarily pins the installation to a single user. Overall I'm not sure if this makes things any worse, since many of the files under .../lima/data are already owned by the installing user, but it's interesting to note.

@sam-berning sam-berning force-pushed the userdata branch 2 times, most recently from eb35ccd to 11715e1 Compare January 4, 2023 01:42
Copy link
Member

@pendo324 pendo324 left a comment

Choose a reason for hiding this comment

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

LGTM for the most part, just left some questions / nits

pkg/disk/disk.go Outdated Show resolved Hide resolved
pkg/disk/disk.go Outdated Show resolved Hide resolved
pkg/disk/limactl_disk.go Outdated Show resolved Hide resolved
@sam-berning
Copy link
Contributor Author

sam-berning commented Jan 4, 2023

The e2e tests on M1 hosts keep failing in various ways in this PR, most commonly with timeouts on finch vm stop.

One of the recent test runs on this PR has had some weird behavior that I wanted to track down. I was seeing lots of failures to finch vm start with the message:

[hostagent] could not attach disk \\\"finch\\\", in use by instance \\\"finch\\\"

I'm just gonna write down what I investigated and talk through some of my thought process here.

Investigation

I ssh'd into the runner that was running that test to do some investigation. I saw the following:

ec2-user@ip-172-31-60-114 ~ % ls -lah /Users/ec2-user/ar/_work/finch/finch/_output/lima/data/_disks/finch/
total 0
drwx------  4 ec2-user  staff   128B Jan  4 02:54 .
drwx------  3 ec2-user  staff    96B Jan  4 02:42 ..
lrwxr-xr-x  1 ec2-user  staff    31B Jan  4 02:42 datadisk -> /Users/ec2-user/.finch/datadisk
lrwxr-xr-x  1 ec2-user  staff    60B Jan  4 02:54 in_use_by -> /Users/ec2-user/ar/_work/finch/finch/_output/lima/data/finch
ec2-user@ip-172-31-60-114 ~ % LIMA_HOME=/Users/ec2-user/ar/_work/finch/finch/_output/lima/data /Users/ec2-user/ar/_work/finch/finch/_output/lima/bin/limactl ls
NAME     STATUS     SSH            VMTYPE    ARCH       CPUS    MEMORY    DISK      DIR
finch    Stopped    127.0.0.1:0    qemu      aarch64    2       4GiB      100GiB    ~/ar/_work/finch/finch/_output/lima/data/finch

The resource lock on the disk (in_use_by) is still engaged even though the instance is Stopped. This should only be the case when the instance is Running.

Seems like this strange state was caused by a finch vm stop timeout in an earlier test:

Finch CLI e2e Tests virtual machine lifecycle when the virtual machine is in stopped status should be able to remove the virtual machine
/Users/ec2-user/ar/_work/finch/finch/e2e/virtual_machine_test.go:39
  time="2023-01-04T02:53:01Z" level=info msg="Stopping existing Finch virtual machine..."
  [FAILED] in [It] - /Users/ec2-user/go/pkg/mod/github.com/runfinch/[email protected]/command/command.go:115 @ 01/04/23 02:54:01.86
• [FAILED] [60.005 seconds]
Finch CLI e2e Tests virtual machine lifecycle when the virtual machine is in stopped status [It] should be able to remove the virtual machine
/Users/ec2-user/ar/_work/finch/finch/e2e/virtual_machine_test.go:39

  [FAILED] Timed out after 60.001s.
  Expected process to exit.  It did not.
  In [It] at: /Users/ec2-user/go/pkg/mod/github.com/runfinch/[email protected]/command/command.go:115 @ 01/04/23 02:54:01.86

Because this stop command took longer than 60s, it timed out before it had time to release the lock on the disk that the instance was using. This put us in the weird state of having a stopped VM using a disk, which meant that when the instance started up again, it would fail because it saw that the disk it was trying to attach was already in use by itself.

Takeaways

Two interesting issues from this, the first on Lima and the second on Finch:

  1. In Lima, should a stopped instance holding a lock for a disk fail to start up when trying to attach the same disk? It feels like no, but this is a very strange edge case.

  2. In a normal Lima use case, this can be handled by limactl disk unlock finch. However, since we want this user data disk to be transparent to the users of finch, we need to figure out how to remediate this automatically. Should we be checking for locks on the disk on every startup of the finch VM, and unlock if needed?

Of course, there's the question as to how it can take >60 seconds for the M1 11.7 runner to stop the VM. Are we running
too many tests in parallel? Or is finch vm stop really that slow on M1 macs?

The second takeaway also goes back to the open question on this PR -- should we be ensuring the disk only on init or on both init and start? I'm leaning more towards both, just to make it as painless as possible if a user were to manually make some change to the user data disk setup.

On that topic, is the current location of the datadisk good? Currently, the only other file under ~/.finch is finch.yaml which we teach users to edit. Since it's best for users to leave datadisk alone, should we put it somewhere else? Perhaps under another .directory in ~/.finch?

@pendo324
Copy link
Member

pendo324 commented Jan 5, 2023

Very nice writeup on the investigation, a lot of people would just dismiss the integration test failures as intermittent. I tried to respond, roughly in order of importance:

The second takeaway also goes back to the open question on this PR -- should we be ensuring the disk only on init or on both init and start? I'm leaning more towards both, just to make it as painless as possible if a user were to manually make some change to the user data disk setup.

I think I agree with this. It's more work for the CLI, but much or all of the code can probably be reused. It should in theory reduce the chance of errors for Finch users.

On that topic, is the current location of the datadisk good? Currently, the only other file under ~/.finch is finch.yaml which we teach users to edit. Since it's best for users to leave datadisk alone, should we put it somewhere else? Perhaps under another .directory in ~/.finch?

I think I'm good with moving it under a new hidden folder under ~/.finch, just to avoid accidental edits. Maybe just ~/.finch/.disks or something?

In Lima, should a stopped instance holding a lock for a disk fail to start up when trying to attach the same disk? It feels like no, but this is a very strange edge case.

Maybe we can open an issue on the Lima repo that describes this edge case to see if they want to leave it as is, or add some unlocking mechanism when the same instance is re-using a disk from a "dirty shutdown"?

Of course, there's the question as to how it can take >60 seconds for the M1 11.7 runner to stop the VM. Are we running
too many tests in parallel? Or is finch vm stop really that slow on M1 macs?

This was probably a rare occurence that will likely eventually happen again, given the volume that we run the integration tests at. We can probably add some more cleanup code here, and remove it after you implement the init/start check, or it gets changed in Lima itself?

@davidhsingyuchen
Copy link
Contributor

Of course, there's the question as to how it can take >60 seconds for the M1 11.7 runner to stop the VM. Are we running
too many tests in parallel? Or is finch vm stop really that slow on M1 macs?

FWIW, currently e2e tests are run sequentially: https://github.com/onsi/ginkgo/blob/e7e3db7a3ee2fa40d21931f4f98f0c71c34ed3eb/types/config.go#L46

this allows users to retain downloaded images, containers,
etc. across new installations of finch

Signed-off-by: Sam Berning <[email protected]>
Copy link
Member

@pendo324 pendo324 left a comment

Choose a reason for hiding this comment

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

LGTM, just one more nit

cmd/finch/main.go Show resolved Hide resolved
@sam-berning sam-berning merged commit fccb4f3 into runfinch:main Jan 7, 2023
ahsan-z-khan pushed a commit to ahsan-z-khan/finch that referenced this pull request Jan 11, 2023
this allows users to retain downloaded images, containers, etc. across
new installations of finch

Signed-off-by: Sam Berning <[email protected]>

Issue #, if available: runfinch#77

*Description of changes:*

- Adds a new package for managing the user data persistent disk
- Checks disk configuration & creates disk if necessary on `finch vm
init`
- Attaches disk whenever the VM starts

*Testing done:*
- Unit testing on `disk` and `cmd/finch`
- Manual testing

*Open questions:*
- Should we also check the configuration on `finch vm start`?



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

Signed-off-by: Sam Berning <[email protected]>
davidhsingyuchen pushed a commit that referenced this pull request Jan 11, 2023
🤖 I have created a release *beep* *boop*
---


## [0.2.0](v0.1.1...v0.2.0)
(2023-01-11)


### Features

* add `finch cp` command
([#135](#135))
([5989361](5989361))
* add config to support additional directories
([#128](#128))
([0ceb060](0ceb060))
* Print version with Client and Server
([#108](#108))
([7f7cdda](7f7cdda))
* saves containerd user data to a persistent disk
([#133](#133))
([fccb4f3](fccb4f3))


### Bug Fixes

* Configure Buildkit Namespace as Env Variable
([#129](#129))
([ffb90be](ffb90be))
* fix the misleading log when applying invalid config
([#119](#119))
([b4f74c5](b4f74c5))
* ignore .ssh pub keys
([#109](#109))
([0b74597](0b74597))


### Build System or External Dependencies

* **deps:** Bump github.com/lima-vm/lima from 0.13.0 to 0.14.0
([#113](#113))
([9b275bc](9b275bc))
* **deps:** Bump github.com/lima-vm/lima from 0.14.0 to 0.14.1
([#120](#120))
([9dea794](9dea794))
* **deps:** Bump github.com/lima-vm/lima from 0.14.1 to 0.14.2
([#130](#130))
([26b7b09](26b7b09))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0
([#114](#114))
([934521c](934521c))
* **deps:** Bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1
([#121](#121))
([becbc44](becbc44))
* **deps:** Bump github.com/onsi/gomega from 1.24.1 to 1.24.2
([#122](#122))
([d8174ff](d8174ff))
* **deps:** Bump github.com/runfinch/common-tests from 0.1.1 to 0.2.0
([#125](#125))
([1bac92a](1bac92a))
* **deps:** Bump golang.org/x/crypto from 0.3.0 to 0.4.0
([#102](#102))
([d2778e3](d2778e3))
* **deps:** Bump golang.org/x/crypto from 0.4.0 to 0.5.0
([#138](#138))
([8d06eec](8d06eec))
* **deps:** Bump golang.org/x/tools from 0.3.0 to 0.4.0
([#101](#101))
([b3c4df1](b3c4df1))
* **deps:** Bump golang.org/x/tools from 0.4.0 to 0.5.0
([#139](#139))
([89194dc](89194dc))
* **deps:** Bump k8s.io/apimachinery from 0.25.4 to 0.26.0
([#115](#115))
([e9084a4](e9084a4))
* **deps:** Bump lima version
([#141](#141))
([35da07d](35da07d))

---
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.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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: v0.2.0
Development

Successfully merging this pull request may close these issues.

Persistent volume support
4 participants