diff --git a/docs/src/snap/reference/bootstrap-config-reference.md b/docs/src/snap/reference/bootstrap-config-reference.md
index 7109d5aa64..feff196309 100644
--- a/docs/src/snap/reference/bootstrap-config-reference.md
+++ b/docs/src/snap/reference/bootstrap-config-reference.md
@@ -37,6 +37,7 @@ Determines if the feature should be enabled.
If omitted defaults to `true`
#### cluster-config.dns.cluster-domain
+
**Type:** `string`
**Required:** `No`
@@ -437,6 +438,79 @@ If omitted defaults to an auto generated certificate.
The key to be used for the kubelet.
If omitted defaults to an auto generated key.
+### extra-node-config-files:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+Additional files that are uploaded `/var/snap/k8s/common/args/conf.d/`
+to a node on bootstrap. These files can them be references by Kubernetes
+service arguments.
+The format is `map[]`.
+
+### extra-node-kube-apiserver-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-kube-controller-manager-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-kube-scheduler-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-kube-proxy-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-kubelet-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-containerd-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
+### extra-node-k8s-dqlite-args:
+
+**Type:** `map[string]string`
+**Required:** `No`
+
+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>]`.
+
## Example
The following example configures and enables certain features, sets an external
@@ -478,4 +552,20 @@ k8s-dqlite-port: 9090
datastore-type: k8s-dqlite
extra-sans:
- custom.kubernetes
+extra-node-config-files:
+ bootstrap-extra-file.yaml: extra-args-test-file-content
+extra-node-kube-apiserver-args:
+ --request-timeout: 2m
+extra-node-kube-controller-manager-args:
+ --leader-elect-retry-period: 3s
+extra-node-kube-scheduler-args:
+ --authorization-webhook-cache-authorized-ttl: 11s
+extra-node-kube-proxy-args:
+ --config-sync-period: 14m
+extra-node-kubelet-args:
+ --authentication-token-webhook-cache-ttl: 3m
+extra-node-containerd-args:
+ --log-level: debug
+extra-node-k8s-dqlite-args:
+ --watch-storage-available-size-interval: 6s
```