GithubHelp home page GithubHelp logo

jay7x / puppet-lima Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 87 KB

Manage Lima VMs with Puppet Bolt

License: Apache License 2.0

Dockerfile 0.39% Ruby 88.41% Puppet 11.20%
lima lima-vm puppet puppet-bolt puppet-module

puppet-lima's People

Contributors

jay7x avatar

Stargazers

 avatar

Watchers

 avatar

puppet-lima's Issues

Ability to setup a VM startup/shutdown order in the cluster

It'd be nice to have a VM startup/shutdown order in the cluster. That allows to do staged cluster startup/shutdown.

Imagine we have 3 VM with node1 having order of 10 and other 2 VMs having order of 100. Then node1 should be started first and the other nodes should be started after the 1st one in parallel. Shutdown sequence should happen in a reversed order.

Use "IdentityFile" from `limactl list --json` output instead of hardcoded one

lima::resolve_reference task uses limactl show-ssh to get a VM ssh config. The command output has multiple IdentityFile lines which makes it impossible to use as-is in the Bolt inventory. Currently the value is hardcoded as "#{lima_home}/_config/user".

Starting from Lima 0.15.0 (I don't remember it in earlier versions at least) there is IdentityFile field in the limactl list --json output for every VM. So I guess it's better to use this value instead of hardcoded one as we have full JSON object from the limactl list output anyway.

Restart a cluster in a single plan call

Another frequent nice-to-have feature is cluster restart. Options:

  1. Specific plan lima::cluster::restart which calls stop and start inside
  2. restart=true option in the lima::cluster::stop plan

Ability to create multiple VMs in parallel

While starting multiple VMs in parallel is unsafe in general (see lima-vm/lima#1354) it'd be really nice to have a way to ๐Ÿคž๐Ÿป, ๐Ÿ™๐Ÿป and do it anyway. As long as all VMs are created already it should be safe to start them in parallel. So my idea is to add a parallel=true kind of parameter to the lima::cluster::start plan.

Implement `limactl create --plain` support

It'd be nice to have a way to configure that a VM is plain. I believe it should be possible to define this in a YAML config. Otherwise another parameter is required for the lima::create task (and for the lima::cluster::create somehow).

Import Lima CLI helper from beaker-lima

It'd be nice to use Lima cli helper library instead of calling it explicitly from every task. I implemented such a helper in the beaker-lima project. It might require some tuning though.

Create and start the cluster in a single plan call

With the separate lima::cluster::create plan introduced recently it'd be nice to have an ability to create and run a cluster in a single plan call:

  1. lima::cluster::create start=true ๐Ÿ‘๐Ÿป
  2. lima::cluster::start create=true ๐Ÿ‘Ž๐Ÿป

FR: Introduce cluster management plans

As lima has no way to define a cluster it'd be nice to have few plans to define/create/delete multiple VMs as a "cluster" entity.

E.g. one may want to run local k8s cluster in lima (N master nodes, M worker nodes e.g.). Another example is local Puppet cluster (1 Puppetserver with CA, 1 PuppetDB, X agent nodes).

Stop-and-delete a cluster in a single plan call

Quite frequently I'm stopping a cluster to delete it after. So it'd be nice to have ability to stop a cluster and delete it in the same plan call. There are options:

  1. Add delete=true parameter to the lima::cluster::stop plan
  2. Add stop=true parameter to the lima::cluster::delete plan
  3. Implement both options above

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.