How nephio-project/nephio works
Nephio automates network-function and infrastructure provisioning through Kubernetes controllers, package-rendering functions, and provisioning APIs. A typical request is accepted and validated, rendered as a package variant, then monitored as cluster resources are created. The repository also contains independent KRM functions for configuration and network-resource generation, and an operator northbound interface with selectable storage. The README describes the platform broadly; the component wiring below is based on the tree and sampled excerpts, so uncertain function-to-function sequencing is not shown.
Main entry points: reconcilers Nephio Reconcilers · manager.py Request Handler · provisioning_request_controller.py Cluster Provisioning · services NBI Services
Components 21
Provisioning APIs
- O2 IMS API
operators/o2ims-operator/controllers/northbound_restapi.py - Request Handler
operators/o2ims-operator/controllers/manager.py - Request Validation
operators/o2ims-operator/controllers/provisioning_request_validation_controller.py - Cluster Provisioning
operators/o2ims-operator/controllers/provisioning_request_controller.py - FOCOM NBI
operators/focom-operator/internal/nbi/handlers/router.go - NBI Services
operators/focom-operator/internal/nbi/services - NBI Validation
operators/focom-operator/internal/nbi/validation - NBI Storage
operators/focom-operator/internal/nbi/storage - FOCOM Storage Model
operators/focom-operator/internal/nbi/models/storage.go
Kubernetes Controllers
- FOCOM Reconciler
operators/focom-operator/internal/controller/focomprovisioningrequest_controller.go - Controller Manager
operators/nephio-controller-manager/main.go - Nephio Reconcilers
controllers/pkg/reconcilers
Package Functions
- Network KRM Functions
krm-functions/ipam-fn/fn/function.go - NF Deployment Functions
krm-functions/nfdeploy-fn/fn/function.go - Configuration Functions
krm-functions/configinject-fn/fn/function.go - Kustomize Resources
krm-functions/gen-kustomize-res/main.go
Platform Integrations
- Porch Client
controllers/pkg/porch/client/client.go - Git Providers
controllers/pkg/git/client.go
Other components
- Provisioning Client
- Kubernetes API
- Porch Package System
Connections 21
- Provisioning Client → O2 IMS API: submits request
- O2 IMS API → Request Handler: dispatches
- Request Handler → Request Validation: validates
- Request Handler → Cluster Provisioning: starts provisioning
- Cluster Provisioning → Porch Package System: creates package variant
- Cluster Provisioning → Kubernetes API: checks cluster status
- FOCOM NBI → NBI Services: dispatches requests
- NBI Services → NBI Validation: validates data
- NBI Services → NBI Storage: reads and writes
- NBI Storage → FOCOM Storage Model: stores revisions
- Controller Manager → Nephio Reconcilers: sets up
- Controller Manager → Porch Client: creates clients
- Nephio Reconcilers → Kubernetes API: reconciles resources
- Nephio Reconcilers → Porch Client: uses package APIs
- Nephio Reconcilers → Git Providers: accesses repositories
- FOCOM Reconciler → Kubernetes API: reads and updates
- FOCOM Reconciler → FOCOM NBI: builds remote client
- Network KRM Functions → Kubernetes API: uses IPAM proxy
- NF Deployment Functions → Kubernetes API: renders deployment resources
- Configuration Functions → Kubernetes API: transforms resource lists
- Kustomize Resources → Kubernetes API: updates resource list