feat!: rename Helm chart async-processor → llm-d-async (#179) - #340
Conversation
Rename the Helm chart (name, directory, template helpers, rendered resource names/labels, unit tests) and all in-repo consumers: publish-helm-chart.sh, CI workflows (helm lint/unittest/template paths), deploy/install.sh + kind-emulator, docs/guides/e2e-deploy, and the e2e suite. The container image was already llm-d-async, so this completes llm-d#179. BREAKING CHANGE: the chart now publishes as oci://ghcr.io/llm-d/charts/llm-d-async and renders resources named llm-d-async-* with app.kubernetes.io/name=llm-d-async. A Deployment selector is immutable, so upgrading from an existing async-processor install requires uninstall + reinstall. The old charts/async-processor OCI package is not renamed (GHCR has no redirect); its last version stays available but receives no new releases. Also fixes deploy/install.sh's default image repo, which pointed at the nonexistent ghcr.io/llm-d/async-processor -> ghcr.io/llm-d/llm-d-async. Out of scope (unchanged): the Go binary name, the OTEL service name (async-processor), and the *-system / *-monitoring namespace defaults. Closes llm-d#179 Signed-off-by: Shimi Bandiel <shimib@google.com>
Signed-off-by: Shimi Bandiel <shimib@google.com>
| containers: | ||
| - command: | ||
| - /async-processor | ||
| - /llm-d-async |
There was a problem hiding this comment.
change this back or update the docker binary name first https://github.com/llm-d/llm-d-async/blob/main/Dockerfile#L38
There was a problem hiding this comment.
Good catch — fixed in 25d245a. Reverted just the container command back to /async-processor to match the image's binary (Dockerfile ENTRYPOINT), which I intentionally left unrenamed. My blanket rename under charts/ had wrongly changed it, and helm-unittest didn't catch it (no assertion on command). Left the binary name as-is rather than renaming it — happy to rename the binary too in a follow-up if we want full consistency.
There was a problem hiding this comment.
Update: went with your other option — renamed the binary to llm-d-async instead of reverting the command. So the Dockerfile now builds/ENTRYPOINTs llm-d-async and the chart command is /llm-d-async (matches). While doing it I also made the OTEL service name consistent: this branch had already set the chart's OTEL_SERVICE_NAME env to llm-d-async, but otel.go's default and the e2e Jaeger query still said async-processor (would've failed the nightly OTEL e2e) — both now llm-d-async, which also matches the existing otel.go doc comment. And fixed the Makefile IMG/E2E_IMG defaults (pointed at the nonexistent async-processor image). Namespaces + buildx builder name left as-is. Added the OTEL change to the breaking release note.
| value: {{ .Values.ap.otel.samplerArg | quote }} | ||
| - name: OTEL_SERVICE_NAME | ||
| value: "async-processor" | ||
| value: "llm-d-async" |
There was a problem hiding this comment.
charts/llm-d-async/templates/ap-deployments.yaml:259 changes:
- name: OTEL_SERVICE_NAME
value: "llm-d-async" # was: "async-processor"
and the unittest at tests/deployment_test.yaml:449 was updated to match. But the PR body says OTEL service name is intentionally unchanged (async-processor). So
either:
- the value change is an accidental over-replace (the updated test masks it), or
- the intent changed and the description is stale.
The chart rename changed the container command to /llm-d-async, but the image's binary is still async-processor (Dockerfile ENTRYPOINT), so the pod would fail to start. Revert just the command path to match the (intentionally unchanged) binary name. Signed-off-by: Shimi Bandiel <shimib@google.com>
Follow-up within llm-d#340 (per review) to complete the identity rename so the container command can be /llm-d-async: - Dockerfile: build/COPY/ENTRYPOINT the binary as llm-d-async; chart container command -> /llm-d-async (matches the image). - OTEL: default service name -> llm-d-async, aligning otel.go with its own doc comment AND the chart's OTEL_SERVICE_NAME env (already llm-d-async on this branch). Update the e2e Jaeger query and README default to match, so the e2e queries traces under the correct service name. - Makefile IMG/E2E_IMG defaults -> ghcr.io/llm-d/llm-d-async (they pointed at the nonexistent async-processor image). Namespaces (*-system/-monitoring) and the buildx builder name are left as-is (infra identifiers, not the app/image name). Signed-off-by: Shimi Bandiel <shimib@google.com>
…ragment Signed-off-by: Shimi Bandiel <shimib@google.com>
…ync) Follow-up to llm-d/llm-d-async#340 (chart renamed async-processor -> llm-d-async). Update the install/uninstall commands and the kind-e2e harness to the new OCI chart path (charts/llm-d-async) and release name, and the log/resource reference (deployment/llm-d-async). DRAFT / DO NOT MERGE until an async-processor release first publishes oci://ghcr.io/llm-d/charts/llm-d-async. ASYNC_VERSION is a placeholder (0.8.0) — set it to that release's version before merging. Left the ops-guide link (docs/operations/async-processor.md, a real filename) unchanged. Signed-off-by: Shimi Bandiel <shimib@google.com>
…ync) (#2099) * docs(guides): point async guide at the renamed chart (charts/llm-d-async) Follow-up to llm-d/llm-d-async#340 (chart renamed async-processor -> llm-d-async). Update the install/uninstall commands and the kind-e2e harness to the new OCI chart path (charts/llm-d-async) and release name, and the log/resource reference (deployment/llm-d-async). DRAFT / DO NOT MERGE until an async-processor release first publishes oci://ghcr.io/llm-d/charts/llm-d-async. ASYNC_VERSION is a placeholder (0.8.0) — set it to that release's version before merging. Left the ops-guide link (docs/operations/async-processor.md, a real filename) unchanged. Signed-off-by: Shimi Bandiel <shimib@google.com> * docs(guides): extend chart-rename sweep to the multi-tenant guide #2047 merged, so the multi-tenant guide is now on main referencing the old charts/async-processor. Update it to match #340's rename: - install/upgrade/uninstall -> oci://ghcr.io/llm-d/charts/llm-d-async and release name llm-d-async (so the chart fullname -> llm-d-async-* resources); - deploy/KSA references -> llm-d-async; - gmp-podmonitoring.yaml selector app.kubernetes.io/name -> llm-d-async (must match the renamed pod label or it won't scrape); - ASYNC_VERSION placeholder (set at release, same as the main guide). Left the gcp-setup/teardown demo GSA (SA_NAME=async-processor) and prose comments as-is (a separate GCP-IAM naming choice, not the chart). Signed-off-by: Shimi Bandiel <shimib@google.com> * docs(artifacts): point async core-libraries link at llm-d/llm-d-async Signed-off-by: Shimi Bandiel <shimib@google.com> * docs(async): pin ASYNC_VERSION to v0.8.0 (published chart) charts/llm-d-async:v0.8.0 is now published to ghcr.io/llm-d. The OCI tag is v-prefixed, so helm --version resolves v0.8.0 (not 0.8.0). Drops the placeholder TODOs. Signed-off-by: Shimi Bandiel <shimib@google.com> * docs(operations): point async-processor Helm example at renamed chart The operations guide's install example still used the old release name and charts/async-processor path; align with the renamed chart (llm-d-async / charts/llm-d-async). Signed-off-by: Shimi Bandiel <shimib@google.com> * docs(async): bump ASYNC_VERSION to v0.9.0 v0.9.0 is the latest llm-d-async release. Both the chart (oci://ghcr.io/llm-d/charts/llm-d-async:v0.9.0) and the app image (ghcr.io/llm-d/llm-d-async:v0.9.0) are published and public. Also refresh the stale inline comments: the v0.8.0 note about being the first release published under charts/llm-d-async no longer applies. Signed-off-by: Shimi Bandiel <shimib@google.com> --------- Signed-off-by: Shimi Bandiel <shimib@google.com>
Completes #179 — the container image was already
llm-d-async; this renames the Helm chart.Changes
charts/async-processor→charts/llm-d-async:Chart.yamlname, template helper identifiers (llm-d-async.*), rendered resource names/labels, dashboard file, and the helm-unittest suites.scripts/publish-helm-chart.sh,pre-commit.yml+ci-e2e-tests.yaml,deploy/install.sh(+ kind-emulator),docs/guides/e2e-deploy.md, and the e2e suite (chart path, release name, resource-name/label selectors; value files renamed too).deploy/install.shdefault image repo pointed at the nonexistentghcr.io/llm-d/async-processor→ corrected toghcr.io/llm-d/llm-d-async.The chart now publishes as
oci://ghcr.io/llm-d/charts/llm-d-asyncand rendersllm-d-async-*resources withapp.kubernetes.io/name=llm-d-async. A Deployment selector is immutable, so upgrading from an existingasync-processorinstall requires uninstall + reinstall. The oldcharts/async-processorOCI package isn't renamed (GHCR has no redirect) — its last version stays available but gets no new releases.Out of scope (intentionally unchanged)
Go binary name, OTEL service name (
async-processor), and the*-system/*-monitoringnamespace defaults (kept consistent with the Makefile).Testing
helm lint✓ ·helm unittest49/49 ✓ ·go vet ./test/e2e/...✓ ·go build ./...✓.Follow-up (separate, cross-repo)
The
llm-d/llm-dguides referencecharts/async-processor; they need a follow-up PR to point atcharts/llm-d-asyncafter a release publishes the new package.Closes #179