Skip to content

fix: install charts from the v2 repo, keep v1 reachable with a warning - #199

Merged
divya-airbyte (dgplatform26) merged 5 commits into
mainfrom
divya/plat-1006
Jul 31, 2026
Merged

divya-airbyte (dgplatform26) merged 5 commits into
mainfrom
divya/plat-1006

Conversation

@dgplatform26

@dgplatform26 divya-airbyte (dgplatform26) commented Jul 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

PLAT-1006, steps 1-3 only. abctl defaults to chart V2 but three code paths still pointed at the V1 repo. This moves them to airbytehq.github.io/charts and warns on V1, while deliberately keeping V1 installable — V1 chart users are still live (airbyte/server tags 1.5.1, 1.6.0, 1.7.0, 1.8.1 were each pulled from DockerHub within the last hour), so both abctl local install --chart-version 1.9.2 and a V1 dataplane install must keep working until the V1 Pages site is actually retired.

The dataplane install was the real bug. It was pinned to a V1 chart that will never be updated again:

-dataplaneChartVersion = "1.8.1"
-dataplaneRepoURL      = common.AirbyteRepoURLv1 // v1 repo has the dataplane chart

The comment was simply stale — airbytehq/charts publishes airbyte-data-plane (currently 2.1.1). The default is now the latest stable V2 chart resolved from the index rather than a new hard-coded pin, since going stale is what caused this bug; that matches what the platform chart already does (ResolveChartReference("", "")).

Both chart generations stay reachable for the dataplane. abctl install dataplane gains a --chart-version flag, and repo selection mirrors ResolveChartReference: empty resolves latest V2, >= 2.0.0 builds a V2 URL, anything lower falls back to the V1 repo. The repo entry registered with Helm follows the same choice, so a V1 install doesn't register a V2 remote.

func ResolveDataplaneChartReference(version string) (chartURL, chartVersion, repoURL string, err error)
// ""      -> latest stable from airbytehq.github.io/charts
// "2.1.0" -> airbytehq.github.io/charts/airbyte-data-plane-2.1.0.tgz
// "1.8.1" -> airbytehq.github.io/helm-charts/airbyte-data-plane-1.8.1.tgz

Pre-release suffixes are stripped before the comparison, so 2.2.0-rc1 still resolves against V2.

V1 deprecation warnings are printed from the command layer, not internal/helm — the resolver shouldn't print UI. For local install it lives in InstallCmd.setDefaultChartFlags after chart resolution, so it fires on any route to a sub-2.0.0 chart (explicit --chart-version 1.x, or a local/URL chart whose metadata reports 1.x), guarded on a non-empty version so an unresolvable version doesn't produce a misleading line. For the dataplane it fires before the install spinner, only on an explicitly requested V1 version, since the default path can never resolve V1.

internal/service/install.go was cosmetic but wrong. It passed AirbyteRepoURLv1 as repoURL. That value only feeds AddOrUpdateChartRepo; the already-resolved chartLoc URL determines what actually gets fetched, so no user was installing a V1 chart because of it — but it did register the wrong repo in the user's Helm config. Now V2.

Out of scope, gated on V1 Pages retirement (ticket step 4): the < 2.0.0 route in ResolveChartReference, the AirbyteRepoURLv1 constant, the V1 branch in internal/helm/images.go, and the V1 URL fixtures all stay.

Verification

  • go build ./..., go test ./... pass; go vet clean on the changed packages.
  • TestResolveDataplaneChartReference covers all four repo-selection cases (default, V2, V1, pre-release).
  • TestInstallDataplaneChart now table-drives the chart URL/version and adds an explicit-V1 case asserting both the V1 chart URL and the V1 repo entry.
  • TestGetLatestChartURLFromRepoIndex covers airbyte-data-plane resolution against a fake index, including that a prerelease entry is skipped.
  • TestCommand_Install_HappyPath expects the V2 repo URL in AddOrUpdateChartRepo.
  • Confirmed https://airbytehq.github.io/helm-charts/airbyte-data-plane-1.8.1.tgz still returns 200, so the V1 fallback URL is live.

Note for reviewers: make fmt reformats a dozen unrelated files (pre-existing whitespace drift on main); those are left untouched here. make vet over the whole repo fails on a pre-existing internal/airbyte/log_scanner.go:90 struct-tag issue, also unrelated.

Requested by divya-airbyte (@dgplatform26).

Link to Devin session: https://app.devin.ai/sessions/62889b8a90264973a96f2155a3df178c

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration devin-ai-integration Bot changed the title fix: install charts from the v2 repo and deprecate v1 fix: install charts from the v2 repo, keep v1 reachable with a warning Jul 31, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

Runtime test results (Devin) — PLAT-1006

Built from divya/plat-1006 @ 64dd6a1 and ran two full Kind-based installs on a Linux box (Docker 27.4.1), plus real Helm repo fetches. Both the V1-pinned and default-V2 install paths work end to end. Devin session

✅ Default install now resolves chart V2 (2.1.1), no deprecation warning

abctl local install --no-browser --low-resource-mode --port 8001 → helm list -A shows airbyte-2.1.1, all pods Running on airbyte/*:2.1.1, UI returns HTTP 200. Zero occurrences of the V1 deprecation warning in the log.

Default install on chart 2.1.1

✅ --chart-version 1.9.2 still installs from the V1 repo and warns

Install completed (exit 0, UI HTTP 200), helm get metadata → VERSION: 1.9.2 (that chart 404s on the V2 repo, so it demonstrably came from helm-charts), and the warning printed once. Same screenshot shows --chart-version 1.99.99 failing loudly with a 404 on the V1 URL rather than silently falling through — which also confirms the V2 repo entry doesn't hijack V1 chart fetches.

V1 warning, per-run chart versions, invalid version error

✅ Dataplane --chart-version resolution matrix + real chart URLs render

""→charts/airbyte-data-plane-2.1.1.tgz, 1.8.1/1.99.99→V1 repo, 2.0.0/2.1.1/2.1.1-rc1→V2 repo (pre-release not mis-routed). Both the V1 1.8.1 and V2 2.1.1 dataplane charts helm pull + helm template cleanly. warnOnChartV1 fires only for explicitly requested V1 versions.

Dataplane resolution matrix
Dataplane charts render

⚠️ Not covered: a real abctl install dataplane registration (needs interactive login to a live org) — only resolution/warning logic and chart fetchability were verified. Installs ran on --port 8001 with --low-resource-mode, Kind provider only.

@dgplatform26
divya-airbyte (dgplatform26) marked this pull request as ready for review July 31, 2026 19:53
devin-ai-integration[bot]

This comment was marked as resolved.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. The V2 default and V1 fallback look good. I left one non-blocking comment about resolving the chart before creating external resources.

Comment thread internal/cmd/install/dataplane.go
Comment thread internal/cmd/install/dataplane.go Outdated
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@dgplatform26

Copy link
Copy Markdown
Contributor Author

/claude-review

@dgplatform26
divya-airbyte (dgplatform26) merged commit b446bff into main Jul 31, 2026
3 checks passed
@dgplatform26
divya-airbyte (dgplatform26) deleted the divya/plat-1006 branch July 31, 2026 21:00
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.

2 participants