forked from nephio-project/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlevel2-nephio-container.puml
62 lines (49 loc) · 3.77 KB
/
level2-nephio-container.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
@startuml nephio-container
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
' External actors
Person(admin, "Administrator", "Administrator of networks, cloud infrastructure or both")
Boundary(service_orchestrators, "Service Orchestration") {
System_Ext(core_service_orchestrator, "Core Service Orchestrator", "Core Domain service orchestrator")
System_Ext(oran_service_orchestrator, "O-RAN Service Orchestrator (SMO)", "RAN domain service orchestrator")
}
Lay_R(admin, service_orchestrators)
System_Ext(cicd_system, "GitOps, CI/CD", "Verifies workloads and packages before onboarding to Nephio, or using Nephio as part of their operations")
System_Boundary(nephio, "Nephio") {
Container(web_ui, "Web UI", "Backstage-based web application providing Nephio Packages management via web browser")
Container(porch, "Porch", "kpt as a Service", "Package Orchestration Server is a K8s extension apiserver which manages the lifecycle of KRM configuration packages")
Container(nephio_core, "Nephio Core", "K8s Operators", "Responsible for handling different aspects of workload and cluster specialisation and actuation")
Container(K8s_api, "Kubernetes API Server", "K8s Control Plane", "A component of the Kubernetes control plane that exposes the Kubernetes API. The API server is the front end for the Kubernetes control plane")
Container_Ext(configsync, "Reconciliation Engine", "GitOps Engine", "GitOps service which lets administrators deploy configurations from a source of truth, with the flexibility to support one or many clusters in a hybrid or multi-cloud environment")
ContainerDb_Ext(gitrepomgr, "Git Repository Manager", "git", "System for hosting git repositories and supporting remote branch management and merging")
Container(network_function_controllers, "Network Function Controllers", "K8s Operators", "Manage the lifecycle of Network Functions; Nephio currently supports OAI Core and RAN, and Free5GC")
}
' Southbound dependencies
System_Ext(supported_nfs, "Supported Network Functions", "Network functions supported by Nephio (currently free5gc and OAI, with other vendors implementing support independently)")
Boundary(infrastructure, "Infrastructure") {
System_Ext(clouds, "Cloud Providers", "Providers of Kubernetes clusters, such as GCP / Openshift and local kind clusters")
System_Ext(network_fabric, "Network Fabric", "Data Center network fabric elements, such as Nokia SR Linux")
}
' Actor - nephio relationships
Rel_D(admin, K8s_api, "Create Network Topology, K8s Cluster and Network Function Intent")
Rel_D(admin, web_ui, "Manage Lifecycle of Nephio Blueprints and Packages")
Rel_D(service_orchestrators, K8s_api, "Generate Network Topology, K8s Cluster and Network Function Intent")
Rel_L(cicd_system, K8s_api, "Reconcile, Integrate or Deploy external artifacts")
Lay_L(K8s_api, cicd_system)
Rel_D(web_ui, K8s_api, "Use the K8s API to read/write Porch resources")
' Porch relations
BiRel_L(porch, K8s_api, "Manage PackagesVariants / PackageRevisions API")
Rel_D(porch, gitrepomgr, "Lifecycle KRM packages")
' ConfigSync relations
Rel_L(configsync, gitrepomgr, "Reconcile K8s resources")
Rel_U(configsync, K8s_api, "Apply K8s resources")
' Nephio core relations
BiRel_U(nephio_core, K8s_api, "Consume and Create K8s resources")
BiRel_U(network_function_controllers, K8s_api, "Consume and Create K8s resources")
Lay_L(network_function_controllers, configsync)
Lay_L(nephio_core, network_function_controllers)
' Nephio - managed entity relationships
Rel_D(nephio_core, infrastructure, "Manage Network Topology and K8s Cluster Lifecycle (e.g. O2-IMS)")
Rel_D(network_function_controllers, supported_nfs, "Manage Network Functions Lifecycle")
' Workload relations
Rel_D(supported_nfs, clouds, "Execute on cloud infrastructure")
@enduml