Skip to content

Conversation

@norio-nomura
Copy link
Contributor

@norio-nomura norio-nomura commented Aug 22, 2025

based on #3908

# Create or edit a file in the guest filesystem by using `yq`.
# The file specified by `path` will be updated with the specified `expression` using `yq --inplace`.
# If the file does not exist, it will be created using `yq --null-input`.
# `format` is optional and defaults to "auto".
# One of the following is expected to work:
#   "auto", "csv", "ini", "json", "props", "tsv", "toml", "xml", "yaml"
# See https://github.com/mikefarah/yq for more info.
# Any missing directories will be created as needed.
# The file permissions will be set to the specified value.
# The file and directory creation will be performed as the specified owner.
# If the existing file is not writable by the specified owner, the operation will fail.
# `path` and `expression` are required.
# `owner` and `permissions` are optional. Defaults to "root:root" and 644.
- mode: yq
  path: "{{.Home}}/.config/docker/daemon.json"
  expression: ".features.containerd-snapshotter = {{.Param.containerdSnapshotter}}"
  format: auto
  owner: "{{.User}}"
  permissions: 644

updated:

@AkihiroSuda
Copy link
Member

Why not just apt-get yq in a shell script?

@jandubois
Copy link
Member

I think this is too specialized to be built into Lima given that you can already do this with a regular provisioning script:

provision:
- mode: user
  script: |
    if ! command -v yq >/dev/null 2>&1; then
      apt-get update
      apt install -y yq
    fi
    mkdir -p ...
    touch ...
    yq ...

@norio-nomura
Copy link
Contributor Author

Why not just apt-get yq in a shell script?

Because yq installed by apt-get is https://github.com/kislyuk/yq
This PR installs https://github.com/mikefarah/yq

@jandubois
Copy link
Member

Because yq installed by apt-get is https://github.com/kislyuk/yq

Ok, that is unfortunate. I was wondering why it was dragging in Python.

But yq is a standalone binary, so you can also curl/wget it from the GitHub release page.

@jandubois
Copy link
Member

If the guestagent was already using yqlib, then I would be sympathetic to adding a lima-guestagent yq subcommand for convenience, but afaict only limactl uses yqlib.

And we would rather want to bring down the size of the guestagents, so I don't think we should be doing that either.

@AkihiroSuda
Copy link
Member

I was wondering why it was dragging in Python.

Dragging in the Python implementation makes a sense, as it seems more "authentic" version

@jandubois
Copy link
Member

Dragging in the Python implementation makes a sense, as it seems more "authentic" version

Fair enough. Unfortunately on homebrew yq is the standalone Go version, creating a bit of a mess. 😞

Homebrew/homebrew-core#29529

@norio-nomura norio-nomura force-pushed the yq-provision-mode branch 2 times, most recently from cc10a18 to 6cb8a7e Compare August 22, 2025 05:56
@jandubois
Copy link
Member

If we want to support adding large local files to the cidata volume, then I would suggest the way to do this would be to extend the data provisioning mode. I did try this:

base: template://docker
provision:
- mode: data
  path: /usr/local/bin/yq
  file: ~/Downloads/yq_linux_arm
  permissions: 755

It didn't work because of the tilde path (I just created a PR to fix that), but also because template embedding would attempt to include the file as a base64 encoded string, which exceeds the (somewhat arbitrary) max size of 4MB we have for lima.yaml.

I still think that once created a Lima instance should not reference other local files outside the instance directory. We could get rid of the file size limit (not a good idea, imo), or we could have some mechanism that files would be copied into a cache directory inside the instance directory, and the file reference would be rewritten to point to it.

I don't think the use case is particularly strong though when you can also just fetch the file from GitHub in a provisioning script. We do this with all manner of other prerequisites as well. But I can see the utility when you want to bundle something that is not available for download.

@norio-nomura
Copy link
Contributor Author

norio-nomura commented Aug 22, 2025

This PR adds --provision-tool yq=<local path to executable> option to hostagent to install the executable as provision/tool/yq in cidata.

@norio-nomura
Copy link
Contributor Author

provisionTool:
  yq:
  - location: "~/Downloads/yq_linux_amd64"
    arch: "x86_64"
    digest: "sha256:..."

The example above is from .containerd.archives, but it doesn’t support ~ expansion.

