---
title: Charmhub | Deploy Github runner image builder using Charmhub - The Open Operator
  Collection
description: Deploy the latest version of Github runner image builder on any cloud.
url: https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start
---

# Github runner image builder

[Canonical IS DevOps](https://charmhub.io/publisher/canonical-is-devops "View all packages from Canonical IS DevOps")

* [Canonical IS DevOps](https://charmhub.io/publisher/canonical-is-devops "View all packages from Canonical IS DevOps")

Platform:

22.04

stable 155

```
juju deploy github-runner-image-builder
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://charmhub.io/github-runner-image-builder)

---

#### Contacts

##### Maintainers

+ [https://github.com/orgs/canonical/teams/is-charms](mailto:https://github.com/orgs/canonical/teams/is-charms)

* [Submit a bug](https://github.com/canonical/github-runner-image-builder-operator/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Deploy the GitHub runner image builder for the first time

This quick start guide will help you deploy the GitHub Runner Image Builder charm in OpenStack mode.

## [What you’ll do](https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start#p-36612-what-youll-do)

* Deploy the charm.
* Integrate with GitHub runners.

## [Requirements](https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start#p-36612-requirements)

* A working station, e.g., a laptop, with amd64 architecture.
* Juju 3 installed and bootstrapped to a LXD controller. You can accomplish this process by
  using a Multipass VM as outlined in this guide:
  [Set up your test environment](https://documentation.ubuntu.com/juju/3.6/howto/manage-your-juju-deployment/set-up-your-juju-deployment-local-testing-and-development/)
* A running instance of [OpenStack](https://microstack.run/docs/single-node).

## [Steps](https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start#p-36612-steps)

### [Shell into the Multipass VM](https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start#p-36612-shell-into-the-multipass-vm)

> NOTE: If you’re working locally, you don’t need to do this step.

To be able to work inside the Multipass VM first you need to log in with the following command:

```
multipass shell my-juju-vm
```

* Deploy the [GitHub runner charm in OpenStack mode](https://charmhub.io/github-runner/docs/how-to-openstack-runner).
* Deploy the GitHub runner image builder charm. For information on OpenStack credentials, refer
  to the official [OpenStack documentation](https://docs.openstack.org/python-openstackclient/pike/configuration/index.html).

```
OPENSTACK_AUTH_URL=<openstack-auth-url, e.g. http://my-openstack-deployment/openstack-keystone>
OPENSTACK_PASSWORD=<openstack project password>
OPENSTACK_PROJECT_DOMAIN_NAME=<openstack project domain name>
OPENSTACK_PROJECT_NAME=<openstack project name>
OPENSTACK_USER_DOMAIN_NAME=<openstack user domain name>
OPENSTACK_USERNAME=<openstack username>
juju deploy github-runner-image-builder \
--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-domain-name=$OPENSTACK_USER_DOMAIN_NAME \
--config openstack-user-name=$OPENSTACK_USERNAME
```

* Verify that the image is being built via Juju logs:

```
juju debug-log --include=github-runner-image-builder/0
```

* Verify that the image is successfully built.

```
openstack image list | grep noble-x64
```

* Integrate with GitHub runners.

```
juju integrate github-runner-image-builder github-runner
```

## [Cleanup](https://charmhub.io/github-runner-image-builder/docs/tutorial-quick-start#p-36612-cleanup)

* Remove the github-runner-image-builder charm

```
juju remove-application github-runner-image-builder
```

* If you used Multipass, to remove the Multipass instance you created for this tutorial, use the following command.

```
multipass delete --purge my-juju-vm
```

* Remove the images built by the charm

```
openstack image list -f json | jq -r '.[] | select(.Name | contains("jammy-x64")) | .ID' | xargs -r openstack image delete
```

---
