Commit d474cbdd authored by Konstantinos Togias's avatar Konstantinos Togias
Browse files

docs: keep lab candidate identities in reviewed profiles

parent b63135f5
Loading
Loading
Loading
Loading
Loading
+31 −16
Changes for ci/lab/README.md: 31 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@ The default kubeconfig stays unchanged. Application NodePorts stay inside the
temporary Docker network; the Kubernetes API mapping binds only to loopback.
The controller joins that network.

The checked-in `ci/lab/profile.health.json` selects published OEG, FM and SRM
images for the first health run. SRM is develop commit e326ebe0; its declared
SDK dependency is sunrise6g-opensdk 2.0.0. This baseline proves platform health,
not acceptance of an unpublished SDK candidate. The same profile works locally.
The checked-in [health profile](profile.health.json) selects the chart and
published OEG, FM and SRM images for the default health run. The profile owns
the exact immutable references; each run records the inputs it actually used.
This baseline proves public platform health. The same profile works locally.

The core profile enables OEG, SRM, FM, Keycloak, PostgreSQL and NATS. Portal,
AI2, Data Lab, federation peers and external network providers remain outside
@@ -30,17 +30,30 @@ endpoint acceptance is inferred.

## Candidate inputs

The local Release 2 candidate profile is `ci/lab/profile.release-2.0.json`:
The [Release 2 candidate profile](profile.release-2.0.json) runs locally or in CI:

```sh
sh ci/run_platform_lab.sh ci/lab/profile.release-2.0.json .cache/release-app-001
```

It pins the published OEG 7434f8ae, FM 853bb20f and SRM 8fdb12a5 images by digest,
the bootstrap-capable chart 52a7b0d9 and the installed SDK 2.0.0rc4 contents.
Its terminated checkpoint runs all fourteen application cases. The report adds
infrastructure/cleanup checkpoints separately; these are not additional business
tests. This qualifies that candidate, not a different final package or image.
The profile owns the chart commit, component image digests and expected SDK
version, source revision and contents fingerprint. Its terminated checkpoint
runs all fourteen application cases. Infrastructure and cleanup checkpoints
are reported separately. The result qualifies the exact candidate in that run.

For a new candidate, update the profile to its reviewed published artifacts
and compute the SDK fingerprint from the selected wheel as described in
[SDK acceptance](../../ansible/tests/r2_e2e/SDK_ACCEPTANCE.md#prepare-the-lab).
Run acceptance again after changing those inputs. Keep concrete versions in
profiles and observed identities in `chart.json`, `result.json` and the
acceptance receipt. The README describes the procedure without duplicating
release hashes.

An ad hoc run can use a copied profile, including through `OOP_LAB_PROFILE`,
without changing test code. Submit a small normal MR when updating the
checked-in qualification baseline; include it in the existing MR if still open.
Final SDK publication and its integration into a normal SRM image precede
qualification of that final image.

Use the same profile path as `OOP_LAB_PROFILE` in the GitLab platform-lab job.
The application-checkpoint trial branch and its MR expose the existing job as
@@ -99,9 +112,10 @@ The tenant-isolation xfail remains outside this checkpoint and unchanged.
No instantiation request, application Pod or TF-SDK call is part of onboarding.
The default health selection and all original default-suite test names remain.

Copy `profile.example.json` outside tracked source and replace the SRM
placeholder with a reviewed `repository:tag@sha256:digest`. OEG/FM defaults
are inspected published candidates, not moving tags. The profile selects one full Helm chart commit. The controller fetches that
For another candidate, copy a runnable profile and review all its artifact
references. The example templates contain explicit chart/component placeholders;
fill every placeholder before use. Component images use
`repository:tag@sha256:digest`. The profile selects one full Helm chart commit. The controller fetches that
exact revision before cluster creation and records the archive hash in
`chart.json`; the controller image contains no independent chart revision. The pinned Linux
amd64 tools are checksum-verified at image build; apt/Python transitive
@@ -216,9 +230,10 @@ before requiring OEG ready state. Module-scoped fixtures own one fresh workload
for the selected extensions; assertions do not consume state created by other
test functions. Each independent invocation creates and cleans its own resources.

For workload and later checkpoints, adapt `profile.application.example.json`.
It selects the reviewed bootstrap-capable chart and an explicit in-cluster
workload control path. A single bootstrap declaration feeds the existing
For workload and later checkpoints, copy the runnable Release 2 profile or fill
all placeholders in `profile.application.example.json`. Select a reviewed
bootstrap-capable chart and an explicit in-cluster workload control path.
A single bootstrap declaration feeds the existing
Ansible producer, Helm mounts/RBAC and SDK-loaded SRM registry. The acceptance
profile validates running OEG/SRM image identity and the installed SDK contents
fingerprint before creating a workload. The namespace must be dedicated and
+3 −3
Changes for ci/lab/profile.application.example.json: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
{
  "chart_revision": "04a5b7b2fd50ea2b2a321966ca6437a369cdadbf",
  "chart_revision": "REPLACE_WITH_REVIEWED_CHART_COMMIT_SHA",
  "images": {
    "oeg": "labs.etsi.org:5050/oop/code/open-exposure-gateway:ci-develop-68ff79a6@sha256:f555ea3829af4f192dcc88e818f88077121d60e1eff7b93bc754b21c3fd6dc35",
    "fm": "labs.etsi.org:5050/oop/code/federation-manager:ci-develop-853bb20f@sha256:f41f2d0a972a76f49be074636bb459e1ac244471601900460c883aa5710cf998",
    "oeg": "REPLACE_WITH_REVIEWED_OEG_REPOSITORY:TAG@sha256:DIGEST",
    "fm": "REPLACE_WITH_REVIEWED_FM_REPOSITORY:TAG@sha256:DIGEST",
    "srm": "REPLACE_WITH_REVIEWED_SRM_REPOSITORY:TAG@sha256:DIGEST"
  },
  "local_images": [],
+3 −3
Changes for ci/lab/profile.example.json: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
{
  "chart_revision": "1d0dd82231310f083e0a8411a9f81cbe2fc99da2",
  "chart_revision": "REPLACE_WITH_REVIEWED_CHART_COMMIT_SHA",
  "images": {
    "oeg": "labs.etsi.org:5050/oop/code/open-exposure-gateway:ci-develop-68ff79a6@sha256:f555ea3829af4f192dcc88e818f88077121d60e1eff7b93bc754b21c3fd6dc35",
    "fm": "labs.etsi.org:5050/oop/code/federation-manager:ci-develop-853bb20f@sha256:f41f2d0a972a76f49be074636bb459e1ac244471601900460c883aa5710cf998",
    "oeg": "REPLACE_WITH_REVIEWED_OEG_REPOSITORY:TAG@sha256:DIGEST",
    "fm": "REPLACE_WITH_REVIEWED_FM_REPOSITORY:TAG@sha256:DIGEST",
    "srm": "REPLACE_WITH_REVIEWED_SRM_REPOSITORY:TAG@sha256:DIGEST"
  },
  "local_images": []