A Juju charm that provides the GitHub runner workload embedded snapshot image to the GitHub runner charm. This charm is deployed as a VM and works on top of OpenStack infrastructure.
Like any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For Charmed GitHub runner image builder, this includes support for configuring:
- Multi-arch
- Multi Ubuntu bases
- Juju/MicroK8s snap channels
- External scripts
For information about how to deploy, integrate, and manage this charm, see the Official CharmHub Documentation.
Deploy GitHub runner image builder with GitHub runners.
You'll need a working OpenStack installation with flavors with a minimum of 2 CPU cores, 8GB RAM and 10GB disk.
Follow MicroStack's single-node starting guide to set up MicroStack.
Follow the tutorial on GitHub runner to deploy the GitHub runner.
Deploy the charm.
juju deploy github-runner-image-builder \
--config experimental-external-build=True \
--config experimental-external-build-network=<OPENSTACK-NETWORK-NAME> \
--config openstack-auth-url=<OPENSTACK-AUTH-URL> \
--config openstack-password=<OPENSTACK-PASSWORD> \
--config openstack-project-domain-name=<OPENSTACK-PROJECT-DOMAIN-NAME> \
--config openstack-project-name=<OPENSTACK-PROJECT-NAME> \
--config openstack-user-name=<OPENSTACK-USER-NAME>
juju integrate github-runner-image-builder github-runner
After having deployed and integrated the charm with the GitHub runner charm, the image should start to build and be provided to the GitHub runner automatically. The whole process takes around 10 minutes.
- image: The image relation provides the OpenStack image ID to the GitHub runners.
- cos-agent: The COS agent subordinate charm provides observability using the Canonical Observability Stack (COS).
For a full list of integrations, please refer to the Charmhub documentation.