Change:
This is a Bug Report <!-- Thanks for filing an issue! Before submitting, please fill in the following information. --<!-- See for guidance on writing an actionable issue description. --<!--Required Information--indentation issue Proposed Solution: Page to Update: <!--Optional Information (remove the comment tags around information you would like to include)--<!--Kubernetes Version:--18 <!--Additional Information:--fix the page indentation
/sig cluster-lifecycle docs hi, can you show which section you think is wrong or maybe provide a screenshot?
/sig cluster-lifecycle docs Attached screenshots
i don't see the attachments, possibly because you replied via email. try adding them using the GitHub web UI.
! ! ! !
Page alignment or indentation not proper looks.
ok, i can confirm this. hi, was this broken by this PR, or maybe something on the hugo side changed recently?
The Hugo upgrade was PR
/kind bug /priority important-longterm
I've tried to make a work around for this. It looks like tabs shortcodes with code snippets inside them don't play well with shortcodes (see issue ).
I will take a stab at cleaning this up assuming work isn't currently being done. We might have to adjust the page slightly until capture is removed. /assign
I can share some WIP in case it helps
thanks for taking a look and
oof, sorry I saw this after I opened the PR. That does help! I was scratching my head on some of these bugs. Let me know if you want me to modify my PR to incorporate some of your suggestions or vice versa. I was poking fun of the page on twitter and felt obligated to try to fix it :smile:
Busy at the moment I'm afraid. Feel free to snarf any bits that look useful.

Discussion:
## Determine which version to upgrade to <del> 1.  Find the latest stable 1.18 version: </del> <ins> Find the latest stable 1.18 version: </ins> <del> {{< tabs name="k8s_install_versions" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_versions" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </ins> apt update apt-cache madison kubeadm # find the latest 1.18 version in the list # it should look like 1.18.x-00, where x is the latest patch <del> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </ins> yum list --showduplicates kubeadm --disableexcludes=kubernetes # find the latest 1.18 version in the list # it should look like 1.18.x-0, where x is the latest patch <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> ## Upgrading control plane nodes ### Upgrade the first control plane node <del> 1.  On your first control plane node, upgrade kubeadm: </del> <ins> -  On your first control plane node, upgrade kubeadm: </ins> <del> {{< tabs name="k8s_install_kubeadm_first_cp" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubeadm_first_cp" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </ins> # replace x in 1.18.x-00 with the latest patch version apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm=1.18.x-00 &&  apt-mark hold kubeadm <ins> - </ins> # since apt-get version 1.1 you can also use the following method apt-get update &&  apt-get install -y --allow-change-held-packages kubeadm=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </ins> # replace x in 1.18.x-0 with the latest patch version yum install -y kubeadm-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  Verify that the download works and has the expected version: </del> <ins> -  Verify that the download works and has the expected version: </ins> ```shell kubeadm version ``` <del> 1.  Drain the control plane node: </del> <ins> -  Drain the control plane node: </ins> ```shell # replace <cp-node-name> with the name of your control plane node kubectl drain <cp-node-name> --ignore-daemonsets ``` <del> 1.  On the control plane node, run: </del> <ins> -   On the control plane node, run: </ins> ```shell sudo kubeadm upgrade plan

This command checks that your cluster can be upgraded, and fetches the versions you can upgrade to. <del> {{< note >}} `kubeadm upgrade` also automatically renews the certificates that it manages on this node. To opt-out of certificate renewal the flag `--certificate-renewal=false` can be used. For more information see the [certificate management guide](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs). {{</ note >}} </del> <ins> {{< note >}} `kubeadm upgrade` also automatically renews the certificates that it manages on this node. To opt-out of certificate renewal the flag `--certificate-renewal=false` can be used. For more information see the [certificate management guide](/docs/tasks/administer-cluster/kubeadmkubeadm-certs). {{</ note >}} </ins> <del> 1.  Choose a version to upgrade to, and run the appropriate command. For example: </del> <ins> -  Choose a version to upgrade to, and run the appropriate command. For example: </ins> ```shell # replace x with the patch version you picked for this upgrade

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. ``` <del> 1.  Manually upgrade your CNI provider plugin. </del> <ins> -  Manually upgrade your CNI provider plugin. </ins> Your Container Network Interface (CNI) provider may have its own upgrade instructions to follow. Check the [addons](/docs/concepts/cluster-administration/addons/) page to

