Github Runner Documentation Overview

GitHub Runner Operator

A Juju charm for deploying and managing GitHub self-hosted runners on virtual machines. The charm maintains a set of ephemeral 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.

In this documentation

Tutorials
Get started - a hands-on introduction to using the GitHub runner charm for new users
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

Contributing to this documentation

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.

Project and community

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!

Navigation

Level Path Navlink
1 tutorial Tutorial
2 tutorial-managing-resource-usage Managing resource usage
2 tutorial-quick-start Quick start
1 how-to How to
2 how-to-add-custom-labels Add custom labels
2 how-to-change-path Change repository or organization
2 how-to-change-token Change GitHub personal access token
2 how-to-comply-security Comply with security requirements
2 how-to-configure-denylist Restrict self-hosted runner network access
2 how-to-configure-runner-storage Configure runner storage
2 how-to-contribute Contribute
2 how-to-debug-with-ssh Debug with SSH
2 how-to-deploy-on-arm64 Deploy on ARM64
2 how-to-integrate-with-cos Integrate with COS
2 how-to-openstack-runner Spawn OpenStack runner
2 how-to-reactive Set up reactive spawning
2 how-to-repo-policy Comply with repository policies
2 how-to-run-on-lxd Run on LXD cloud
2 how-to-set-base-image Set base image
1 reference Reference
2 reference-actions Actions
2 reference-arm64 ARM64
2 reference-configurations Configurations
2 reference-cos COS Integration
2 reference-cryptographic-overview GitHub runner cryptographic overview
2 reference-external-access External Access
2 reference-integrations Integrations
2 reference-token-scopes Token scopes
1 explanation Explanation
2 explanation-arm64 ARM64
2 explanation-charm-architecture Charm architecture
2 explanation-ssh-debug SSH Debug
1 changelog Changelog