Skip to content

chore: point this repo's own manifests and docs at the fork - #20

Merged
loks0n merged 3 commits into
mainfrom
chore/repoint-images
Aug 13, 2026
Merged

chore: point this repo's own manifests and docs at the fork#20
loks0n merged 3 commits into
mainfrom
chore/repoint-images

Conversation

@loks0n

@loks0n loks0n commented Aug 13, 2026

Copy link
Copy Markdown
Member

Closes #10.

Following our own README produced Grafana's archived engine paired with a plugin that crashes on Grafana 13 — the compose stacks and helm chart still pulled grafana/oncall, and the quickstart installed grafana-oncall-app from the grafana.com catalog.

Engine and plugin move together

The engine and plugin are released together and are not meant to be mixed across versions, so each compose stack pins both from one variable:

image: ghcr.io/appwrite/grafana-oncall:v${ONCALL_VERSION:-1.19.1}
GF_INSTALL_PLUGINS: https://…/download/v${ONCALL_VERSION:-1.19.1}/grafana-oncall-app-${ONCALL_VERSION:-1.19.1}.zip;grafana-oncall-app

Verified by rendering the stack, with the default and with an override:

ONCALL_VERSION engine plugin archive
unset …:v1.19.1 …/v1.19.1/grafana-oncall-app-1.19.1.zip
1.20.0 …:v1.20.0 …/v1.20.0/grafana-oncall-app-1.20.0.zip

An earlier revision of this PR had :latest for the engine against a fixed plugin archive, which would have drifted apart on the next release.

Images

file before after
docker-compose.yml (×3) grafana/oncall ghcr.io/appwrite/grafana-oncall:v${ONCALL_VERSION}
docker-compose-mysql-rabbitmq.yml (×3) grafana/oncall same
docker-compose-developer.yml cache_from grafana's :latest and :dev our :latest (we never publish :dev)
helm/oncall/values.yaml image.repository: grafana/oncall ghcr.io/appwrite/grafana-oncall

GHCR visibility needed no change — the other half of #10. The package is anonymously pullable (verified with an anonymous registry token), so compose works without credentials.

The chart was broken twice over

  • appVersion was v1.15.6, and _helpers.tpl falls back to it for the image tag — so a default install asked our registry for a tag that does not exist. Chart version/appVersion now track the release.
  • grafana.plugins still listed the catalog id, installing Grafana's archived build alongside our engine. It now installs this fork's release archive, and the grafana subchart sets GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS, without which an unsigned plugin is rejected.

The plugin version is derived, not restated. Subchart values cannot be templated, but the grafana chart runs tpl over envValueFrom, so it can reference a ConfigMap this chart renders — and that ConfigMap builds GF_INSTALL_PLUGINS from the same expression the engine image uses (image.tag | default .Chart.AppVersion). So overriding the engine moves the plugin with it:

$ helm template rel . --set image.tag=v1.20.0
    image: ghcr.io/appwrite/grafana-oncall:v1.20.0
    GF_INSTALL_PLUGINS: …/download/v1.20.0/grafana-oncall-app-1.20.0.zip;grafana-oncall-app

(The archive name drops the leading v while the tag keeps it, hence a trimPrefix.) An earlier revision of this PR hardcoded the URL in grafana.plugins, which would have left the plugin behind whenever image.tag was overridden.

Repointing image.repository also required updating the assertion in image_deployments_test.yaml and three rendered snapshots; that diff is exclusively the 8 image lines. Suite is green: 34 suites, 111 tests, 20 snapshots.