This step is not required on additional control plane nodes if the CNI provider runs as a DaemonSet. <del> 1.  Uncordon the control plane node: </del> <ins> -  Uncordon the control plane node: </ins> ```shell # replace <cp-node-name> with the name of your control plane node

### Upgrade additional control plane nodes <del> 1.  Same as the first control plane node but use: </del> <ins> Same as the first control plane node but use: </ins> <del> ``` sudo kubeadm upgrade node ``` </del> <ins> ``` sudo kubeadm upgrade node ``` </ins> <del> instead of: </del> <ins> instead of: </ins> <del> ``` sudo kubeadm upgrade apply ``` </del> <ins> ``` sudo kubeadm upgrade apply ``` </ins> <del> Also `sudo kubeadm upgrade plan` is not needed. </del> <ins> Also `sudo kubeadm upgrade plan` is not needed. </ins> ### Upgrade kubelet and kubectl <del> 1.  Upgrade the kubelet and kubectl on all control plane nodes: </del> <ins> Upgrade the kubelet and kubectl on all control plane nodes: </ins> <del> {{< tabs name="k8s_install_kubelet" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubelet" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </ins> # replace x in 1.18.x-00 with the latest patch version apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet=1.18.x-00 kubectl=1.18.x-00 &&  apt-mark hold kubelet kubectl <ins> - </ins> # since apt-get version 1.1 you can also use the following method apt-get update &&  apt-get install -y --allow-change-held-packages kubelet=1.18.x-00 kubectl=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </ins> # replace x in 1.18.x-0 with the latest patch version yum install -y kubelet-1.18.x-0 kubectl-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  Restart the kubelet </del> <ins> Restart the kubelet </ins> <del> ```shell sudo systemctl restart kubelet ``` </del> <ins> ```shell sudo systemctl restart kubelet ``` </ins> ## Upgrade worker nodes

### Upgrade kubeadm <del> 1.  Upgrade kubeadm on all worker nodes: </del> <ins> -  Upgrade kubeadm on all worker nodes: </ins> <del> {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </ins> # replace x in 1.18.x-00 with the latest patch version apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm=1.18.x-00 &&  apt-mark hold kubeadm <ins> - </ins> # since apt-get version 1.1 you can also use the following method apt-get update &&  apt-get install -y --allow-change-held-packages kubeadm=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </ins> # replace x in 1.18.x-0 with the latest patch version yum install -y kubeadm-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> ### Drain the node <del> 1.  Prepare the node for maintenance by marking it unschedulable and evicting the workloads: </del> <ins> -  Prepare the node for maintenance by marking it unschedulable and evicting the workloads: </ins> ```shell # replace <node-to-drain> with the name of your node you are draining

### Upgrade the kubelet configuration <del> 1.  Call the following command: </del> <ins> -  Call the following command: </ins> ```shell sudo kubeadm upgrade node

### Upgrade kubelet and kubectl <del> 1.  Upgrade the kubelet and kubectl on all worker nodes: </del> <ins> -  Upgrade the kubelet and kubectl on all worker nodes: </ins> <del> {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </del> <ins> {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} </ins> # replace x in 1.18.x-00 with the latest patch version apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet=1.18.x-00 kubectl=1.18.x-00 &&  apt-mark hold kubelet kubectl <ins> - </ins> # since apt-get version 1.1 you can also use the following method apt-get update &&  apt-get install -y --allow-change-held-packages kubelet=1.18.x-00 kubectl=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} </ins> # replace x in 1.18.x-0 with the latest patch version yum install -y kubelet-1.18.x-0 kubectl-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  Restart the kubelet </del> <ins> -  Restart the kubelet </ins> ```shell sudo systemctl restart kubelet

### Uncordon the node <del> 1.  Bring the node back online by marking it schedulable: </del> <ins> -   Bring the node back online by marking it schedulable: </ins> ```shell # replace <node-to-drain> with the name of your node

`kubeadm upgrade node` does the following on worker nodes: - Fetches the kubeadm `ClusterConfiguration` from the cluster. <del> - Upgrades the kubelet configuration for this node. </del> <ins> - Upgrades the kubelet configuration for this node. </ins>  No newline at end of file