A Juju charm for deploying and managing GitHub self-hosted runners on virtual machines. The charm maintains a set of self-hosted runners, each isolated in a single-use virtual machine instance.
Like any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For the github-runner-operator charm, this includes:
- Stateless operation.
- Configurable resource limits.
- Ability to redeploy without losing any data (no need to back up).
- Supported observability through the
cos-agent
integration. - Scheduled dependences upgrades to mitigate security risks. Furthermore, the landscape-client charm can be deployed with this charm to ensure other dependencies are kept up to date.
Operating a self-hosted runner comes with certain security concerns according to GitHub. Just like GitHub's runners, the self-hosted runners managed by the charm are isolated in a single-use virtual machine.
Metrics and logs about the runners and the charm itself are collected and sent to the Canonical Observability Stack for analysis and visualisation.
The charm enforces a set of GitHub repository settings as best practice. This is planned to be opt-in in the future. See How to comply with repository policies.
Overview Overview of the charm |
How-to guides Step-by-step guides covering key operations and common tasks |
Reference Technical information - specifications, APIs, architecture |
Explanation Concepts - discussion and clarification of key topics |
If you want to use ephemeral LXD virtual machines spawned by charm, you can refer to the section Track local-lxd.
Documentation is an important part of this project, and we take the same open-source approach to the documentation as the code. As such, we welcome community contributions, suggestions and constructive feedback on our documentation. Our documentation is hosted on the Charmhub forum to enable easy collaboration. Please use the "Help us improve this documentation" links on each documentation page to either directly change something you see that's wrong, ask a question, or make a suggestion about a potential change via the comments section.
If there's a particular area of documentation that you'd like to see that's missing, please file a bug.
The GitHub runner charm is a member of the Ubuntu family. It's an open-source project that warmly welcomes community projects, contributions, suggestions, fixes, and constructive feedback.
Thinking about using the GitHub runner charm for your next project? Get in touch!
- How to
- Add custom labels
- Change repository or organization
- Change GitHub personal access token
- Comply with security requirements
- Contribute
- Debug with SSH
- Integrate with COS
- Spawn OpenStack runner
- Comply with repository policies
- Set up reactive spawning
- Reference
- Actions
- Configurations
- COS Integration
- GitHub runner cryptographic overview
- External Access
- Integrations
- Token scopes
- Explanation
- Charm architecture
- SSH Debug
- Changelog
- Track local-lxd
- Tutorial 1. Managing resource usage 1. Quick start
- How to 1. Add custom labels 1. Change repository or organization 1. Change GitHub personal access token 1. Comply with security requirements 1. Configure runner storage 1. Debug with SSH 1. Deploy on ARM64 1. Integrate with COS 1. Comply with repository policies 1. Run on LXD cloud 1. Set base image
- Reference 1. Actions 1. ARM64 1. Configurations 1. COS Integration 1. GitHub runner cryptographic overview 1. External Access 1. Integrations 1. Token scopes
- Explanation 1. ARM64 1. Charm architecture 1. SSH Debug