github-runner-operators

module
v0.0.0-...-8086844 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2026 License: Apache-2.0

README

GitHub runner operators

WIP

A monorepo containing charms to operate Self-Hosted GitHub Action Runners.

Repository layout

charms/
  planner-operator/         # Juju charm: GitHub runner planner
    cos_custom/
      grafana_dashboards/   # Grafana dashboards for the planner charm
                            # (served via cos-configuration-k8s, path: charms/planner-operator/cos_custom/grafana_dashboards)
  webhook-gateway-operator/ # Juju charm: GitHub webhook gateway

runner_grafana_dashboards/  # Grafana dashboards for runner VM host metrics
                            # (served via cos-configuration-k8s, path: runner_grafana_dashboards)

Observability: Grafana dashboards

Dashboards in this repo are delivered to Grafana through cos-configuration-k8s, which syncs JSON files from this Git repository and provisions them via the grafana-dashboard relation. Provisioned dashboards are immutable in Grafana regardless of user role — they cannot be edited or deleted through the UI.

Conventions
Directory Purpose grafana_dashboards_path config value
charms/<charm>/cos_custom/grafana_dashboards/ Dashboards for a specific charm's workload metrics charms/<charm>/cos_custom/grafana_dashboards
runner_grafana_dashboards/ Dashboards for runner VM host-level metrics (CPU, memory, disk, network) runner_grafana_dashboards

Dashboard JSON files should use __inputs to declare the datasource (type prometheus). Setting "editable": false is recommended for clarity, but is not strictly required: dashboards delivered through cos-configuration-k8s are filesystem-provisioned and therefore read-only in Grafana regardless of the JSON flag. Metric names follow the OpenTelemetry hostmetrics receiver Prometheus naming convention (e.g. system_cpu_time_seconds_total).

Directories

Path Synopsis
cmd
planner command
webhook-gateway command
internal
database
Package database provides persistent storage for auth tokens, jobs, and flavors, and computes "pressure" for each flavor.
Package database provides persistent storage for auth tokens, jobs, and flavors, and computes "pressure" for each flavor.
github
Package github provides shared constants for GitHub webhook integration.
Package github provides shared constants for GitHub webhook integration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL