You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0c7fe10
Browse filesBrowse the repository at this point in the historyBrowse files
feat(configurator): allow Dev releases without live Assistant qualification (#123)
Model Serving outages currently block every Configurator release. Add an
explicit `release_mode=dev-skip-assistant-qualification` choice to the
manual GitHub UI workflow so Dev can advance without the live Assistant
qualification job. `LZC_ASSISTANT_ENABLED` retains its existing
environment value: the Assistant stays enabled when configured. Runtime
behavior, UI and API are unchanged. The default `qualified` release
still requires the complete repeated source-bound Assistant
qualification.
The exception is limited to fresh `main` builds and the existing
protected Dev destination. Every other build, database, browser,
packaging, publication, migration and runtime check remains required.
The source-bound manifest records Dev scope and
`assistantQualified=false`; the distinct build job and manifest guards
prevent either qualified or unqualified promotion using
`release_run_id`. Skipped qualification is never reported as successful,
and earlier failed receipts remain evidence. Existing
conversations/proposals and runtime validation/authorization are
untouched. Model availability still determines whether inference works.
After merge, use Actions → Configurator Release → Run workflow → `main`,
`release_mode=dev-skip-assistant-qualification`, `build_only=false`,
empty `release_run_id`, `runner_pool_size=1`. Review the exact
source/run and approve `lzc-dev-release` after applicable checks.
English/German workflow, operator and knowledge-contract documentation
describe the explicit Dev exception. A deployment-only failure requires
inspection and a fresh run; these unqualified artifacts cannot
subsequently be promoted.
Validation of the final implementation:
- Pinned Node 24.21.0 / npm 11.19.0 `npm run check`: 977 passed, 69
existing default-gated skips.
- Release preparation, artifact, buildpack and image-staging guards: 33
passed, including preservation of both runtime Assistant opt-in and
opt-out, main-only scope, and rejection of unqualified
promotion/cross-mode manifests.
- actionlint v1.7.7: passed (shellcheck unavailable and disabled); `git
diff --check`: passed.
- The final diff contains no app/UI/API changes. GitHub application CI
reruns the complete integration/browser flow on the updated source.
No live-model qualification is claimed for this Dev mode. No Dev
deployment, production operation or customer infrastructure Apply has
been performed. Hosted exact-source verification, including warm Runner
handoff/replacement with pool size 1, remains required after deployment.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@@ -85,7 +115,7 @@ Pflichtprüfung, ohne sicherzustellen, dass er für jeden relevanten PR ein Erge
85
115
| Configurator Bootstrap | Standardmäßig `root=bootstrap` oder `backend`; standardmäßig `apply=false`. Apply verwendet `lzc-dev-bootstrap-apply`. |
86
116
| Configurator Platform |`root=platform`; standardmäßig `apply=false`. Benötigt den obigen Plattform-Operatorschalter; Apply verwendet `lzc-dev-platform-apply`. |
87
117
| Configurator Runtime |`root=runtime`; standardmäßig `apply=false`. Benötigt den obigen Laufzeit-Operatorschalter; Apply verwendet `lzc-dev-runtime-apply`. |
88
-
| Configurator Release | Standardmäßig `build_only=false`; leere `release_run_id` bedeutet neue Qualifikation/neuer Build. Setzen Sie `build_only=true` für einen Build ohne CF-Bereitstellung; echte Modellaufrufe und Veröffentlichung des geschützten Tags erfolgen trotzdem. Um einen bestehenden qualifizierten Build zu übernehmen, lassen Sie Build-only deaktiviert und geben Sie dessen numerische Run-ID an; das aufbewahrte Artefakt/Tag muss weiterhin gültig sein. |
118
+
| Configurator Release | Standardmäßig `release_mode=qualified` und `build_only=false`; leere `release_run_id` bedeutet einen neuen Build im gewählten Modus. Setzen Sie `build_only=true` für einen Build ohne CF-Bereitstellung; die Veröffentlichung des geschützten Tags erfolgt trotzdem; echte Modellaufrufe laufen im Modus `qualified`. Um einen bestehenden qualifizierten Build zu übernehmen, lassen Sie Build-only deaktiviert und geben Sie dessen numerische Run-ID an; das aufbewahrte Artefakt/Tag muss weiterhin gültig sein. |
89
119
90
120
Für die normale Configurator-Bereitstellung: Wählen Sie **Configurator Release**,
91
121
**runner_pool_size=1** für einen vorbereiteten Einmal-Runner in Dev
Copy file name to clipboardExpand all lines: docs/workflows.md
+30-2Lines changed: 30 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,34 @@ Starting a workflow is not the same as approving its protected deployment job.
24
24
| Publish an Accelerator GitHub release after real deployment verification |**Publish Release**|
25
25
| Compare configured machine flavors with the live STACKIT catalogue |**Validate STACKIT Flavors**|
26
26
27
+
### Dev release without live Assistant qualification
28
+
29
+
During Model Serving outages, select
30
+
**release_mode=dev-skip-assistant-qualification** in
31
+
**Actions > Configurator Release > Run workflow**, branch **main**.
32
+
Leave **build_only** unchecked and **release_run_id** empty; set
33
+
**runner_pool_size=1**. Review the exact source/run and approve the existing
34
+
**lzc-dev-release** environment after all applicable build/publication checks.
35
+
This explicit Dev exception skips only the live Assistant qualification job.
36
+
`LZC_ASSISTANT_ENABLED` continues to use the existing environment setting;
37
+
the Assistant remains enabled when configured, without a new live qualification
38
+
receipt for this release. Model availability still determines whether inference
39
+
works. This is not a successful qualification and does not erase earlier failed
40
+
receipts. All non-Assistant checks, migrations, protected tags and Dev destination
41
+
guards remain in force. Conversations and proposals are preserved; existing
42
+
runtime validation, authorization and revision checks remain unchanged. No
43
+
production deployment or customer infrastructure Apply is authorized by this mode.
44
+
45
+
The manifest records Dev-only scope and `assistantQualified=false`; the build
46
+
job is named `build-dev-skip-assistant-qualification`. These artifacts cannot be
47
+
promoted using `release_run_id`, including as a qualified release. A deployment
48
+
failure requires inspection and a fresh manual run. `build_only=true` may build
49
+
this mode for inspection, but its artifact cannot subsequently be promoted.
50
+
A qualified release still requires a fresh **release_mode=qualified** run with
51
+
the complete source-bound live qualification. The default **qualified** path
52
+
and its promotion requirements are unchanged.
53
+
54
+
27
55
## Current repository workflows
28
56
29
57
**Automatic** describes repository events, not a manual click. **Reusable** means
@@ -42,7 +70,7 @@ branch restrictions, operator switches and environment protection still apply.
42
70
|[Configurator Bootstrap](https://github.com/stackitcloud/stackit-landing-zone/actions/workflows/configurator-bootstrap.yml) · [source](../.github/workflows/configurator-bootstrap.yml)| Plan the workload-state bucket/access (`bootstrap`) or its versioning (`backend`) | None |**Run workflow** on `main`; choose root and optionally Apply | Real backend/credential access for Plan; `apply=true` enables cloud changes after protected environment approval |
43
71
|[Configurator Platform](https://github.com/stackitcloud/stackit-landing-zone/actions/workflows/configurator-platform.yml) · [source](../.github/workflows/configurator-platform.yml)| Plan shared Configurator services: CF organization, database, Secrets Manager, artifact storage and model token | None |**Run workflow** on `main`; optionally Apply; requires `LZC_PLATFORM_CI_ENABLED=true`| Real backend/credential access for Plan; optional approved cloud Apply |
44
72
|[Configurator Runtime](https://github.com/stackitcloud/stackit-landing-zone/actions/workflows/configurator-runtime.yml) · [source](../.github/workflows/configurator-runtime.yml)| Plan CF space/roles and database/Secrets runtime users | None |**Run workflow** on `main`; optionally Apply; requires `LZC_RUNTIME_CI_ENABLED=true`| Real backend/credential access for Plan; optional approved cloud Apply. Does not publish application code. |
45
-
|[Configurator Release](https://github.com/stackitcloud/stackit-landing-zone/actions/workflows/configurator-release.yml) · [source](../.github/workflows/configurator-release.yml)| Qualify, build and package API/UI and Runner together, or promote an existing qualified build | None; a merge does not start it |**Run workflow** on `main`; choose build-only, new release or promotion; requires `LZC_RELEASE_CI_ENABLED=true`| Fresh builds call **Assistant live regression** and publish a protected buildpack tag. Unless build-only, deploys development after `lzc-dev-release` approval, including migrations and runtime checks. |
73
+
|[Configurator Release](https://github.com/stackitcloud/stackit-landing-zone/actions/workflows/configurator-release.yml) · [source](../.github/workflows/configurator-release.yml)| Qualify, build and package API/UI and Runner together, or promote an existing qualified build | None; a merge does not start it |**Run workflow** on `main`; choose build-only, new release or promotion; requires `LZC_RELEASE_CI_ENABLED=true`| Fresh `qualified`builds call **Assistant live regression** and publish a protected buildpack tag. Unless build-only, deploys development after `lzc-dev-release` approval, including migrations and runtime checks. |
46
74
47
75
The exact Configurator path filter is in the linked YAML. A skipped
48
76
Accelerator-only job on a Configurator PR is intentional, not a deployment.
@@ -76,7 +104,7 @@ it reports a result for every relevant PR.
76
104
| Configurator Bootstrap |`root=bootstrap` by default, or `backend`; `apply=false` by default. Apply uses `lzc-dev-bootstrap-apply`. |
77
105
| Configurator Platform |`root=platform`; `apply=false` by default. Requires the platform operator switch above; Apply uses `lzc-dev-platform-apply`. |
78
106
| Configurator Runtime |`root=runtime`; `apply=false` by default. Requires the runtime operator switch above; Apply uses `lzc-dev-runtime-apply`. |
79
-
| Configurator Release |`build_only=false` by default; `release_run_id` empty means fresh qualification/build. Set `build_only=true` to build without CF deployment; real-model calls and protected tag publication still occur. To promote an existing qualified build, leave build-only unchecked and enter its numeric run ID; the retained artifact/tag must remain valid. |
107
+
| Configurator Release |`release_mode=qualified` and `build_only=false` by default; `release_run_id` empty means a fresh build under the selected mode. Set `build_only=true` to build without CF deployment; protected tag publication still occurs; live-model calls run in `qualified` mode. To promote an existing qualified build, leave build-only unchecked and enter its numeric run ID; the retained artifact/tag must remain valid. |
80
108
81
109
For the normal Configurator deployment: select **Configurator Release**, `main`,
82
110
choose **runner_pool_size=1** to maintain one prepared one-shot Dev Runner
Copy file name to clipboardExpand all lines: landing-zone-configurator/deploy/cloud-foundry/README.de.md
+33-2Lines changed: 33 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,8 @@ des Repositorys **Configurator Release** und dann **Run workflow** auswählen:
29
29
auf `0` zum Deaktivieren/Abbauen des Pools setzen. Standard ist `0`; zulässig
30
30
sind `0`–`4`. Jede Reserve benötigt zusätzlich zu aktiven Aufträgen 1 GiB RAM
31
31
und ein Disk-Budget von 4 GiB.
32
-
5. Workflow starten. Er qualifiziert den echten Assistant, baut und testet beide
32
+
5. Für normale Releases **release_mode=qualified** beibehalten und den Workflow
33
+
starten. Er qualifiziert den echten Assistant, baut und testet beide
33
34
Pakete und erstellt anschließend den geschützten, quellgebundenen Buildpack-Tag.
34
35
6. Wenn **deploy** auf Prüfung wartet, über **Review deployments** das
35
36
Environment **lzc-dev-release** mit einem autorisierten Prüferkonto freigeben.
@@ -47,7 +48,7 @@ Ein überholter Branch-HEAD wird abgelehnt, statt stillschweigend eine andere
47
48
Revision zu deployen. Bei einem gewöhnlichen neuen Release weder Repository-Token-Rechte
48
49
erweitern noch Tags manuell erstellen.
49
50
50
-
Für „jetzt bauen, später deployen“ **build_only** anhaken. Qualifizierung, Paketierung und Tag-
51
+
Für qualifiziertes „jetzt bauen, später deployen“**release_mode=qualified** beibehalten und**build_only** anhaken. Qualifizierung, Paketierung und Tag-
51
52
Veröffentlichung laufen weiterhin, aber es findet kein Cloud-Deployment statt. Später einen **neuen**
52
53
manuellen Lauf auf `main` starten, **build_only** nicht anhaken und die ursprüngliche
53
54
numerische Build-Run-ID unter **release_run_id** eintragen. Damit wird exakt das qualifizierte
@@ -300,6 +301,36 @@ Task-Status, bereinigte Diagnosen und öffentliche Health Checks liefern Release
300
301
301
302
<aid="immutable-release-and-promotion"></a>
302
303
304
+
### Dev-Release ohne Live-Qualifikation des Assistant
305
+
306
+
Bei Model-Serving-Ausfällen unter
307
+
**Actions > Configurator Release > Run workflow** auf Branch **main** ausdrücklich
308
+
**release_mode=dev-skip-assistant-qualification** wählen. **build_only** nicht
309
+
anhaken, **release_run_id** leer lassen und **runner_pool_size=1** setzen.
310
+
Den genauen Quellstand/Lauf prüfen und nach allen anwendbaren Build-/
311
+
Veröffentlichungsprüfungen die bestehende Umgebung **lzc-dev-release** freigeben.
312
+
Diese ausdrückliche Dev-Ausnahme überspringt nur den Live-Qualifikationsjob des
313
+
Assistant. `LZC_ASSISTANT_ENABLED` übernimmt weiterhin die bestehende
314
+
Umgebungseinstellung; ein konfigurierter Assistant bleibt aktiviert, ohne neuen
315
+
Live-Qualifikationsnachweis für diesen Release. Ob Inferenz funktioniert, hängt
316
+
weiterhin von der Modellverfügbarkeit ab. Dies gilt nicht als erfolgreiche
317
+
Qualifikation und löscht keine früheren fehlgeschlagenen Nachweise. Alle übrigen
318
+
Prüfungen, Migrationen, geschützten Tags und Dev-Zielprüfungen bleiben erhalten.
319
+
Gespräche und Vorschläge bleiben gespeichert; bestehende Laufzeitvalidierung,
320
+
Autorisierung und Revisionsprüfungen bleiben unverändert. Der Modus autorisiert
321
+
weder Produktion noch Kunden-Infrastruktur-Apply.
322
+
323
+
Das Manifest vermerkt die Beschränkung auf Dev und `assistantQualified=false`;
324
+
der Build-Job heißt `build-dev-skip-assistant-qualification`. Diese Artefakte
325
+
können nicht mit `release_run_id` übernommen werden, auch nicht als qualifizierter
326
+
Release. Nach einem Deploymentfehler sind Untersuchung und ein neuer manueller
327
+
Lauf nötig. `build_only=true` erlaubt einen Build zur Prüfung, dessen Artefakt
328
+
anschließend nicht übernommen werden kann. Ein qualifizierter Release erfordert
329
+
weiterhin einen neuen Lauf mit **release_mode=qualified** und vollständiger
330
+
quellstandsgebundener Live-Qualifikation. Der Standardpfad **qualified** und dessen
331
+
Übernahmebedingungen bleiben unverändert.
332
+
333
+
303
334
## Unveränderlicher Release und Promotion
304
335
305
336
Einmal bauen; dieselben Bytes deployen. Der Workflow veröffentlicht ein unveränderliches GitHub-
0 commit comments