@afbjorklund
Copy link
Member

@norio-nomura : I think you should add an issue for what you are trying to accomplish here, before diving straight into the implementation and the PR? My gut feeling is that this will meet the same fate as the "ansible" provisioning.

@jandubois
Copy link
Member

I know this is just an example, but I just realized that you are editing a JSON file, so you can just use jq (which is already installed in Ubuntu).

@jandubois
Copy link
Member

snap.tmpl using built-in jq:

base: template://docker
provision:
- mode: user
  script: |
    set -eux -o pipefail
    DAEMON="{{.Home}}/.config/docker/daemon.json"
    mkdir -p "$(dirname "$DAEMON")"
    [[ ! -e $DAEMON ]] && echo "{}" > "$DAEMON"
    chmod 644 "$DAEMON"
    EXPR='.features["containerd-snapshotter"] = {{.Param.containerdSnapshotter}}'
    jq "$EXPR" "$DAEMON" >"$DAEMON.new"
    mv "$DAEMON.new" "$DAEMON"
param:
  containerdSnapshotter: true

Seems to work fine:

limactl start --yes --name snap ./snap.tmpllimactl shell snap sh -c "cat ~/.config/docker/daemon.json"
{
  "features": {
    "containerd-snapshotter": true
  }
}

@jandubois
Copy link
Member

jandubois commented Aug 22, 2025

Unrelated, but I also think we should just always use the containerdSnapshotter in the docker template. I'm not aware of any reason to use the legacy one.

Even Docker Desktop has been using it by default for over a year now for all new installations. It is not considered experimental anymore.

@norio-nomura
Copy link
Contributor Author

snap.tmpl using built-in jq:

jq is not built-in on Ubuntu-Minimal that I'm using.

Seems to work fine:

Yup, I also have some lima.yaml files that contain similar provision scripts.

I want to make those tasks much simpler like this PR does.

@norio-nomura
Copy link
Contributor Author

@norio-nomura : I think you should add an issue for what you are trying to accomplish here, before diving straight into the implementation and the PR? My gut feeling is that this will meet the same fate as the "ansible" provisioning.

If I make an issue before I write a PR, I expect to receive an answer like #3892 (comment) It came.

Being able to make limactl with this function at my local Mac is more valuable to me than this PR is merged. I just prioritized the time to realize this function rather than the time spent communicating with the issue.

@norio-nomura
Copy link
Contributor Author

Added format field. Now, it can manipulate systemd's unit files like the following:

- mode: yq
  path: /etc/systemd/system/docker.service.d/override.conf
  format: ini
  expression: .Socket.SocketUser="{{.User}}"

@norio-nomura norio-nomura force-pushed the yq-provision-mode branch 4 times, most recently from 9a9c7c4 to 420f6ee Compare August 25, 2025 12:53
@afbjorklund
Copy link
Member

Being able to make limactl with this function at my local Mac is more valuable to me than this PR is merged. I just prioritized the time to realize this function rather than the time spent communicating with the issue.

That is OK, but it also runs into the risk of 1) not realizing there is a simpler way to accomplish the same thing and 2) risking that the PR is never merged - or maybe merged and then deprecated and removed again, like Ansible

@jandubois
Copy link
Member

I like the provision.mode: yq feature, but think the provisionTool design is too specialized, and would have to either piggy-back on the provision.mode: data mechanism or need to be hardcoded into Lima like the nerdctl archives.

I think a better approach would be to bundle yq into our existing binaries. That way we can re-use all the bundled runtime library code (and even yqlib in the case of limactl), and don't have to worry about versions/locations etc.

I've created #3908 to show how simple this is to implement. What do you think about using that approach @norio-nomura?

@norio-nomura
Copy link
Contributor Author

norio-nomura commented Aug 26, 2025

updated:

@norio-nomura norio-nomura force-pushed the yq-provision-mode branch 7 times, most recently from 8f59a28 to 71563bd Compare August 27, 2025 09:39
@norio-nomura norio-nomura marked this pull request as ready for review August 27, 2025 10:07
@norio-nomura
Copy link
Contributor Author

Pushed a separate commit that applying reviews

@AkihiroSuda AkihiroSuda added this to the v2.0.0 milestone Aug 28, 2025
Copy link
Member

@jandubois jandubois left a comment

