diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 51d9c3eb..c0dab441 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -3,6 +3,9 @@ name: Tests on: pull_request: +permissions: + pull-requests: write + jobs: unit-tests: uses: canonical/operator-workflows/.github/workflows/test.yaml@main diff --git a/.vale/styles/config/vocabularies/local/accept.txt b/.vale/styles/config/vocabularies/local/accept.txt index e651c36b..42821fac 100644 --- a/.vale/styles/config/vocabularies/local/accept.txt +++ b/.vale/styles/config/vocabularies/local/accept.txt @@ -2,4 +2,5 @@ aproxy chroot cron opentelemetry -pipx \ No newline at end of file +pipx +vCPUs \ No newline at end of file diff --git a/README.md b/README.md index bac61312..990b28a5 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,23 @@ Deploy GitHub runner image builder with GitHub runners. You'll need a working [OpenStack installation](https://microstack.run/docs/single-node) with -flavors with a minimum of 2 CPU cores, 8GB RAM and 10GB disk. +flavors for the builder VM. + +Recommended builder VM resources: + + +- 2 vCPUs +- 8 GiB RAM +- 20 GiB disk + +Minimum accepted builder VM resources: + +- 2 vCPUs +- 1 GiB RAM +- 20 GiB disk + + +Using the recommended resources helps avoid failures during image build and initialization. ### Set up diff --git a/app/doc/tutorial/quick-start.md b/app/doc/tutorial/quick-start.md index 9a1ebf26..dee4f9a3 100644 --- a/app/doc/tutorial/quick-start.md +++ b/app/doc/tutorial/quick-start.md @@ -14,6 +14,17 @@ - Working [OpenStack environment](https://microstack.run/docs/single-node) - A `clouds.yaml` configuration with the OpenStack environment +### Recommended resources for deployment + +For reliable image builds, use the following recommended flavor for build VMs: + +- 2 vCPUs +- 8 GiB RAM +- 20 GiB disk + +The CLI can work with lower memory if a smaller flavor is selected, but using the +recommended flavor significantly reduces build failures. + ## Steps ### Install the CLI diff --git a/app/pyproject.toml b/app/pyproject.toml index 1deff3ce..01406142 100644 --- a/app/pyproject.toml +++ b/app/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "github-runner-image-builder" -version = "0.13.0" +version = "0.14.0" authors = [ { name = "Canonical IS DevOps", email = "is-devops-team@canonical.com" }, ] diff --git a/docs/changelog.md b/docs/changelog.md index ef6c8a0c..a4584878 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,11 @@ +## [#221 Add resource recommendation for charm deployment](https://github.com/canonical/github-runner-image-builder-operator/pull/221) + + +- Add 2 vCPUs, 8 GiB RAM, and 20 GiB disk OpenStack flavor recommendation. + + ## [#219 Use Juju secrets](https://github.com/canonical/github-runner-image-builder-operator/pull/219) (2026-04-17) - Require `openstack-password-secret` configuration option to securely store OpenStack passwords using Juju secrets. diff --git a/docs/tutorial/quick-start.md b/docs/tutorial/quick-start.md index f4c5e10f..4d06607a 100644 --- a/docs/tutorial/quick-start.md +++ b/docs/tutorial/quick-start.md @@ -9,12 +9,27 @@ This quick start guide will help you deploy the GitHub Runner Image Builder char ## Requirements -- A working station, e.g., a laptop, with amd64 architecture. +- A working station, for example, 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). +### Recommended resources for deployment + +For stable builds and fewer deployment failures, use a dedicated OpenStack flavor for +the builder VM with: + + +- 2 vCPUs +- 8 GiB RAM +- 20 GiB disk + +The charm itself enforces a lower minimum flavor (2 vCPUs, 1 GiB RAM, 20 GiB disk). + + +If possible, set the `build-flavor` config to a flavor that meets the recommendation. + ## Steps ### Shell into the Multipass VM