From 2992046463a11e16940a58f4c7eb5e2b4b10fb91 Mon Sep 17 00:00:00 2001 From: Simon Beck Date: Thu, 5 Dec 2024 11:13:09 +0100 Subject: [PATCH] Add docs about SLI Prober with split control plane --- ...cture.adoc => control-plane-pitfalls.adoc} | 2 +- .../reference/sli-prober-architecture.adoc | 36 +++++++++++++++++++ docs/modules/ROOT/partials/nav.adoc | 4 ++- 3 files changed, 40 insertions(+), 2 deletions(-) rename docs/modules/ROOT/pages/reference/{control-plane-architecture.adoc => control-plane-pitfalls.adoc} (97%) create mode 100644 docs/modules/ROOT/pages/reference/sli-prober-architecture.adoc diff --git a/docs/modules/ROOT/pages/reference/control-plane-architecture.adoc b/docs/modules/ROOT/pages/reference/control-plane-pitfalls.adoc similarity index 97% rename from docs/modules/ROOT/pages/reference/control-plane-architecture.adoc rename to docs/modules/ROOT/pages/reference/control-plane-pitfalls.adoc index bfaa2742..ecbbdf3c 100644 --- a/docs/modules/ROOT/pages/reference/control-plane-architecture.adoc +++ b/docs/modules/ROOT/pages/reference/control-plane-pitfalls.adoc @@ -1,4 +1,4 @@ -= Separate Control Plane from Service Clusters += Pitfalls This page shows the pitfalls and gotchas that we need to keep in mind if we develop for a split architecture. diff --git a/docs/modules/ROOT/pages/reference/sli-prober-architecture.adoc b/docs/modules/ROOT/pages/reference/sli-prober-architecture.adoc new file mode 100644 index 00000000..8226c7eb --- /dev/null +++ b/docs/modules/ROOT/pages/reference/sli-prober-architecture.adoc @@ -0,0 +1,36 @@ += SLI Prober + +The SLI-Prober connects to each instance and will report on its SLI. +For that it needs to reconcile the composites of each instance, to get the connection details. +This way we ensure that the prober probes exactly what the customer gets. + +To avoid issues with potentially checking thousands of instances with a single prober, we deploy the prober to each service cluster. + +In order for the prober to work correctly it needs to reconcile two types of resources: + +* The composites +* `UpgradeJobs` + +The composites are reconciled to detect all the actual instances and their connection details. +They are matched against the local service cluster and if the instnace namespace exists, then it will start to probe the given instance. +`UpgradeJobs` on the other hand will track the state of maintenance on the service cluster where the prober and thus the instances run. + +By default, it assumes that it's running in converged mode +To enable the split configuration a `KUBECONFIG` environment variable has to be set on the prober pod. +With that all reconcilers that check the composites will connect to that cluster. +An exception is the reconciler for the `UpgradeJobs` it will connect to the local cluster in either way. +It's possible to override the kubeconfig for the `UpgradeJob` reconciler for debug purposes. + +[mermaid,diagram,png] +.... +architecture-beta + group cp(cloud)[Control Plane] + group sc(cloud)[Service Cluster] + + service sli(server)[SLI Prober] in sc + service cr(disk)[Composites] in cp + service uj(disk)[UpgradeJobs] in sc + + sli:B --> T:cr + sli:L --> R:uj +.... diff --git a/docs/modules/ROOT/partials/nav.adoc b/docs/modules/ROOT/partials/nav.adoc index 183c207f..25d2d45d 100644 --- a/docs/modules/ROOT/partials/nav.adoc +++ b/docs/modules/ROOT/partials/nav.adoc @@ -10,7 +10,9 @@ ** xref:app-catalog:ROOT:reference/service-maturity.adoc[] ** xref:app-catalog:ROOT:reference/framework-requirements.adoc[] ** xref:app-catalog:ROOT:reference/slareports.adoc[] -** xref:app-catalog:ROOT:reference/control-plane-architecture.adoc[] +** Separate Control Plane from Service Clusters +*** xref:app-catalog:ROOT:reference/control-plane-pitfalls.adoc[] +*** xref:app-catalog:ROOT:reference/sli-prober-architecture.adoc[] ** xref:app-catalog:ROOT:reference/ci-cd.adoc[] ** xref:app-catalog:ROOT:reference/quality-requirements.adoc[Quality Requirements] *** xref:app-catalog:ROOT:reference/quality-requirements/maintainability/readiness-standards.adoc[Maintainability]