Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arch diagrams #801

Merged
merged 2 commits into from
Nov 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/src/assets/k8sd-component.puml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ Container(K8sSnapDistribution.State, "State", $techn="", $descr="Datastores hold
Container(K8sSnapDistribution.KubernetesServices, "Kubernetes Services", $techn="", $descr="API server, kubelet, kube-proxy, scheduler, kube-controller", $tags="", $link="")

Container_Boundary("K8sSnapDistribution.K8sd_boundary", "K8sd", $tags="") {
Component(K8sSnapDistribution.K8sd.CLI, "CLI", $techn="CLI", $descr="The CLI the offered", $tags="", $link="")
Component(K8sSnapDistribution.K8sd.CLI, "CLI", $techn="CLI", $descr="The CLI offered", $tags="", $link="")
Component(K8sSnapDistribution.K8sd.APIviaHTTP, "API via HTTP", $techn="REST", $descr="The API interface offered", $tags="", $link="")
Component(K8sSnapDistribution.K8sd.CLustermanagement, "CLuster management", $techn="", $descr="Management of the cluster with the help of MicroCluster", $tags="", $link="")
Component(K8sSnapDistribution.K8sd.CLustermanagement, "Cluster management", $techn="", $descr="Management of the cluster with the help of MicroCluster", $tags="", $link="")
}

Rel(K8sAdmin, K8sSnapDistribution.K8sd.CLI, "Sets up and configured the cluster", $techn="", $tags="", $link="")
Rel(CharmK8s, K8sSnapDistribution.K8sd.APIviaHTTP, "Orchestrates the lifecycle management of K8s", $techn="", $tags="", $link="")
Rel(CharmK8s, K8sSnapDistribution.K8sd.APIviaHTTP, "Orchestrates the lifecycle management of K8s when deployed with Juju", $techn="", $tags="", $link="")
Rel(K8sSnapDistribution.K8sd.CLustermanagement, K8sSnapDistribution.KubernetesServices, "Configures", $techn="", $tags="", $link="")
Rel(K8sSnapDistribution.KubernetesServices, K8sSnapDistribution.State, "Uses by default", $techn="", $tags="", $link="")
Rel(K8sSnapDistribution.K8sd.CLustermanagement, K8sSnapDistribution.State, "Keeps state in", $techn="", $tags="", $link="")
Expand Down
15 changes: 8 additions & 7 deletions docs/src/snap/reference/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ current design of {{product}}, following the [C4 model].
This overview of {{product}} demonstrates the interactions of
Kubernetes with users and with other systems.

![cluster2][]
![cluster5][]

Two actors interact with the Kubernetes snap:

Expand All @@ -19,7 +19,8 @@ Two actors interact with the Kubernetes snap:
access to the cluster. That initial user is able to configure the cluster to
match their needs and of course create other users that may or may not have
admin privileges. The K8s admin is also able to maintain workloads running
in the cluster.
in the cluster. If you deploy {{product}} from a snap, this is how the cluster
is manually orchestrated.

- **K8s user**: A user consuming the workloads hosted in the cluster. Users do
not have access to the Kubernetes API server. They need to access the cluster
Expand Down Expand Up @@ -51,7 +52,7 @@ distribution. We have identified the following:

Looking more closely at what is contained within the K8s snap itself:

![cluster3][]
![cluster1][]

The `k8s` snap distribution includes the following:

Expand All @@ -72,7 +73,7 @@ The `k8s` snap distribution includes the following:
K8sd is the component that implements and exposes the operations functionality
needed for managing the Kubernetes cluster.

![cluster4][]
![cluster2][]

At the core of the `k8sd` functionality we have the cluster manager that is
responsible for configuring the services, workload and features we deem
Expand Down Expand Up @@ -104,7 +105,7 @@ This functionality is exposed via the following interfaces:
Canonical `k8s` Charms encompass two primary components: the [`k8s` charm][K8s
charm] and the [`k8s-worker` charm][K8s-worker charm].

![cluster1][]
![cluster4][]

Charms are instantiated on a machine as a Juju unit, and a collection of units
constitutes an application. Both `k8s` and `k8s-worker` units are responsible
Expand Down Expand Up @@ -139,9 +140,9 @@ and flexible {{product}} deployment managed through Juju.
<!-- IMAGES -->

[cluster1]: https://assets.ubuntu.com/v1/dfc43753-cluster1.svg
[cluster2]: https://assets.ubuntu.com/v1/0e486a5d-cluster2.svg
[cluster3]: https://assets.ubuntu.com/v1/24fd1773-cluster3.svg
[cluster2]: https://assets.ubuntu.com/v1/f634743e-k8sd.svg
[cluster4]: https://assets.ubuntu.com/v1/24fd1773-cluster4.svg
[cluster5]: https://assets.ubuntu.com/v1/bcfe150f-overview.svg

<!-- LINKS -->
[C4 model]: https://c4model.com/
Expand Down
Loading