Skip to content

Ansible automation

Version 2.0.0 (tag v2.0.0-release, 2026-10-23)
Repository oop/deploy/ansible
Changes r1-final...v2.0.0-release

The Ansible automation gives each operator in an inventory its own OpenOP platform on its own Kubernetes cluster, using the oop-platform 2.0.0 Helm chart. It then federates the operators and runs end-to-end tests across them. A disposable lab runs the same tests locally and in GitLab CI.

New in this release

The playbooks are under ansible/ in the repository:

Step Playbook What it does
0 (optional) playbooks/infrastructure/k3s/deploy.yml Installs k3s (v1.36.5+k3s1 by default) and Helm on plain Ubuntu VMs
1 playbooks/scenarios/r2_existing_cluster/deploy.yml Per operator: namespace, encryption keys, the oop-platform release and the SRM bootstrap
2 playbooks/scenarios/r2_existing_cluster/federate.yml Registers partners, grants agreements and creates federations
3 playbooks/scenarios/r2_existing_cluster/e2e.yml Runs the end-to-end tests
– playbooks/scenarios/r2_existing_cluster/undeploy.yml Removes the Helm release
– playbooks/infrastructure/k3s/undeploy.yml Deletes the k3s cluster (needs -e k3s_confirm_uninstall=true)

Steps 0 to 3 can be run again safely. Each platform answers on four NodePorts: Keycloak 30081, Portal 30082, OEG 32263 and the FM EWBI 30989.

  • SRM bootstrap from the inventory. The role builds the whole TF-SDK bootstrap and its credential mounts from oop_platform_bootstrap.
  • End-to-end tests (tests/r2_e2e/) cover platform security, the application catalogue, the workload lifecycle (container and Helm), QoD, location and Traffic Influence through the EURECOM NEF, and federation between two operators. -e e2e_suite=onboarding runs the catalogue tests alone.
  • Disposable lab (ci/run_platform_lab.sh) with three variants: core platform, Helm applications, and the EURECOM network with a simulated device. It runs the same way locally and in CI.
  • Release feature report. A CI job builds an HTML and JSON matrix of the features each lab variant proved.
  • Reading material: E2E tests, explained, the check catalogue and the TF-SDK support matrix.

To use it, follow Deploy with Ansible.

Breaking changes

  • The Release 1 automation is removed: kind, the MongoDB-based components, i2Edge and lite2edge, the Artefact Manager, Zot, Homer, Prometheus, DEMAS and the docker-compose stacks. It stays available at tag r1-final.
  • New inventory. Start from inventory/r2.example.yml; Release 1 inventories do not apply.
  • One source for SRM control paths: oop_platform_bootstrap. Do not also pass controlPaths, topology or controlPathCredentials in chart values.
  • No image builds. Every component image must already exist, pinned by tag.

Upgrade notes

  • Copy inventory/r2.example.yml to inventory/r2.local.yml, which git ignores.
  • Install requirements.txt (Ansible 13, ansible-core 2.20) and the kubernetes.core collection.
  • Create the Secrets that oop_platform_bootstrap refers to in the SRM namespace before deploying.
  • For in-cluster workloads, set workloads.namespaces. Declaring a control path does not grant RBAC permissions.

Known limitations

  • No TLS, DNS, ingress or container registry is set up.
  • The network checks prove the subscriptions sent to the NEF and their cleanup, not radio QoS, packet steering, notification delivery or positioning accuracy.
  • Not covered by the lab: Open5GS and Open5GCore, browser login, the Portal, AI², the Data Lab, federation (run e2e.yml on your own clusters for it) and multi-cluster runs.
  • The bootstrap is not checked against backend health or credential validity.