Loading README.md +21 −13 Changes for README.md: 21 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -2,15 +2,27 @@ A Python, FastAPI-based microservice to work as the brains of ETSI SDG OpenOP. ## WIP WIP **Architecture:** [`srm/index.md`](https://labs.etsi.org/rep/oop/architecture/-/blob/develop/srm/index.md) ## Running locally ## Release 2 control-path bootstrap SRM needs PostgreSQL and NATS. Copy `.env.example` to `.env` and point it at them, then: ```bash make run # uvicorn on :8000, API docs at /docs make test # pytest make precommit # lint, format and the other pre-commit hooks make type # mypy ``` The Docker image serves on port 8080. It is deployed with the `srm` chart of `oop-platform-chart` in the helm repository. ## Control-path bootstrap Set `BOOTSTRAP_TOPOLOGY_PATH` to one mounted, complete SDK bootstrap document. SRM loads it once through `BootstrapTopology`, builds the runtime registry from its operational entries, and passes the same object through the existing four- its operational entries, and passes the same object through SRM's four- method discovery bridge. The SDK owns parsing and adapter-kind construction. SRM keeps topology persistence, selection and placement. Loading @@ -20,17 +32,13 @@ methods reject another target with `INVALID_TARGET_REF` before credentials or backend calls. Duplicate registry refs and conflicting config identities fail before any instance is constructed. Without `BOOTSTRAP_TOPOLOGY_PATH`, the existing empty-topology health startup remains available. Existing create-missing topology seeding is unchanged; restarting does not reconcile edits to existing database records. Without `BOOTSTRAP_TOPOLOGY_PATH`, SRM starts with an empty topology. Topology seeding only creates missing records; restarting does not reconcile edits to existing database records. Use SDK 2.0.0rc3 with the matching chart/configuration migration. Kubernetes Use the SDK version `pyproject.toml` pins (`openop-tfsdk`) with the matching chart and configuration. Kubernetes paths require explicit kubeconfig/context/namespace or explicit in-cluster mode and namespace. Deployment tooling owns protected credential mounts and the writable SDK runtime directory. See `tests/fixtures/tf_sdk_bootstrap_example.yaml`. SDK status observation and SRM termination behavior remain unchanged. Broader UNKNOWN handling remains a separate follow-up. The SDK artifact and matching component revisions must be available before merging/deploying this change. Upgrade or roll back SDK, SRM and deployment configuration together. Upgrade or roll back SDK, SRM and deployment configuration together. Loading
README.md +21 −13 Changes for README.md: 21 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -2,15 +2,27 @@ A Python, FastAPI-based microservice to work as the brains of ETSI SDG OpenOP. ## WIP WIP **Architecture:** [`srm/index.md`](https://labs.etsi.org/rep/oop/architecture/-/blob/develop/srm/index.md) ## Running locally ## Release 2 control-path bootstrap SRM needs PostgreSQL and NATS. Copy `.env.example` to `.env` and point it at them, then: ```bash make run # uvicorn on :8000, API docs at /docs make test # pytest make precommit # lint, format and the other pre-commit hooks make type # mypy ``` The Docker image serves on port 8080. It is deployed with the `srm` chart of `oop-platform-chart` in the helm repository. ## Control-path bootstrap Set `BOOTSTRAP_TOPOLOGY_PATH` to one mounted, complete SDK bootstrap document. SRM loads it once through `BootstrapTopology`, builds the runtime registry from its operational entries, and passes the same object through the existing four- its operational entries, and passes the same object through SRM's four- method discovery bridge. The SDK owns parsing and adapter-kind construction. SRM keeps topology persistence, selection and placement. Loading @@ -20,17 +32,13 @@ methods reject another target with `INVALID_TARGET_REF` before credentials or backend calls. Duplicate registry refs and conflicting config identities fail before any instance is constructed. Without `BOOTSTRAP_TOPOLOGY_PATH`, the existing empty-topology health startup remains available. Existing create-missing topology seeding is unchanged; restarting does not reconcile edits to existing database records. Without `BOOTSTRAP_TOPOLOGY_PATH`, SRM starts with an empty topology. Topology seeding only creates missing records; restarting does not reconcile edits to existing database records. Use SDK 2.0.0rc3 with the matching chart/configuration migration. Kubernetes Use the SDK version `pyproject.toml` pins (`openop-tfsdk`) with the matching chart and configuration. Kubernetes paths require explicit kubeconfig/context/namespace or explicit in-cluster mode and namespace. Deployment tooling owns protected credential mounts and the writable SDK runtime directory. See `tests/fixtures/tf_sdk_bootstrap_example.yaml`. SDK status observation and SRM termination behavior remain unchanged. Broader UNKNOWN handling remains a separate follow-up. The SDK artifact and matching component revisions must be available before merging/deploying this change. Upgrade or roll back SDK, SRM and deployment configuration together. Upgrade or roll back SDK, SRM and deployment configuration together.