diff --git a/docs/Dockerfile b/docs/Dockerfile index 20697af3b970..03e493a6dfcf 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -14,25 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Recommended usage: -# -# - Run an ephemeral container -# - Mount the current working directory into the container. -# - Run the entrypoint as the user invoking docker run. Otherwise the output -# files will be owned by root, the default user. -# -# - Example: -# docker run \ -# --rm \ -# --volume ${PWD}:/figures \ -# --user $(shell id --user):$(shell id --group) \ -# ${IMAGE_TAG} \ -# -v /figures/*.plantuml - +# To generate diagrams run 'make diagrams' in the docs/ folder. FROM maven:3-jdk-8 -RUN apt-get update && apt-get install -y --no-install-recommends graphviz fonts-symbola fonts-wqy-zenhei && rm -rf /var/lib/apt/lists/* -RUN wget -O /plantuml.jar http://sourceforge.net/projects/plantuml/files/plantuml.1.2019.6.jar/download +RUN apt-get update && apt-get install -y --no-install-recommends graphviz=2.42.2-5 fonts-symbola=2.60-1.1 fonts-wqy-zenhei=0.9.45-8 && rm -rf /var/lib/apt/lists/* +RUN wget -O /plantuml.jar https://github.com/plantuml/plantuml/releases/download/v1.2022.6/plantuml-1.2022.6.jar # By default, java writes a 'hsperfdata_' directory in the work dir. # This directory is not needed; to ensure it is not written, we set `-XX:-UsePerfData` diff --git a/docs/Makefile b/docs/Makefile index 8aeeb72fa5ad..16985daf1205 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -12,10 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +SHELL:=/usr/bin/env bash -SOURCES := $(shell find ${ROOT_DIR} -name \*.plantuml) -DIAGRAMS := $(SOURCES:%.plantuml=%.png) +.DEFAULT_GOAL:=help + +DIAGRAM_SRCS := $(call rwildcard,.,*.md,*.plantuml) # Hosts running SELinux need :z added to volume mounts SELINUX_ENABLED := $(shell cat /sys/fs/selinux/enforce 2> /dev/null || echo 0) @@ -24,13 +25,26 @@ ifeq ($(SELINUX_ENABLED),1) DOCKER_VOL_OPTS?=:z endif +##@ PlantUML diagrams + .PHONY: diagrams -diagrams: $(DIAGRAMS) - -%.png: %.plantuml - docker run \ - --rm \ - --volume ${ROOT_DIR}:/workdir$(DOCKER_VOL_OPTS) \ - --user $(shell id -u):$(shell id -g) \ - k8s.gcr.io/cluster-api/plantuml:1.2019.6 \ - -v /workdir/$(shell echo '$^' | sed -e 's,.*docs/,,g' ) +diagrams: plantuml-builder diagrams-book diagrams-proposals ## Make all diagrams + +.PHONY: diagrams-book +diagrams-book: plantuml-builder ## Make all book diagrams + -docker run -u $(UID):$(GID) -v $(abspath .):/docs$(DOCKER_VOL_OPTS) plantuml-builder /docs/book/**/*.md + -docker run -u $(UID):$(GID) -v $(abspath .):/docs$(DOCKER_VOL_OPTS) plantuml-builder /docs/book/**/*.plantuml + +.PHONY: diagrams-proposals +diagrams-proposals: plantuml-builder ## Make all proposals diagrams + -docker run -u $(UID):$(GID) -v $(abspath .):/docs$(DOCKER_VOL_OPTS) plantuml-builder /docs/proposals/**/*.md + -docker run -u $(UID):$(GID) -v $(abspath .):/docs$(DOCKER_VOL_OPTS) plantuml-builder /docs/proposals/**/*.plantuml + +.PHONY: plantuml-builder +plantuml-builder: Dockerfile ## Make diagram build container + docker build -f Dockerfile -t "plantuml-builder" . + +##@ general + +help: ## Display this help + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) diff --git a/docs/book/src/images/bootstrap-controller.png b/docs/book/src/images/bootstrap-controller.png index bca147d69c7f..de7dbd11c0e1 100644 Binary files a/docs/book/src/images/bootstrap-controller.png and b/docs/book/src/images/bootstrap-controller.png differ diff --git a/docs/book/src/images/bootstrap-provider.png b/docs/book/src/images/bootstrap-provider.png index 7e82cb958ab0..c7eff2d583bb 100644 Binary files a/docs/book/src/images/bootstrap-provider.png and b/docs/book/src/images/bootstrap-provider.png differ diff --git a/docs/book/src/images/cluster-admission-cluster-controller.png b/docs/book/src/images/cluster-admission-cluster-controller.png index eb42f1181a70..4678779b73da 100644 Binary files a/docs/book/src/images/cluster-admission-cluster-controller.png and b/docs/book/src/images/cluster-admission-cluster-controller.png differ diff --git a/docs/book/src/images/cluster-admission-machine-controller.png b/docs/book/src/images/cluster-admission-machine-controller.png index 160f91d4d882..4952fe2187fe 100644 Binary files a/docs/book/src/images/cluster-admission-machine-controller.png and b/docs/book/src/images/cluster-admission-machine-controller.png differ diff --git a/docs/book/src/images/cluster-admission-machinedeployment-controller.png b/docs/book/src/images/cluster-admission-machinedeployment-controller.png index 96829197a92a..76fdab31da2d 100644 Binary files a/docs/book/src/images/cluster-admission-machinedeployment-controller.png and b/docs/book/src/images/cluster-admission-machinedeployment-controller.png differ diff --git a/docs/book/src/images/cluster-admission-machinepool-controller.png b/docs/book/src/images/cluster-admission-machinepool-controller.png index ac8d4eb54bbc..b2f347f501d9 100644 Binary files a/docs/book/src/images/cluster-admission-machinepool-controller.png and b/docs/book/src/images/cluster-admission-machinepool-controller.png differ diff --git a/docs/book/src/images/cluster-admission-machineset-controller.png b/docs/book/src/images/cluster-admission-machineset-controller.png index 903ae886a16c..3b70a8daa736 100644 Binary files a/docs/book/src/images/cluster-admission-machineset-controller.png and b/docs/book/src/images/cluster-admission-machineset-controller.png differ diff --git a/docs/book/src/images/cluster-infra-provider.png b/docs/book/src/images/cluster-infra-provider.png index 5ef8f5f0bf6b..d8bbca0ca5e7 100644 Binary files a/docs/book/src/images/cluster-infra-provider.png and b/docs/book/src/images/cluster-infra-provider.png differ diff --git a/docs/book/src/images/cluster-resource-set-controller.png b/docs/book/src/images/cluster-resource-set-controller.png index 979c34643dfb..fa456a18010e 100644 Binary files a/docs/book/src/images/cluster-resource-set-controller.png and b/docs/book/src/images/cluster-resource-set-controller.png differ diff --git a/docs/book/src/images/cluster-topology-controller.png b/docs/book/src/images/cluster-topology-controller.png index f98b31efdf46..93e2eedd2e37 100644 Binary files a/docs/book/src/images/cluster-topology-controller.png and b/docs/book/src/images/cluster-topology-controller.png differ diff --git a/docs/book/src/images/control-plane-controller.png b/docs/book/src/images/control-plane-controller.png index b2aace97a5d0..b768a8f04d5a 100644 Binary files a/docs/book/src/images/control-plane-controller.png and b/docs/book/src/images/control-plane-controller.png differ diff --git a/docs/book/src/images/kubeadm-control-plane-machines-resources.png b/docs/book/src/images/kubeadm-control-plane-machines-resources.png index 4138b8e98e62..91784a6b66ac 100644 Binary files a/docs/book/src/images/kubeadm-control-plane-machines-resources.png and b/docs/book/src/images/kubeadm-control-plane-machines-resources.png differ diff --git a/docs/book/src/images/machine-infra-provider.png b/docs/book/src/images/machine-infra-provider.png index 1cd8983c3fa8..38ef7da809c4 100644 Binary files a/docs/book/src/images/machine-infra-provider.png and b/docs/book/src/images/machine-infra-provider.png differ diff --git a/docs/book/src/images/machinehealthcheck-controller.png b/docs/book/src/images/machinehealthcheck-controller.png index 1c9a60d4478f..38672cd8f747 100644 Binary files a/docs/book/src/images/machinehealthcheck-controller.png and b/docs/book/src/images/machinehealthcheck-controller.png differ diff --git a/docs/book/src/images/management-workload-same-cluster.png b/docs/book/src/images/management-workload-same-cluster.png index 511771e42214..5e25f3bba209 100644 Binary files a/docs/book/src/images/management-workload-same-cluster.png and b/docs/book/src/images/management-workload-same-cluster.png differ diff --git a/docs/book/src/images/management-workload-separate-clusters.png b/docs/book/src/images/management-workload-separate-clusters.png index 792dcc664dde..325fe5802af9 100644 Binary files a/docs/book/src/images/management-workload-separate-clusters.png and b/docs/book/src/images/management-workload-separate-clusters.png differ diff --git a/docs/book/src/images/runtime-sdk-topology-mutation.plantuml b/docs/book/src/images/runtime-sdk-topology-mutation.plantuml index ce7290c5487d..45c9fd504406 100644 --- a/docs/book/src/images/runtime-sdk-topology-mutation.plantuml +++ b/docs/book/src/images/runtime-sdk-topology-mutation.plantuml @@ -26,7 +26,7 @@ activate "API Server" "API Server" -> "Cluster Topology Controller": deactivate "API Server" -group Compute desired State +group #FFFFFFCC Compute desired State "Cluster Topology Controller" -> "Cluster Topology Controller": Compute desired State loop Ordered list of Patches alt diff --git a/docs/book/src/images/runtime-sdk-topology-mutation.png b/docs/book/src/images/runtime-sdk-topology-mutation.png index c26f52ee782a..cd1804bea312 100644 Binary files a/docs/book/src/images/runtime-sdk-topology-mutation.png and b/docs/book/src/images/runtime-sdk-topology-mutation.png differ diff --git a/docs/book/src/images/worker-machines-resources.png b/docs/book/src/images/worker-machines-resources.png index 647335dacb5e..d710d4d91582 100644 Binary files a/docs/book/src/images/worker-machines-resources.png and b/docs/book/src/images/worker-machines-resources.png differ diff --git a/docs/proposals/images/capi-provider-operator/fig1.png b/docs/proposals/images/capi-provider-operator/fig1.png index 1f3f951769e7..2fd277f2054b 100644 Binary files a/docs/proposals/images/capi-provider-operator/fig1.png and b/docs/proposals/images/capi-provider-operator/fig1.png differ diff --git a/docs/proposals/images/capi-provider-operator/fig2.png b/docs/proposals/images/capi-provider-operator/fig2.png index aac46307be2c..9e54dc3384df 100644 Binary files a/docs/proposals/images/capi-provider-operator/fig2.png and b/docs/proposals/images/capi-provider-operator/fig2.png differ diff --git a/docs/proposals/images/cluster-class/create.plantuml b/docs/proposals/images/cluster-class/create.plantuml index 5c81b7faf121..373e1dc78524 100644 --- a/docs/proposals/images/cluster-class/create.plantuml +++ b/docs/proposals/images/cluster-class/create.plantuml @@ -16,7 +16,7 @@ end box User -> "API Server" : Create Cluster object with\n""Cluster.Spec.Managed.Class"" "API Server" --> "Cluster Controller": New Cluster -opt Required only if Cluster.Spec.Managed.Class is set +opt #FFFFFFCC Required only if Cluster.Spec.Managed.Class is set "Cluster Controller" --> "API Server": Creates the infrastructure cluster "Cluster Controller" -> "Cluster Controller": Checks for\nCluster.Spec.ControlPlaneRef opt Required only if Cluster.Spec.ControlPlaneRef is not set diff --git a/docs/proposals/images/cluster-class/create.png b/docs/proposals/images/cluster-class/create.png index 571f5a010d2f..a36482500c30 100644 Binary files a/docs/proposals/images/cluster-class/create.png and b/docs/proposals/images/cluster-class/create.png differ diff --git a/docs/proposals/images/cluster-class/update.plantuml b/docs/proposals/images/cluster-class/update.plantuml index f7a54053d30e..a25a135f25e6 100644 --- a/docs/proposals/images/cluster-class/update.plantuml +++ b/docs/proposals/images/cluster-class/update.plantuml @@ -16,7 +16,7 @@ end box User -> "API Server" : Update Cluster object with\n""Cluster.Spec.Class"" "API Server" --> "Cluster Controller": Existing Cluster -opt Required only if Cluster.Spec.Class is set +opt #FFFFFFCC Required only if Cluster.Spec.Class is set "Cluster Controller" -> "Cluster Controller": Fetches the InfrastructureCluster object\nset in Cluster.spec.infrastructureRef opt Update the InfrastructureCluster "Cluster Controller" -> "Cluster Controller": Updates InfrastructureCluster fields diff --git a/docs/proposals/images/cluster-class/update.png b/docs/proposals/images/cluster-class/update.png index e31290571739..2a09eacddb44 100644 Binary files a/docs/proposals/images/cluster-class/update.png and b/docs/proposals/images/cluster-class/update.png differ diff --git a/docs/proposals/images/cluster-spec-crds/figure1.plantuml b/docs/proposals/images/cluster-spec-crds/figure1.plantuml index 7504c678ae03..0a197b23ae86 100644 --- a/docs/proposals/images/cluster-spec-crds/figure1.plantuml +++ b/docs/proposals/images/cluster-spec-crds/figure1.plantuml @@ -21,24 +21,24 @@ end box User -> "API Server" : Create Cluster Infrastructure "API Server" -->> "Infrastructure Controller": New Provider Infrastructure -opt IF Infrastructure has no owner ref +opt #FFFFFFCC IF Infrastructure has no owner ref "Infrastructure Controller"->"Infrastructure Controller": Do Nothing end User -> "API Server": Create Cluster "API Server" -->> "Cluster Controller": New Cluster "Cluster Controller" -> "API Server": Get Infrastructure -opt Required Only if Infrastructure not seen before +opt #FFFFFFCC Required Only if Infrastructure not seen before "Cluster Controller" -> "Cluster Controller": Add Watcher for Cluster.InfrastructureRef.Kind objects end -opt Required Only if Infrastructure has no owner +opt #FFFFFFCC Required Only if Infrastructure has no owner "Cluster Controller" -> "Cluster Controller": Set Infrastructure's owner to Cluster "Cluster Controller" -> "API Server": Update Infrastructure end "API Server" -->> "Infrastructure Controller": Infrastructure update -opt Required only if Infrastructure has owner ref +opt #FFFFFFCC Required only if Infrastructure has owner ref "Infrastructure Controller" -> "API Server": Get Cluster "Infrastructure Controller" -> "Infrastructure Controller": Provision infrastructure "Infrastructure Controller" -> "Infrastructure Controller": Set Infrastructure.Status.APIEndpoint @@ -47,7 +47,7 @@ opt Required only if Infrastructure has owner ref end "API Server" -->> "Cluster Controller": Infrastructure Update -opt Only required if Infrastructure.Status.Ready is true +opt #FFFFFFCC Only required if Infrastructure.Status.Ready is true "Cluster Controller" -> "API Server": Get Cluster "Cluster Controller" -> "Cluster Controller": Set Cluster.Status.APIEndpoint = Infrastructure.Status.APIEndpoint "Cluster Controller" -> "Cluster Controller": Set Cluster.Status.InfrastructureReady true diff --git a/docs/proposals/images/cluster-spec-crds/figure1.png b/docs/proposals/images/cluster-spec-crds/figure1.png index a033a71815b4..fc5bc7f2f0fa 100644 Binary files a/docs/proposals/images/cluster-spec-crds/figure1.png and b/docs/proposals/images/cluster-spec-crds/figure1.png differ diff --git a/docs/proposals/images/cluster-spec-crds/figure2.png b/docs/proposals/images/cluster-spec-crds/figure2.png index 8cdb33d48df1..56d5441fbc62 100644 Binary files a/docs/proposals/images/cluster-spec-crds/figure2.png and b/docs/proposals/images/cluster-spec-crds/figure2.png differ diff --git a/docs/proposals/images/clusterctl-extensible-templates/pkgCalls.png b/docs/proposals/images/clusterctl-extensible-templates/pkgCalls.png index 576bc2f57cbd..4ade29a41100 100644 Binary files a/docs/proposals/images/clusterctl-extensible-templates/pkgCalls.png and b/docs/proposals/images/clusterctl-extensible-templates/pkgCalls.png differ diff --git a/docs/proposals/images/clusterctl-extensible-templates/templateClient.png b/docs/proposals/images/clusterctl-extensible-templates/templateClient.png index 76a9c408af56..c136cfeeb721 100644 Binary files a/docs/proposals/images/clusterctl-extensible-templates/templateClient.png and b/docs/proposals/images/clusterctl-extensible-templates/templateClient.png differ diff --git a/docs/proposals/images/clusterctl-extensible-templates/yamlProcessor.png b/docs/proposals/images/clusterctl-extensible-templates/yamlProcessor.png index 67d814e6281b..b752bebc237f 100644 Binary files a/docs/proposals/images/clusterctl-extensible-templates/yamlProcessor.png and b/docs/proposals/images/clusterctl-extensible-templates/yamlProcessor.png differ diff --git a/docs/proposals/images/clusterctl-redesign/config.png b/docs/proposals/images/clusterctl-redesign/config.png index d2fad700dcdb..e503b6728e1c 100644 Binary files a/docs/proposals/images/clusterctl-redesign/config.png and b/docs/proposals/images/clusterctl-redesign/config.png differ diff --git a/docs/proposals/images/clusterctl-redesign/init.png b/docs/proposals/images/clusterctl-redesign/init.png index 48d4c3bebec1..eed657851cbb 100644 Binary files a/docs/proposals/images/clusterctl-redesign/init.png and b/docs/proposals/images/clusterctl-redesign/init.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-1.plantuml b/docs/proposals/images/controlplane/controlplane-init-1.plantuml index 5353a47a7a9c..4f681d01e1c0 100644 --- a/docs/proposals/images/controlplane/controlplane-init-1.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-1.plantuml @@ -22,17 +22,17 @@ activate "Cluster API Cluster Controller" note over "Cluster API Cluster Controller": - ✅ Cluster.Status.InfrastructureReady is false\n- ✅ Cluster.Spec.ControlPlaneRef is populated\n- ✅ Cluster.Spec.ControlPlaneRef -> Status.Ready is false -opt Required only if the object hasn't been seen before +opt #FFFFFFCC Required only if the object hasn't been seen before "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Add watcher for \nCluster.Spec.ControlPlaneRef.Kind objects end -opt Required only if the infrastructure object doesn't have a Cluster owner reference +opt #FFFFFFCC Required only if the infrastructure object doesn't have a Cluster owner reference "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Set Cluster.Spec.InfrastructureRef -> OwnerReferences[0] to Cluster "Cluster API Cluster Controller"->"API Server": Patch AWSCluster "Cluster API Cluster Controller"<<--"API Server": Response end -opt Required only if the control plane object doesn't have a Cluster owner reference +opt #FFFFFFCC Required only if the control plane object doesn't have a Cluster owner reference "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Set Cluster.Spec.ControlPlaneRef -> OwnerReferences[0] to Cluster "Cluster API Cluster Controller"->"API Server": Patch KubeadmControlPlane "Cluster API Cluster Controller"<<--"API Server": Response diff --git a/docs/proposals/images/controlplane/controlplane-init-1.png b/docs/proposals/images/controlplane/controlplane-init-1.png index d8735c37d4f7..d2c1d002038a 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-1.png and b/docs/proposals/images/controlplane/controlplane-init-1.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-2.plantuml b/docs/proposals/images/controlplane/controlplane-init-2.plantuml index 9882dac3813d..6ee6caf2db20 100644 --- a/docs/proposals/images/controlplane/controlplane-init-2.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-2.plantuml @@ -32,7 +32,7 @@ note over "KubeadmControlPlane Controller": - ✅ Cluster.Status.InfrastructureR "KubeadmControlPlane Controller"->"API Server": Get Machines matching label selector "KubeadmControlPlane Controller"<<--"API Server": Response -opt KubeadmControlPlane.Spec.Replicas >= 1, no existing Machines found +opt #FFFFFFCC KubeadmControlPlane.Spec.Replicas >= 1, no existing Machines found "KubeadmControlPlane Controller"->"API Server": Create KubeadmConfig from KubeadmControlPlane.Spec.KubeadmConfigSpec "KubeadmControlPlane Controller"<<--"API Server": Response diff --git a/docs/proposals/images/controlplane/controlplane-init-2.png b/docs/proposals/images/controlplane/controlplane-init-2.png index b4ef77970bc6..d82c9e37b9d7 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-2.png and b/docs/proposals/images/controlplane/controlplane-init-2.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-3.plantuml b/docs/proposals/images/controlplane/controlplane-init-3.plantuml index 5fb868f0f666..5dbfce6250e0 100644 --- a/docs/proposals/images/controlplane/controlplane-init-3.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-3.plantuml @@ -32,7 +32,7 @@ note over "KubeadmControlPlane Controller": - ✅ Cluster.Status.InfrastructureR "KubeadmControlPlane Controller"->"API Server": Get Machines matching label selector "KubeadmControlPlane Controller"<<--"API Server": Response -opt KubeadmControlPlane.Spec.Replicas >= 1, 1 or more existing Machines found that is "Ready" +opt #FFFFFFCC KubeadmControlPlane.Spec.Replicas >= 1, 1 or more existing Machines found that is "Ready" "KubeadmControlPlane Controller"-> "KubeadmControlPlane Controller":Set KubeadmControlPlane.Status.Initialized = true diff --git a/docs/proposals/images/controlplane/controlplane-init-3.png b/docs/proposals/images/controlplane/controlplane-init-3.png index 7f9652cfaea4..e4f15fd61fab 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-3.png and b/docs/proposals/images/controlplane/controlplane-init-3.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-4.plantuml b/docs/proposals/images/controlplane/controlplane-init-4.plantuml index 2e19ada0d194..3897f6902d71 100644 --- a/docs/proposals/images/controlplane/controlplane-init-4.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-4.plantuml @@ -18,7 +18,7 @@ end box "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Cluster Controller Reconcile activate "Cluster API Cluster Controller" -opt Cluster.Spec.ControlPlaneRef -> Status.Initialized is true +opt #FFFFFFCC Cluster.Spec.ControlPlaneRef -> Status.Initialized is true "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Set Cluster.Status.ControlPlaneInitialized = true diff --git a/docs/proposals/images/controlplane/controlplane-init-4.png b/docs/proposals/images/controlplane/controlplane-init-4.png index 5b901e74f9ad..576e1d7209cb 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-4.png and b/docs/proposals/images/controlplane/controlplane-init-4.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-6.plantuml b/docs/proposals/images/controlplane/controlplane-init-6.plantuml index 8f1afed5132a..31e2a90d846e 100644 --- a/docs/proposals/images/controlplane/controlplane-init-6.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-6.plantuml @@ -32,7 +32,7 @@ note over "KubeadmControlPlane Controller": - ✅ Cluster.Status.InfrastructureR "KubeadmControlPlane Controller"->"API Server": Get Machines matching label selector "KubeadmControlPlane Controller"<<--"API Server": Response -opt KubeadmControlPlane.Spec.Replicas >= 1, all existing Machines "Ready", num Machines < Replicas +opt #FFFFFFCC KubeadmControlPlane.Spec.Replicas >= 1, all existing Machines "Ready", num Machines < Replicas "KubeadmControlPlane Controller"->"API Server": Create KubeadmConfig from KubeadmControlPlane.Spec.KubeadmConfigSpec "KubeadmControlPlane Controller"<<--"API Server": Response diff --git a/docs/proposals/images/controlplane/controlplane-init-6.png b/docs/proposals/images/controlplane/controlplane-init-6.png index 3803a08ba380..3912952977c7 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-6.png and b/docs/proposals/images/controlplane/controlplane-init-6.png differ diff --git a/docs/proposals/images/controlplane/controlplane-init-7.plantuml b/docs/proposals/images/controlplane/controlplane-init-7.plantuml index 1e2f61640a68..01b762fc7f75 100644 --- a/docs/proposals/images/controlplane/controlplane-init-7.plantuml +++ b/docs/proposals/images/controlplane/controlplane-init-7.plantuml @@ -38,7 +38,7 @@ note over "KubeadmControlPlane Controller": - ✅ Cluster.Status.InfrastructureR note over "KubeadmControlPlane Controller": - Process for selecting a Machine to delete is TBD -opt KubeadmControlPlane.Spec.Replicas >= 1, all existing Machines "Ready", num Machines > Replicas +opt #FFFFFFCC KubeadmControlPlane.Spec.Replicas >= 1, all existing Machines "Ready", num Machines > Replicas "KubeadmControlPlane Controller"->"Workload Cluster API Server": Remove etcd Member diff --git a/docs/proposals/images/controlplane/controlplane-init-7.png b/docs/proposals/images/controlplane/controlplane-init-7.png index 0b02eb831cdf..a26f2ed60eb5 100644 Binary files a/docs/proposals/images/controlplane/controlplane-init-7.png and b/docs/proposals/images/controlplane/controlplane-init-7.png differ diff --git a/docs/proposals/images/developer/diagram.png b/docs/proposals/images/developer/diagram.png index cf5b2c8d59c8..4d4e11c51cb8 100644 Binary files a/docs/proposals/images/developer/diagram.png and b/docs/proposals/images/developer/diagram.png differ diff --git a/docs/proposals/images/kubelet-authentication/client-authenticator-flow.png b/docs/proposals/images/kubelet-authentication/client-authenticator-flow.png index d5da595dedf1..653741da2460 100644 Binary files a/docs/proposals/images/kubelet-authentication/client-authenticator-flow.png and b/docs/proposals/images/kubelet-authentication/client-authenticator-flow.png differ diff --git a/docs/proposals/images/machine-health-check/mhc.png b/docs/proposals/images/machine-health-check/mhc.png index 16f4d538d68e..4fade3cf686d 100644 Binary files a/docs/proposals/images/machine-health-check/mhc.png and b/docs/proposals/images/machine-health-check/mhc.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure3.plantuml b/docs/proposals/images/machine-states-preboot/Figure3.plantuml index 31515a9e1ba8..55e05f5a1e8e 100644 --- a/docs/proposals/images/machine-states-preboot/Figure3.plantuml +++ b/docs/proposals/images/machine-states-preboot/Figure3.plantuml @@ -23,25 +23,25 @@ activate "Cluster API Machine Controller" note over "Cluster API Machine Controller": - ✅ Machine.Status.Phase is empty\n- ✅ Machine.Spec.Bootstrap.Data is \n- ✅ Machine.Spec.Bootstrap.ConfigRef is populated\n- ✅ Machine.Spec.Bootstrap.ConfigRef -> Status.Ready is false -opt Required only if the object hasn't been seen before +opt #FFFFFFCC Required only if the object hasn't been seen before "Cluster API Machine Controller"-> "Cluster API Machine Controller":Add watcher for \nMachine.Spec.Bootstrap.ConfigRef.Kind objects end -opt Required only if the object hasn't been seen before +opt #FFFFFFCC Required only if the object hasn't been seen before "Cluster API Machine Controller"-> "Cluster API Machine Controller":Add watcher for \nMachine.Spec.InfrastructureRef.Kind objects end -opt Required only if the object hasn't been seen before +opt #FFFFFFCC Required only if the object hasn't been seen before "Cluster API Machine Controller"-> "Cluster API Machine Controller":Add watcher for \nMachine.Spec.Bootstrap.ConfigRef.Kind objects end -opt Required only if the object doesn't have a Machine owner reference +opt #FFFFFFCC Required only if the object doesn't have a Machine owner reference "Cluster API Machine Controller"-> "Cluster API Machine Controller":Set Machine.Spec.Bootstrap.ConfigRef -> OwnerReferences[0] to Machine "Cluster API Machine Controller"->"API Server": Update KubeadmBootstrapConfig "Cluster API Machine Controller"<<--"API Server": Response end -opt Required only if the object doesn't have a Machine owner reference +opt #FFFFFFCC Required only if the object doesn't have a Machine owner reference "Cluster API Machine Controller"-> "Cluster API Machine Controller":Set Machine.Spec.InfrastructureRef -> OwnerReferences[0] to Machine "Cluster API Machine Controller"->"API Server": Update AWSInfrastructureConfig "Cluster API Machine Controller"<<--"API Server": Response diff --git a/docs/proposals/images/machine-states-preboot/Figure3.png b/docs/proposals/images/machine-states-preboot/Figure3.png index 148ffd14c488..e3f2295bcc04 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure3.png and b/docs/proposals/images/machine-states-preboot/Figure3.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure4.png b/docs/proposals/images/machine-states-preboot/Figure4.png index f6a1a48046c3..9cf864f60be7 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure4.png and b/docs/proposals/images/machine-states-preboot/Figure4.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure5.png b/docs/proposals/images/machine-states-preboot/Figure5.png index 51718ba40151..7310d396a02a 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure5.png and b/docs/proposals/images/machine-states-preboot/Figure5.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure6.png b/docs/proposals/images/machine-states-preboot/Figure6.png index 9d279f5642b2..01ff81b36865 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure6.png and b/docs/proposals/images/machine-states-preboot/Figure6.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure7.png b/docs/proposals/images/machine-states-preboot/Figure7.png index 830a37899212..2ec14f3c0258 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure7.png and b/docs/proposals/images/machine-states-preboot/Figure7.png differ diff --git a/docs/proposals/images/machine-states-preboot/Figure8.plantuml b/docs/proposals/images/machine-states-preboot/Figure8.plantuml index bf848760e542..6b6a422c8695 100644 --- a/docs/proposals/images/machine-states-preboot/Figure8.plantuml +++ b/docs/proposals/images/machine-states-preboot/Figure8.plantuml @@ -25,7 +25,7 @@ activate "Cluster API Machine Controller" note over "Cluster API Machine Controller": - ✅ Machine.Status.Phase is "Provisioned" \n- ✅ Machine.Spec.InfrastructureRef -> Status.Ready is true\n- ✅ Machine.Spec.InfrastructureRef -> Status.Addresses is not empty -loop until timeout or Node's status is Ready +loop #FFFFFFCC until timeout or Node's status is Ready "Cluster API Machine Controller"->"Workload Cluster API Server": Get Node "Cluster API Machine Controller"<<--"Workload Cluster API Server": Response note over "Cluster API Machine Controller":Loop conditions:\n- ✅ Node.Spec.ProviderID matches Machine.Spec.ProviderID\n- ✅ Node status is "Ready" diff --git a/docs/proposals/images/machine-states-preboot/Figure8.png b/docs/proposals/images/machine-states-preboot/Figure8.png index d63636206a8c..94536068d6b6 100644 Binary files a/docs/proposals/images/machine-states-preboot/Figure8.png and b/docs/proposals/images/machine-states-preboot/Figure8.png differ diff --git a/docs/proposals/images/machinepool-api/figure1.plantuml b/docs/proposals/images/machinepool-api/figure1.plantuml index bc9654a5ff7d..9b163ef025ed 100644 --- a/docs/proposals/images/machinepool-api/figure1.plantuml +++ b/docs/proposals/images/machinepool-api/figure1.plantuml @@ -30,7 +30,7 @@ end User -> "API Server": Create MachinePool "API Server" -->> "MachinePool Controller": New MachinePool -opt Required Only if MachinePool has no owner +opt #FFFFFFCC Required Only if MachinePool has no owner "MachinePool Controller" -> "MachinePool Controller": Set MachinePool's owner to Cluster "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.Phase to Pending "MachinePool Controller" -> "API Server": Update MachinePool @@ -38,29 +38,29 @@ opt Required Only if MachinePool has no owner end "MachinePool Controller" -> "API Server": Get Bootstrap -opt Required Only if Bootstrap has no owner +opt #FFFFFFCC Required Only if Bootstrap has no owner "MachinePool Controller" -> "MachinePool Controller": Set Bootstrap's owner to MachinePool "MachinePool Controller" -> "API Server": Update Bootstrap end -opt Required Only if Bootstrap not seen before +opt #FFFFFFCC Required Only if Bootstrap not seen before "MachinePool Controller" -> "MachinePool Controller": Add Watcher for MachinePool.Template.Bootstrap.Kind objects end -opt If MachinePool in Pending state +opt #FFFFFFCC If MachinePool in Pending state "Bootstrap Controller"->"Bootstrap Controller": Generate BootstrapConfig.Status.BootstrapData "Bootstrap Controller"->"Bootstrap Controller": Set BootstrapConfig.Status.Ready=true end -opt If Bootstrap has no Data and Status.BootstrapData +opt #FFFFFFCC If Bootstrap has no Data and Status.BootstrapData "MachinePool Controller"->"MachinePool Controller": Requeue end -opt If Bootstrap has Data +opt #FFFFFFCC If Bootstrap has Data "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.BootstrapReady=true "MachinePool Controller" -> "API Server": Update MachinePool end -opt If MachinePool.Template.Bootstrap.Data is empty +opt #FFFFFFCC If MachinePool.Template.Bootstrap.Data is empty "MachinePool Controller" -> "Bootstrap Controller": Get BootstrapConfig.Status.BootstrapData "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Template.Bootstrap.Data "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.BootstrapReady=true @@ -68,17 +68,17 @@ opt If MachinePool.Template.Bootstrap.Data is empty end "MachinePool Controller" -> "API Server": Get Infrastructure -opt Required Only if Infrastructure has no owner +opt #FFFFFFCC Required Only if Infrastructure has no owner "MachinePool Controller" -> "MachinePool Controller": Set Infrastructure's owner to MachinePool "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.Phase to Provisioning "MachinePool Controller" -> "API Server": Update Infrastructure end -opt Required Only if Infrastructure not seen before +opt #FFFFFFCC Required Only if Infrastructure not seen before "MachinePool Controller" -> "MachinePool Controller": Add Watcher for MachinePool.Template.InfrastructureRef.Kind objects end "API Server" -->> "Infrastructure Controller": Infrastructure Update -opt Required only if Infrastructure has owner ref +opt #FFFFFFCC Required only if Infrastructure has owner ref "Infrastructure Controller" -> "API Server": Get MachinePool "Infrastructure Controller" -> "Infrastructure Controller": Provision infrastructure "Infrastructure Controller" -> "Infrastructure Controller": Set Infrastructure.Status.Replicas @@ -87,23 +87,23 @@ opt Required only if Infrastructure has owner ref end "API Server" -->> "MachinePool Controller": Infrastructure Update -opt Only required if Infrastructure.Status.Ready is true +opt #FFFFFFCC Only required if Infrastructure.Status.Ready is true "MachinePool Controller" -> "API Server": Get MachinePool "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.Replicas = Infrastructure.Status.Replicas "MachinePool Controller" -> "MachinePool Controller": Set MachinePool.Status.InfrastructureReady = Infrastructure.Status.Ready "MachinePool Controller" -> "API Server": Update MachinePool end -opt If MachinePool.Status.Ready is true MachinePool.Spec.Replicas != MachinePool.Status.AvailableReplicas +opt #FFFFFFCC If MachinePool.Status.Ready is true MachinePool.Spec.Replicas != MachinePool.Status.AvailableReplicas "MachinePool Controller" -> "API Server": Get Nodes with MachinePool.Spec.Selector "MachinePool Controller" -> "MachinePool Controller": Update MachinePool.Status UpdatedReplicas, ReadyReplicas, AvailableReplicas, and UnavailableReplicas end -opt If MachinePool.Status.Ready is true MachinePool.Spec.Replicas != MachinePool.Status.AvailableReplicas +opt #FFFFFFCC If MachinePool.Status.Ready is true MachinePool.Spec.Replicas != MachinePool.Status.AvailableReplicas "MachinePool Controller"->"MachinePool Controller": Requeue end -opt If MachinePool.Status.Ready is true MachinePool.Spec.Replicas == MachinePool.Status.AvailableReplicas +opt #FFFFFFCC If MachinePool.Status.Ready is true MachinePool.Spec.Replicas == MachinePool.Status.AvailableReplicas "MachinePool Controller"->"API Server": Set MachinePool.Status.Phase to "Running" end diff --git a/docs/proposals/images/machinepool-api/figure1.png b/docs/proposals/images/machinepool-api/figure1.png index bcebbee339bf..c2a34a6d7b53 100644 Binary files a/docs/proposals/images/machinepool-api/figure1.png and b/docs/proposals/images/machinepool-api/figure1.png differ diff --git a/docs/proposals/images/topology-mutation-hook/topology-reconciliation.plantuml b/docs/proposals/images/topology-mutation-hook/topology-reconciliation.plantuml index ce7290c5487d..45c9fd504406 100644 --- a/docs/proposals/images/topology-mutation-hook/topology-reconciliation.plantuml +++ b/docs/proposals/images/topology-mutation-hook/topology-reconciliation.plantuml @@ -26,7 +26,7 @@ activate "API Server" "API Server" -> "Cluster Topology Controller": deactivate "API Server" -group Compute desired State +group #FFFFFFCC Compute desired State "Cluster Topology Controller" -> "Cluster Topology Controller": Compute desired State loop Ordered list of Patches alt diff --git a/docs/proposals/images/topology-mutation-hook/topology-reconciliation.png b/docs/proposals/images/topology-mutation-hook/topology-reconciliation.png index c26f52ee782a..cd1804bea312 100644 Binary files a/docs/proposals/images/topology-mutation-hook/topology-reconciliation.png and b/docs/proposals/images/topology-mutation-hook/topology-reconciliation.png differ