Code Monkey home page Code Monkey logo

lxd-github-actions's People

Contributors

stgraber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lxd-github-actions's Issues

Reaching out about the lxd-github-actions-runner go implementation

Hi @stgraber, I've started playing with a Go implementation of a LXD runner at https://github.com/rgl/lxd-github-actions-runner (aka lxd-ghar).

Its still pretty much a PoC, and I'm using it to learn about lxc/lxd; right now it can:

  • Be launched as a systemd service.
    • systemd will restart the whole-sheband when the ephemeral runner terminates.
  • Launch a ephemeral runner in a LXC container.
    • The runner is directly executed from lxc exec instead of a systemd service; this seems to give me more control about its execution, and its simpler to send the runner logs to stdout/stderr for easier troubleshoot.
  • Use a Personal Access Token (PAT) to create the runner registration token.

I was able to use it to implement a amd64/arm64 workflow that uses Debian live-build to create a custom iso at https://github.com/rgl/tinkerbell-debian-osie/actions.

live-build uses deboostrap internally, and that seems to require me to enable lxc privileged mode and disable apparmor; since I've just started using lxc, I'm not really sure that such a privileged container is really needed, and would really appreciate your advice :-)

I would like to add the features you've mention in this repository README, like being able to maintain a pool of instances. I'm still unsure if this should be handled by systemd instead (if that is actually possible).

The current implementation is interacting with lxc/lxd by calling out the lxc process; do you think it would be better to use the https://pkg.go.dev/github.com/lxc/lxd/client library instead?

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.