From 3fccb034ca950fea0bf366eb74e8579f8dbf7cba Mon Sep 17 00:00:00 2001 From: Adam Anthony Date: Sat, 18 Apr 2026 10:04:48 -0400 Subject: [PATCH 1/3] docs: record SDK registry override friction in EC3 section Co-Authored-By: Claude Sonnet 4.6 --- FRICTION.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FRICTION.md b/FRICTION.md index f9679de..b2a3858 100644 --- a/FRICTION.md +++ b/FRICTION.md @@ -116,5 +116,8 @@ 1. if you don't have configurations set up, the whole thing is stuck and the text reporting the error is very faint and hard to read. 2. it's not clear why I need a kots yaml file for an EC install 3. preflights on a fresh VM fail fast. It seems there's easily scripted fixes we could provide to streamline the onboarding +4. Host preflights run during in-place upgrades and fail on ports already in use by the running cluster (e.g. etcd on 2379/TCP). These checks should be skipped for upgrades since the cluster is already installed — flagging in-use ports as blockers on an existing node is incorrect behavior and blocks the upgrade flow in the web UI. +5. In-place upgrade via the web UI fails because EC3 attempts to reinstall k0s rather than upgrade the existing cluster. The UI shows "installation" state during what should be an upgrade flow, then errors on k0s already being present. Upgrade appears to not be supported or is broken in this EC3 alpha version. +6. **`ReplicatedImageRegistry` docs don't distinguish behavior by image origin** — The docs show using `ReplicatedImageRegistry (HelmValue ".replicated.image.registry")` to handle the replicated SDK image for airgap. This implies the function works uniformly for all images regardless of origin. In practice, calling `ReplicatedImageRegistry` on `proxy.replicated.com` (the SDK's native registry) in beta.1 does not work: without `noProxy=true` it produces a doubled proxy URL (`proxy.replicated.com/proxy/gameshelf/proxy.replicated.com/...`); with `noProxy=true` it returns an empty string for online installs, causing the image to resolve to `docker.io/library/replicated-sdk-image` (wrong). The SDK chart already uses `proxy.replicated.com` natively and works without any `helmchart.yaml` override — EC3 handles routing for it automatically. The docs don't make clear that the replicated SDK image is a special case that should be left alone. Resolution: removed the `replicated.image.registry` override entirely. ~3 hours of debugging across multiple PRs. From 5ed22c5b599a14aa4611568d7ac7f8778c3799c5 Mon Sep 17 00:00:00 2001 From: Adam Anthony Date: Sat, 18 Apr 2026 10:26:41 -0400 Subject: [PATCH 2/3] fix: remove dead volumePermissions registry overrides MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit volumePermissions.enabled is false by default in the Bitnami postgresql subchart — the init container never runs, so the registry override is never used. Co-Authored-By: Claude Sonnet 4.6 --- chart/gameshelf/values.yaml | 3 --- helmchart.yaml | 4 +--- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/chart/gameshelf/values.yaml b/chart/gameshelf/values.yaml index 089bbae..0d30d51 100644 --- a/chart/gameshelf/values.yaml +++ b/chart/gameshelf/values.yaml @@ -68,9 +68,6 @@ postgresql: enabled: true image: registry: proxy.replicated.com/proxy/gameshelf/index.docker.io - volumePermissions: - image: - registry: proxy.replicated.com/proxy/gameshelf/index.docker.io auth: database: gameshelf username: gameshelf diff --git a/helmchart.yaml b/helmchart.yaml index 4a6eab3..d334966 100644 --- a/helmchart.yaml +++ b/helmchart.yaml @@ -20,9 +20,7 @@ spec: postgresql: image: registry: 'repl{{ ReplicatedImageRegistry "index.docker.io" }}' - volumePermissions: - image: - registry: 'repl{{ ReplicatedImageRegistry "index.docker.io" }}' + redis: image: registry: 'repl{{ ReplicatedImageRegistry "index.docker.io" }}' From 202d4a6b4137f715aca0762b6b1545b9ee301876 Mon Sep 17 00:00:00 2001 From: Adam Anthony Date: Sat, 18 Apr 2026 10:46:48 -0400 Subject: [PATCH 3/3] fix: add gameshelf to builder section, fix SDK registry for airgap - builder.image: declare ghcr.io/aa-replicated/gameshelf so the Vendor Portal bundles the correct source image for airgap - replicated.image.registry: use HasLocalRegistry/LocalRegistryHost to redirect SDK to local embedded registry in airgap while leaving it at proxy.replicated.com for online installs Co-Authored-By: Claude Sonnet 4.6 --- helmchart.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helmchart.yaml b/helmchart.yaml index d334966..17335dd 100644 --- a/helmchart.yaml +++ b/helmchart.yaml @@ -17,14 +17,19 @@ spec: registry: 'repl{{ ReplicatedImageRegistry "ghcr.io" }}' repository: 'aa-replicated/gameshelf' pullPolicy: IfNotPresent + replicated: + image: + registry: 'repl{{- if HasLocalRegistry }}{{ LocalRegistryHost }}{{- else }}proxy.replicated.com{{- end }}' postgresql: image: registry: 'repl{{ ReplicatedImageRegistry "index.docker.io" }}' - redis: image: registry: 'repl{{ ReplicatedImageRegistry "index.docker.io" }}' builder: + image: + registry: "ghcr.io" + repository: "aa-replicated/gameshelf" postgresql: image: registry: "docker.io"