Choose a reason for hiding this comment

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

Thanks, LGTM

Still have some nit-picks, and I think we are missing the documentation for the order the provisioning types are executed.

@jandubois jandubois dismissed their stale review August 28, 2025 06:22

Requested changes have been made.

@norio-nomura
Copy link
Contributor Author

Pushed a separate commit that applying additional reviews

@norio-nomura
Copy link
Contributor Author

force pushed to fix lint error

@AkihiroSuda
Copy link
Member

Please squash the commits

```yaml
# Create or edit a file in the guest filesystem by using `yq`.
# The file specified by `path` will be updated by `expression`.
# An empty file of the required `format` will be created if it does not yet exist.
# `format` defaults to "auto" and will be detected by file extension of `path`.
# If the extension is not recognized by `yq` then `format` must be set to a
# value from this list:
#   "auto", "csv", "ini", "json", "props", "tsv", "toml", "xml", "yaml"
# See https://github.com/mikefarah/yq for more info.
# Any missing directories will be created as needed.
# The file permissions will be set to the specified value.
# The file and directory creation will be performed as the specified owner.
# If the existing file is not writable by the specified owner, the operation will fail.
# `path` and `expression` are required.
# `owner` and `permissions` are optional. Defaults to "root:root" and 644.
- mode: yq
  path: "{{.Home}}/.config/docker/daemon.json"
  expression: ".features.containerd-snapshotter = {{.Param.containerdSnapshotter}}"
  format: auto
  owner: "{{.User}}"
  permissions: 644

```
Signed-off-by: Norio Nomura <norio.nomura@gmail.com>
Copy link
Member

@AkihiroSuda AkihiroSuda left a comment

Choose a reason for hiding this comment

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

Thanks

@AkihiroSuda AkihiroSuda merged commit 3db7ced into lima-vm:master Aug 28, 2025
36 checks passed
@norio-nomura
Copy link
Contributor Author

Thanks! 🙏🏻

@norio-nomura norio-nomura deleted the yq-provision-mode branch August 28, 2025 10:11
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Nov 10, 2025
⚠️ **CAUTION: this is a major update, indicating a breaking change!** ⚠️

