Skip to content

Commit

Permalink
Arch diagrams (#801)
Browse files Browse the repository at this point in the history
* fix pic order

in a previous PR the order of the arch docs got mixed up. Back in correct places now

* clarify k8sd diagram

fix typos in diagram and help clarify in text and on diagram difference in deploying with Juju vs snap
  • Loading branch information
nhennigan authored Nov 15, 2024
1 parent 3528193 commit b4055df
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
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

0 comments on commit b4055df

Please sign in to comment.