@catladder/cli 0.0.0-next-f2614a3a → 0.0.0-next-78d43d4a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -193,16 +193,40 @@ See the `catladder-releases` skill for how the release jobs differ
|
|
|
193
193
|
|
|
194
194
|
## Step 7 — registry and the first run
|
|
195
195
|
|
|
196
|
-
The
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
196
|
+
The **job images** (the catladder runner images) always live in the CI
|
|
197
|
+
system's own registry, so they change host with the backend:
|
|
198
|
+
`$CI_REGISTRY_IMAGE` on GitLab, `ghcr.io/<owner>/<repo>` on GitHub. The
|
|
199
|
+
first pipeline on the new backend therefore **rebuilds every job image**
|
|
200
|
+
— it will be slow, and that is expected, not a bug.
|
|
201
|
+
|
|
202
|
+
Where the **app image** goes depends on the deploy type:
|
|
203
|
+
|
|
204
|
+
- **`google-cloudrun`** — the image goes to Google Artifact Registry
|
|
205
|
+
(`<region>-docker.pkg.dev/<projectId>/catladder-deploy/…`) on both
|
|
206
|
+
backends. Cloud Run can only pull from AR/GCR, so a backend migration
|
|
207
|
+
does not move the app image at all. Nothing to do here.
|
|
208
|
+
- **`kubernetes`** — the app image lives in the CI registry and does
|
|
209
|
+
move. catladder handles the pull itself: every deploy runs
|
|
210
|
+
`kubernetesCreateSecret`, which writes a `docker-registry` secret
|
|
211
|
+
(`gitlab-registry-<component>`) into the namespace, and the chart wires
|
|
212
|
+
it in as `imagePullSecrets`. Note the secret keeps its historical name
|
|
213
|
+
on both backends.
|
|
214
|
+
|
|
215
|
+
The credential behind that secret differs per backend, and this is the
|
|
216
|
+
one thing to raise before a kubernetes component moves to GitHub:
|
|
217
|
+
|
|
218
|
+
- **GitLab** provisions a durable one automatically —
|
|
219
|
+
`catladder project setup` creates a `gitlab-deploy-token` (scope
|
|
220
|
+
`read_registry`), GitLab exposes it to jobs as `CI_DEPLOY_USER` /
|
|
221
|
+
`CI_DEPLOY_PASSWORD`, and `project doctor` fails when it is missing.
|
|
222
|
+
- **GitHub has no equivalent.** The deploy falls back to the workflow
|
|
223
|
+
token, which expires with the run: the initial pull succeeds and the
|
|
224
|
+
job goes green, but a pod rescheduled later cannot re-pull —
|
|
225
|
+
`ImagePullBackOff` weeks after a deploy that looked fine. Until that
|
|
226
|
+
is solved (catladder issue #75), a project moving kubernetes to GitHub
|
|
227
|
+
must supply a long-lived registry credential itself, declared as
|
|
228
|
+
secrets named `CI_DEPLOY_USER` / `CI_DEPLOY_PASSWORD` (a PAT with
|
|
229
|
+
`read:packages`), which take precedence in the deploy.
|
|
206
230
|
|
|
207
231
|
## Step 8 — run both, compare, then cut over
|
|
208
232
|
|
|
@@ -193,16 +193,40 @@ See the `catladder-releases` skill for how the release jobs differ
|
|
|
193
193
|
|
|
194
194
|
## Step 7 — registry and the first run
|
|
195
195
|
|
|
196
|
-
The
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
196
|
+
The **job images** (the catladder runner images) always live in the CI
|
|
197
|
+
system's own registry, so they change host with the backend:
|
|
198
|
+
`$CI_REGISTRY_IMAGE` on GitLab, `ghcr.io/<owner>/<repo>` on GitHub. The
|
|
199
|
+
first pipeline on the new backend therefore **rebuilds every job image**
|
|
200
|
+
— it will be slow, and that is expected, not a bug.
|
|
201
|
+
|
|
202
|
+
Where the **app image** goes depends on the deploy type:
|
|
203
|
+
|
|
204
|
+
- **`google-cloudrun`** — the image goes to Google Artifact Registry
|
|
205
|
+
(`<region>-docker.pkg.dev/<projectId>/catladder-deploy/…`) on both
|
|
206
|
+
backends. Cloud Run can only pull from AR/GCR, so a backend migration
|
|
207
|
+
does not move the app image at all. Nothing to do here.
|
|
208
|
+
- **`kubernetes`** — the app image lives in the CI registry and does
|
|
209
|
+
move. catladder handles the pull itself: every deploy runs
|
|
210
|
+
`kubernetesCreateSecret`, which writes a `docker-registry` secret
|
|
211
|
+
(`gitlab-registry-<component>`) into the namespace, and the chart wires
|
|
212
|
+
it in as `imagePullSecrets`. Note the secret keeps its historical name
|
|
213
|
+
on both backends.
|
|
214
|
+
|
|
215
|
+
The credential behind that secret differs per backend, and this is the
|
|
216
|
+
one thing to raise before a kubernetes component moves to GitHub:
|
|
217
|
+
|
|
218
|
+
- **GitLab** provisions a durable one automatically —
|
|
219
|
+
`catladder project setup` creates a `gitlab-deploy-token` (scope
|
|
220
|
+
`read_registry`), GitLab exposes it to jobs as `CI_DEPLOY_USER` /
|
|
221
|
+
`CI_DEPLOY_PASSWORD`, and `project doctor` fails when it is missing.
|
|
222
|
+
- **GitHub has no equivalent.** The deploy falls back to the workflow
|
|
223
|
+
token, which expires with the run: the initial pull succeeds and the
|
|
224
|
+
job goes green, but a pod rescheduled later cannot re-pull —
|
|
225
|
+
`ImagePullBackOff` weeks after a deploy that looked fine. Until that
|
|
226
|
+
is solved (catladder issue #75), a project moving kubernetes to GitHub
|
|
227
|
+
must supply a long-lived registry credential itself, declared as
|
|
228
|
+
secrets named `CI_DEPLOY_USER` / `CI_DEPLOY_PASSWORD` (a PAT with
|
|
229
|
+
`read:packages`), which take precedence in the deploy.
|
|
206
230
|
|
|
207
231
|
## Step 8 — run both, compare, then cut over
|
|
208
232
|
|