diff --git a/docs/src/_parts/bootstrap_config.md b/docs/src/_parts/bootstrap_config.md
index 866777363b..d6777ca038 100644
--- a/docs/src/_parts/bootstrap_config.md
+++ b/docs/src/_parts/bootstrap_config.md
@@ -180,6 +180,8 @@ Configuration options for the metric server feature.
### cluster-config.metrics-server.enabled
**Type:** `bool`
+Determines if the feature should be enabled.
+If omitted defaults to `true`.
### cluster-config.cloud-provider
**Type:** `string`
@@ -194,6 +196,8 @@ Possible values: `external`.
### cluster-config.annotations
**Type:** `map[string]string`
+Annotations is a map of strings that can be used to store arbitrary metadata configuration.
+Please refer to the ClusterAPI annotations reference for further details on these options.
### control-plane-taints
**Type:** `[]string`
@@ -281,10 +285,14 @@ If omitted defaults to an auto generated key.
### client-ca-crt
**Type:** `string`
+The client CA certificate to be used for Kubernetes services.
+If omitted defaults to an auto generated certificate.
### client-ca-key
**Type:** `string`
+The client CA key to be used for Kubernetes services.
+If omitted defaults to an auto generated key.
### front-proxy-ca-crt
**Type:** `string`
@@ -325,34 +333,50 @@ If omitted defaults to an auto generated key.
### admin-client-crt
**Type:** `string`
+The admin client certificate to be used for Kubernetes services.
+If omitted defaults to an auto generated certificate.
### admin-client-key
**Type:** `string`
+The admin client key to be used for Kubernetes services.
+If omitted defaults to an auto generated key.
### kube-proxy-client-crt
**Type:** `string`
+The client certificate to be used for the kube-proxy.
+If omitted defaults to an auto generated certificate.
### kube-proxy-client-key
**Type:** `string`
+The client key to be used for the kube-proxy.
+If omitted defaults to an auto generated key.
### kube-scheduler-client-crt
**Type:** `string`
+The client certificate to be used for the kube-scheduler.
+If omitted defaults to an auto generated certificate.
### kube-scheduler-client-key
**Type:** `string`
+The client key to be used for the kube-scheduler.
+If omitted defaults to an auto generated key.
### kube-controller-manager-client-crt
**Type:** `string`
+The client certificate to be used for the Kubernetes controller manager.
+If omitted defaults to an auto generated certificate.
### kube-controller-manager-client-key
**Type:** `string`
+The client key to be used for the Kubernetes controller manager.
+If omitted defaults to an auto generated key.
### service-account-key
**Type:** `string`
@@ -387,10 +411,14 @@ If omitted defaults to an auto generated key.
### kubelet-client-crt
**Type:** `string`
+The certificate to be used for the kubelet client.
+If omitted defaults to an auto generated certificate.
### kubelet-client-key
**Type:** `string`
+The key to be used for the kubelet client.
+If omitted defaults to an auto generated key.
### extra-node-config-files
**Type:** `map[string]string`
@@ -404,51 +432,51 @@ The format is `map[]`.
### extra-node-kube-apiserver-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-apiserver` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-apiserver` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-controller-manager-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-controller-manager` only for
-that specific node. Overwrites default configuration. A parameter that is
-explicitly set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-controller-manager` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-scheduler-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-scheduler` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-scheduler` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-proxy-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-proxy` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-proxy` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kubelet-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kubelet` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kubelet` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-args
**Type:** `map[string]string`
-Additional arguments that are passed to `containerd` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `containerd` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-k8s-dqlite-args
**Type:** `map[string]string`
-Additional arguments that are passed to `k8s-dqlite` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `k8s-dqlite` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-config
**Type:** `apiv1.MapStringAny`
diff --git a/docs/src/_parts/control_plane_join_config.md b/docs/src/_parts/control_plane_join_config.md
index 03cdec67d0..fa2919e458 100644
--- a/docs/src/_parts/control_plane_join_config.md
+++ b/docs/src/_parts/control_plane_join_config.md
@@ -30,18 +30,26 @@ If omitted defaults to an auto generated key.
### kube-scheduler-client-crt
**Type:** `string`
+The client certificate to be used for the kube-scheduler.
+If omitted defaults to an auto generated certificate.
### kube-scheduler-client-key
**Type:** `string`
+The client key to be used for the kube-scheduler.
+If omitted defaults to an auto generated key.
### kube-controller-manager-client-crt
**Type:** `string`
+The client certificate to be used for the Kubernetes controller manager.
+If omitted defaults to an auto generated certificate.
### kube-controller-manager-client-key
**Type:** `string`
+The client key to be used for the Kubernetes controller manager.
+If omitted defaults to an auto generated key.
### apiserver-crt
**Type:** `string`
@@ -70,10 +78,14 @@ If omitted defaults to an auto generated key.
### kubelet-client-crt
**Type:** `string`
+The client certificate to be used for the kubelet.
+If omitted defaults to an auto generated certificate.
### kubelet-client-key
**Type:** `string`
+The client key to be used for the kubelet.
+If omitted defaults to an auto generated key.
### extra-node-config-files
**Type:** `map[string]string`
@@ -87,51 +99,51 @@ The format is `map[]`.
### extra-node-kube-apiserver-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-apiserver` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-apiserver` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-controller-manager-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-controller-manager` only for
-that specific node. Overwrites default configuration. A parameter that is
-explicitly set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-controller-manager` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-scheduler-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-scheduler` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-scheduler` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kube-proxy-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-proxy` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-proxy` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kubelet-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kubelet` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kubelet` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-args
**Type:** `map[string]string`
-Additional arguments that are passed to `containerd` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `containerd` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-k8s-dqlite-args
**Type:** `map[string]string`
-Additional arguments that are passed to `k8s-dqlite` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `k8s-dqlite` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-config
**Type:** `apiv1.MapStringAny`
diff --git a/docs/src/_parts/worker_join_config.md b/docs/src/_parts/worker_join_config.md
index a476b3e8b0..70a515a8f7 100644
--- a/docs/src/_parts/worker_join_config.md
+++ b/docs/src/_parts/worker_join_config.md
@@ -13,18 +13,26 @@ If omitted defaults to an auto generated key.
### kubelet-client-crt
**Type:** `string`
+The client certificate to be used for the kubelet.
+If omitted defaults to an auto generated certificate.
### kubelet-client-key
**Type:** `string`
+The client key to be used for the kubelet.
+If omitted defaults to an auto generated key.
### kube-proxy-client-crt
**Type:** `string`
+The client certificate to be used for the kube-proxy.
+If omitted defaults to an auto generated certificate.
### kube-proxy-client-key
**Type:** `string`
+The client key to be used for the kube-proxy.
+If omitted defaults to an auto generated key.
### extra-node-config-files
**Type:** `map[string]string`
@@ -38,30 +46,30 @@ The format is `map[]`.
### extra-node-kube-proxy-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kube-proxy` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kube-proxy` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-kubelet-args
**Type:** `map[string]string`
-Additional arguments that are passed to the `kubelet` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to the `kubelet` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-args
**Type:** `map[string]string`
-Additional arguments that are passed to `containerd` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `containerd` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-k8s-apiserver-proxy-args
**Type:** `map[string]string`
-Additional arguments that are passed to `k8s-api-server-proxy` only for that
-specific node. Overwrites default configuration. A parameter that is explicitly
-set to `null` is deleted. The format is `map[<--flag-name>]`.
+Additional arguments that are passed to `k8s-api-server-proxy` only for that specific node.
+A parameter that is explicitly set to `null` is deleted.
+The format is `map[<--flag-name>]`.
### extra-node-containerd-config
**Type:** `apiv1.MapStringAny`
diff --git a/docs/src/snap/reference/bootstrap-config-reference.md b/docs/src/snap/reference/bootstrap-config-reference.md
index 56f34491d3..758828e04b 100644
--- a/docs/src/snap/reference/bootstrap-config-reference.md
+++ b/docs/src/snap/reference/bootstrap-config-reference.md
@@ -1,6 +1,6 @@
# Bootstrap configuration file reference
-A YAML file can be supplied to the `k8s bootstrap` command to configure and
+A YAML file can be supplied to the `k8s join-cluster` command to configure and
customise the cluster. This reference section provides the format of this file
by listing all available options and their details. See below for an example.
diff --git a/docs/src/snap/reference/control-plane-join-config-reference.md b/docs/src/snap/reference/control-plane-join-config-reference.md
new file mode 100755
index 0000000000..855b816a43
--- /dev/null
+++ b/docs/src/snap/reference/control-plane-join-config-reference.md
@@ -0,0 +1,11 @@
+# Control plane node join configuration file reference
+
+A YAML file can be supplied to the `k8s join-cluster ` command to configure and
+customize new nodes.
+
+This reference section provides all available options for control plane nodes.
+
+## Configuration options
+
+```{include} ../../_parts/control_plane_join_config.md
+```
diff --git a/docs/src/snap/reference/index.md b/docs/src/snap/reference/index.md
index f1720e7602..840b4ab56f 100644
--- a/docs/src/snap/reference/index.md
+++ b/docs/src/snap/reference/index.md
@@ -16,6 +16,8 @@ commands
annotations
certificates
bootstrap-config-reference
+control-plane-join-config-reference
+worker-join-config-reference
proxy
troubleshooting
architecture
diff --git a/docs/src/snap/reference/worker-join-config-reference.md b/docs/src/snap/reference/worker-join-config-reference.md
new file mode 100755
index 0000000000..5f170f484b
--- /dev/null
+++ b/docs/src/snap/reference/worker-join-config-reference.md
@@ -0,0 +1,11 @@
+# Worker node join configuration file reference
+
+A YAML file can be supplied to the `k8s join-cluster ` command to configure and
+customize new worker nodes.
+
+This reference section provides all available options for worker nodes.
+
+## Configuration options
+
+```{include} ../../_parts/worker_join_config.md
+```