This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [lima-vm/lima](https://github.com/lima-vm/lima) | major | `v1.2.2` -> `v2.0.1` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>lima-vm/lima (lima-vm/lima)</summary>

### [`v2.0.1`](https://github.com/lima-vm/lima/releases/tag/v2.0.1)

[Compare Source](lima-vm/lima@v2.0.0...v2.0.1)

#### Changes

- Binary release artifacts:
  - Fix a regression in v2.0.0 `level=fatal msg="template \"_images/<IMAGE>.yaml\" not found"` ([#&#8203;4313](lima-vm/lima#4313), thanks to [@&#8203;vvoland](https://github.com/vvoland))

- Misc:
  - pkg/networks/usernet: use `SIGINT` instead of `SIGKILL` ([#&#8203;4310](lima-vm/lima#4310), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))

Full changes: <https://github.com/lima-vm/lima/milestone/64?closed=1>

#### Usage

```console
$ limactl create
$ limactl start
...
INFO[0029] READY. Run `lima` to open the shell.

$ lima uname
Linux
```

***

The binaries were built automatically on GitHub Actions.
The build log is available for 90 days: <https://github.com/lima-vm/lima/actions/runs/19137304035>

The sha256sum of the SHA256SUMS file itself is `25ad222fa1cf91a85ef7be67664f2ba65228a5d82a39be1adbbe842096854e24` .

***

Release manager: [@&#8203;AkihiroSuda](https://github.com/AkihiroSuda)

### [`v2.0.0`](https://github.com/lima-vm/lima/releases/tag/v2.0.0)

[Compare Source](lima-vm/lima@v1.2.2...v2.0.0)

This is the second major release of Lima, featuring the support for [pluggable VM drivers](https://lima-vm.io/docs/dev/drivers/), [GPU acceleration](https://lima-vm.io/docs/config/gpu/), and [MCP](https://lima-vm.io/docs/config/ai/outside/mcp/).
This release also commemorates the promotion of the project from CNCF [Sandbox](https://www.cncf.io/sandbox-projects/) to [Incubating](https://www.cncf.io/projects/) 🎉.

#### Highlights

- [Experimental plug-in subsystem for VM driver infrastructure](https://lima-vm.io/docs/dev/drivers/).
  This will help implementing third-party plugins without modifying the code base of Lima.
  Thanks to [GSoC 2025](https://gist.github.com/unsuman/ff31a323ecef2289bf065882726ed7f0) contributor [@&#8203;unsuman](https://github.com/unsuman) .
- [Experimental krunkit VM driver](https://lima-vm.io/docs/config/vmtype/krunkit/) for supporting GPU acceleration ([#&#8203;4137](lima-vm/lima#4137), thanks to [@&#8203;unsuman](https://github.com/unsuman))
- [Experimental integration for Model Context Protocol (MCP)](https://lima-vm.io/docs/config/ai/outside/) ([#&#8203;3744](lima-vm/lima#3744)). i.e., Lima can be now used as a sandbox for AI agents such as Gemini.
- Add `limactl (start|restart) --progress` flag to show the progress of provisioning ([#&#8203;3846](lima-vm/lima#3846), [#&#8203;3915](lima-vm/lima#3915), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000) [@&#8203;norio-nomura](https://github.com/norio-nomura))
- Add `limactl shell --preserve-env` flag to propagate env vars from the host to VM ([#&#8203;3830](lima-vm/lima#3830), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000))

#### Other notable changes

- `/tmp/lima` is no longer mounted by default ([#&#8203;3951](lima-vm/lima#3951))
- SSH port is no longer hard-coded to 60022 for the "default" instance ([#&#8203;3780](lima-vm/lima#3780))
- Forward UDP ports by default ([#&#8203;4054](lima-vm/lima#4054))
- Support CLI plugins ([#&#8203;3834](lima-vm/lima#3834), [#&#8203;4009](lima-vm/lima#4009), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000))
- Support custom URL scheme plugins ([#&#8203;3937](lima-vm/lima#3937), thanks to [@&#8203;jandubois](https://github.com/jandubois)).
  `template://default` is now recommended to be written as `template:default`. The old form is still supported.

##### Details

- VM driver infrastructure:
  - [Experimental plug-in subsystem for VM driver infrastructure](https://lima-vm.io/docs/dev/drivers/) ([multiple MRs](https://github.com/lima-vm/lima/pulls?q=is%3Apr+milestone%3Av2.0.0+is%3Aclosed+label%3Aarea%2Fvmdrivers), thanks to [@&#8203;unsuman](https://github.com/unsuman))

- krunkit:
  - [Experimental krunkit VM driver](https://lima-vm.io/docs/config/vmtype/krunkit/) for supporting GPU acceleration ([#&#8203;4137](lima-vm/lima#4137), thanks to [@&#8203;unsuman](https://github.com/unsuman))

- VZ:
  - Support Rosetta AOT Caching with CDI ([#&#8203;3858](lima-vm/lima#3858), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))
  - Support accelerating SSH using `AF_VSOCK` ([#&#8203;3979](lima-vm/lima#3979), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))

- QEMU:
  - Fallback to TCG when KVM is not available on Linux hosts ([#&#8203;4204](lima-vm/lima#4204))

- MCP:
  - [Experimental integration for Model Context Protocol (MCP)](https://lima-vm.io/docs/config/ai/outside/) ([#&#8203;3744](lima-vm/lima#3744)).  Lima now provides MCP tools for reading, writing, and executing local files using a VM sandbox. Known to work with Google Gemini CLI.

- `limactl` CLI:
  - Add `limactl (start|restart) --progress` flag to show the progress of provisioning ([#&#8203;3846](lima-vm/lima#3846), [#&#8203;3915](lima-vm/lima#3915), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000) [@&#8203;norio-nomura](https://github.com/norio-nomura))
  - Add `limactl (create|start|edit) --port-forward` flag for static port forwarding ([#&#8203;3699](lima-vm/lima#3699), thanks to [@&#8203;Horiodino](https://github.com/Horiodino)).
    Usually not needed, but useful for instances created with `--plain`.
  - Add `limactl (create|start|edit) --ssh-port` flag ([#&#8203;3791](lima-vm/lima#3791))
  - Add `limactl (create|start|edit) --mount-only` flag ([#&#8203;3947](lima-vm/lima#3947)).
    Similar to `--mount`, but overrides the existing mounts. Useful for mounting `$(pwd)`.
  - Support specifying `--set` multiple times in `limactl (create|start|edit)` ([#&#8203;4197](lima-vm/lima#4197), thanks to [@&#8203;AndiDog](https://github.com/AndiDog))
  - Add `limactl shell --preserve-env` flag to propagate env vars from the host to VM ([#&#8203;3830](lima-vm/lima#3830), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000)).
    See also [`LIMA_SHELLENV_ALLOW`](https://lima-vm.io/docs/config/environment-variables/#lima_shellenv_allow) and [`LIMA_SHELLENV_BLOCK`](https://lima-vm.io/docs/config/environment-variables/#lima_shellenv_block).
  - Support CLI plugins ([#&#8203;3834](lima-vm/lima#3834), [#&#8203;4009](lima-vm/lima#4009), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000))
  - Support custom URL scheme plugins ([#&#8203;3937](lima-vm/lima#3937), thanks to [@&#8203;jandubois](https://github.com/jandubois)).
    `template://default` is now recommended to be written as `template:default`. The old form is still supported.
  - Add `limactl copy --backend=rsync` flag as an alternative to `scp` backend ([#&#8203;3143](lima-vm/lima#3143), thanks to [@&#8203;olamilekan000](https://github.com/olamilekan000))
  - Add `limactl list--yq` and `limactl info --yq` flags ([#&#8203;3998](lima-vm/lima#3998), thanks to [@&#8203;jandubois](https://github.com/jandubois))
  - Add `limactl rename OLD NEW` ([#&#8203;4207](lima-vm/lima#4207))
  - Deprecate `--yes` and introduce `limactl (clone|rename|edit|shell) --start` instead ([#&#8203;4108](lima-vm/lima#4108), [#&#8203;4285](lima-vm/lima#4285), thanks to [@&#8203;Horiodino](https://github.com/Horiodino) [@&#8203;nlordell](https://github.com/nlordell))

- YAML:
  - Migrate `cpuType` to `vmOpts.qemu` ([#&#8203;3500](lima-vm/lima#3500), thanks to [@&#8203;unsuman](https://github.com/unsuman))
  - Add `yq` provision mode ([#&#8203;3892](lima-vm/lima#3892), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))
  - Prohibit relative paths in YAML ([#&#8203;3950](lima-vm/lima#3950)).
    Relative paths were never intended to be supported,
    but they were accidentally allowed due to a regression in v1.1.0.
    The CLI command `limactl (create|start|edit) --mount DIR` still supports relative paths.

- Default template:
  - Remove `/tmp/lima` mount ([#&#8203;3951](lima-vm/lima#3951))
  - Stop hardcoding SSH port 60022 ([#&#8203;3780](lima-vm/lima#3780))

- Network:
  - Enable mDNS for vzNAT and socket\_vmnet ([#&#8203;4272](lima-vm/lima#4272), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))

- Port forwarding:
  - Support port forwarding in plain mode ([#&#8203;3699](lima-vm/lima#3699), thanks to [@&#8203;Horiodino](https://github.com/Horiodino))
  - Support host sockets in gRPC port forwarder ([#&#8203;4008](lima-vm/lima#4008), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))
  - Forward UDP ports by default ([#&#8203;4054](lima-vm/lima#4054))
  - Eliminated 3-second delay for detecting ports ([#&#8203;4066](lima-vm/lima#4066))
  - Removed iptables watcher for `sudo nerdctl run -p ...` ([#&#8203;4107](lima-vm/lima#4107)).
    `sudo nerdctl run -p ...` now requires nerdctl v2.1.6 or later.
  - Improved performance of gRPC forwarder ([#&#8203;4247](lima-vm/lima#4247), thanks to [@&#8203;balajiv113](https://github.com/balajiv113))
  - Support UDP in Kubernetes ([#&#8203;4233](lima-vm/lima#4233))
  - Change default of `guestIPMustBeZero` to `true` when `guestIP` is `0.0.0.0` ([#&#8203;4221](lima-vm/lima#4221), thanks to [@&#8203;jandubois](https://github.com/jandubois))

- Build system:
  - Remove `Kconfig` and `config.mk`, in favor of Makefile variables ([#&#8203;3732](lima-vm/lima#3732))
  - Support Fedora, RHEL, and relevant host distributions ([#&#8203;4228](lima-vm/lima#4228), thanks to [@&#8203;valdela1](https://github.com/valdela1))

- Templates:
  - `alpine`, `alpine-iso`: update to Alpine 3.22 ([#&#8203;4184](lima-vm/lima#4184), [#&#8203;4190](lima-vm/lima#4190), thanks to [@&#8203;jandubois](https://github.com/jandubois))
  - `debian`: update to Debian 13 ([#&#8203;4029](lima-vm/lima#4029), thanks to [@&#8203;unsuman](https://github.com/unsuman))
  - `docker`, `docker-rootful`: Enable containerd image store ([#&#8203;3941](lima-vm/lima#3941), thanks to [@&#8203;norio-nomura](https://github.com/norio-nomura))
  - `fedora`: update to Fedora 43 ([#&#8203;4255](lima-vm/lima#4255))
  - `opensuse`: update to openSUSE Leap 16 ([#&#8203;4203](lima-vm/lima#4203))
  - `oraclelinux`: update to Oracle Linux 10 ([#&#8203;4236](lima-vm/lima#4236), thanks to [@&#8203;valdela1](https://github.com/valdela1))
  - `ubuntu`, `default`: update Ubuntu to 25.10 ([#&#8203;4202](lima-vm/lima#4202))
  - `k0s`: New template ([#&#8203;3728](lima-vm/lima#3728), thanks to [@&#8203;plandem](https://github.com/plandem))
  - `experimental/ubuntu-next`: update to Ubuntu 26.04 pre-release ([#&#8203;4311](lima-vm/lima#4311))

- Project:
  - Invite Ansuman Sahoo ([@&#8203;unsuman](https://github.com/unsuman)) as a Reviewer ([#&#8203;4003](lima-vm/lima#4003), thanks to [@&#8203;jandubois](https://github.com/jandubois))
  - Promote from CNCF Sandbox to Incubating ([#&#8203;4201](lima-vm/lima#4201))

Full changes: <https://github.com/lima-vm/lima/milestone/59?closed=1>

Thanks to [@&#8203;AndiDog](https://github.com/AndiDog) [@&#8203;Horiodino](https://github.com/Horiodino) [@&#8203;afbjorklund](https://github.com/afbjorklund) [@&#8203;alexandear](https://github.com/alexandear) [@&#8203;ashwat287](https://github.com/ashwat287) [@&#8203;balajiv113](https://github.com/balajiv113) [@&#8203;bonifaido](https://github.com/bonifaido) [@&#8203;dharsanb](https://github.com/dharsanb) [@&#8203;gnawhleinad](https://github.com/gnawhleinad) [@&#8203;iamleot](https://github.com/iamleot) [@&#8203;jandubois](https://github.com/jandubois) [@&#8203;kachick](https://github.com/kachick) [@&#8203;muchzill4](https://github.com/muchzill4) [@&#8203;ningmingxiao](https://github.com/ningmingxiao) [@&#8203;nlordell](https://github.com/nlordell) [@&#8203;norio-nomura](https://github.com/norio-nomura) [@&#8203;olamilekan000](https://github.com/olamilekan000) [@&#8203;plandem](https://github.com/plandem) [@&#8203;stek29](https://github.com/stek29) [@&#8203;unsuman](https://github.com/unsuman) [@&#8203;valdela1](https://github.com/valdela1) [@&#8203;vax-r](https://github.com/vax-r) [@&#8203;vishalanarase](https://github.com/vishalanarase) [@&#8203;zyfy29](https://github.com/zyfy29)

#### EOL of v1.2

Lima v1.2 will continue to receive security updates and critical bug fixes until **2026-02-06** (3 months from now).
See also <https://lima-vm.io/docs/releases/>.

#### Usage

```console
$ limactl create
$ limactl start
...
INFO[0029] READY. Run `lima` to open the shell.

$ lima uname
Linux
```

***

The binaries were built automatically on GitHub Actions.
The build log is available for 90 days: <https://github.com/lima-vm/lima/actions/runs/19130682878>

The sha256sum of the SHA256SUMS file itself is `112f1ef1d9850e29b4be425ca71e8b6ac686f593ff741164885b51fbd6919ca6` .

***

Release manager: [@&#8203;AkihiroSuda](https://github.com/AkihiroSuda)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
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.

4 participants