helm/oncall/README.md told users to helm repo add grafana … then install grafana/oncall. That is a chart reference, not an image, and it is stale for a different reason: this fork does not publish a helm chart (the workflow that did was Grafana-internal, removed in #6). It now installs from a checkout.

Update instructions

Both READMEs told users to update the plugin from Grafana's plugin version page. That cannot work for a plugin outside the catalog — it would leave the stale catalog build against an updated engine. They now move ONCALL_VERSION (compose) or the grafana.plugins archive (helm), and both note the operational catch: Grafana only installs a plugin that is not already present, so with a persistent volume the old copy has to be cleared before it will reinstall.

README

Rewrote the header as an explicit What's different from upstream list — Grafana 13/React 19 support, Insights rendering, the e2e matrix, ~290 security patches, Django 5.2, fcm-django from PyPI, releases shipping both halves — followed by What it does not offer, stating the unsigned plugin, the unpublished chart, the dead mobile push relay and the absence of support. Previously the reasons to prefer this fork were implied at best.

Also fixed links into the archived repo (open-an-issue, Migrator, integrations guide, helm architecture diagram) and removed the stargazers chart, which renders a GitHub API error instead of a graph.

Verified

docker compose config renders both stacks with matching versions; helm suite passes with updated snapshots; pre-commit (yamllint, markdownlint) clean. The long plugin URLs carry yamllint disable-line, matching the convention already used in this repo, since a URL cannot be folded across YAML lines.

🤖 Generated with Claude Code

The compose stacks and helm chart still pulled grafana/oncall, and the
quickstart installed grafana-oncall-app from the catalog. Following our
own README therefore produced the archived engine paired with a plugin
that crashes on Grafana 13.

- compose (hobby and mysql/rabbitmq): engine images ->
  ghcr.io/appwrite/grafana-oncall:latest, and GF_INSTALL_PLUGINS points
  at the plugin archive from our release, overridable via
  ONCALL_PLUGIN_URL
- developer stack: build cache -> our image, dropping the :dev tag we
  never publish
- helm: image.repository -> ghcr.io/appwrite/grafana-oncall, with the
  test assertion and three rendered snapshots updated to match
- helm README: the chart is not published to a helm repository any more,
  so install it from a checkout rather than grafana/oncall
- README: rewrite the header as a list of differences from upstream, so
  the reason to use this fork is stated rather than implied; fix links
  that pointed into the archived repo; drop the stargazers chart, which
  renders a github api error

GHCR visibility needed no change: the package is anonymously pullable,
so compose works without credentials.

Closes #10

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Greptile Summary

The PR repoints the repository’s deployment manifests and documentation to Appwrite’s fork and keeps the engine and plugin on one release version.

  • Pins both Compose engine images and plugin archives through ONCALL_VERSION.
  • Updates the Helm chart’s image repository, release version, unsigned-plugin configuration, and archive installation path.
  • Replaces stale catalog and published-chart instructions with fork-specific installation and update workflows.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the previously reported Compose drift, Helm catalog guidance, and Helm engine/plugin override mismatch are addressed at the current head.

Important Files Changed

Filename Overview
docker-compose.yml The engine, workers, migration job, and plugin archive now consistently use the same documented ONCALL_VERSION.
docker-compose-mysql-rabbitmq.yml The alternate Compose stack mirrors the same coupled engine and plugin version configuration.
helm/oncall/templates/grafana-plugin-env.yaml The new ConfigMap derives the plugin release archive from the same tag expression used by the engine image.
helm/oncall/values.yaml The chart now uses the forked engine repository and injects the matching unsigned plugin archive into bundled Grafana.
helm/oncall/README.md Installation and update guidance now uses the checked-out fork chart and explains persistent-plugin replacement.
README.md The Compose quickstart and update instructions now reference the fork and document the shared release variable.

Reviews (3): Last reviewed commit: "fix: derive the chart's plugin version f..." | Re-trigger Greptile

Comment thread docker-compose.yml Outdated
Comment thread helm/oncall/README.md
Pairing a moving :latest engine with a fixed plugin archive meant every
release after v1.19.1 would combine a newer backend with the 1.19.1
frontend, which is exactly the mismatch this PR set out to remove.

A single ONCALL_VERSION drives both the engine tag and the plugin archive
URL in each compose stack, so they cannot drift; verified by rendering
'docker compose config' with the default and with an override.

The chart had the same defect twice over:
- appVersion was v1.15.6, which is what image.tag falls back to, so the
  default install asked our registry for a tag that does not exist.
  Chart version and appVersion now track the release.
- grafana.plugins still listed the catalog id, installing grafana's
  archived build. It now installs the matching release archive, and the
  grafana subchart allows the unsigned plugin.

Both update sections told users to update the plugin from grafana's
plugin page, which cannot work for a plugin that is not in the catalog.
They now move ONCALL_VERSION (or grafana.plugins) instead, and note that
grafana skips a plugin that is already installed, so the old copy has to
be cleared from the volume first.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread helm/oncall/values.yaml Outdated
Hardcoding the archive URL in grafana.plugins meant overriding image.tag
updated the engine while the plugin stayed on 1.19.1 — the same skew as
the compose default, just moved into the chart.

Subchart values cannot be templated, but the grafana chart runs tpl over
envValueFrom, so it can reference a ConfigMap this chart renders. That
ConfigMap builds GF_INSTALL_PLUGINS from the same expression the engine
image uses, so one knob moves both halves:

  helm template --set image.tag=v1.20.0
    engine  ghcr.io/appwrite/grafana-oncall:v1.20.0
    plugin  .../download/v1.20.0/grafana-oncall-app-1.20.0.zip

The archive name drops the leading v while the tag keeps it, hence the
trimPrefix. The helm README no longer asks anyone to keep two versions in
step by hand.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@loks0n
loks0n merged commit 5c4f3f2 into main Aug 13, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repoint container image references from grafana/oncall to ghcr.io/appwrite/grafana-oncall

1 participant