Skip to content

Commit

Permalink
add v1.3.0 CCM instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
yannickstruyf3 committed Jan 10, 2024
1 parent 6115a3d commit 8187e69
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 0 deletions.
3 changes: 3 additions & 0 deletions docs/capx/v1.3.x/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ For more information on how CAPX handles credentials, visit [Credential Manageme

For more information on the port requirements for CAPX, visit [Port Requirements](./port_requirements.md).

!!! note
[Nutanix Cloud Controller Manager (CCM)](../../ccm/latest/overview.md) is a mandatory component starting from CAPX v1.3.0. Before upgrading existing CAPX installations with a version prior to v1.3.0 to v1.3.0 or later, ensure all CAPX-managed Kubernetes clusters are configured to use Nutanix CCM. See [CAPX v1.3.x Upgrade Procedure](./tasks/capx_v13x_upgrade_procedure.md).

## Production Workflow

### Build OS image for NutanixMachineTemplate resource
Expand Down
80 changes: 80 additions & 0 deletions docs/capx/v1.3.x/tasks/capx_v13x_upgrade_procedure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# CAPX v1.3.x Upgrade Procedure

Starting from CAPX v1.3.0, it is required for all CAPX-managed Kubernetes clusters to use the Nutanix Cloud Controller Manager (CCM).

Before upgrading CAPX instances with a version prior to v1.3.0 to v1.3.0 or later, it is required to follow the [steps](#steps) detailed below for each of the CAPX-managed Kubernetes clusters that don't use Nutanix CCM.


## Steps

This procedure uses [Cluster Resource Set (CRS)](https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-resource-set){target=_blank} to install Nutanix CCM but it can also be installed using the [Nutanix CCM Helm chart](https://artifacthub.io/packages/helm/nutanix/nutanix-cloud-provider){target=_blank}.

Perform following steps for each of the CAPX-managed Kubernetes clusters that are not configured to use Nutanix CCM:

1. Add the `cloud-provider: external` configuration in the `KubeadmConfigTemplate` resources:
```YAML
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
spec:
template:
spec:
joinConfiguration:
nodeRegistration:
kubeletExtraArgs:
cloud-provider: external
```
2. Add the `cloud-provider: external` configuration in the `KubeadmControlPlane` resource:
```YAML
---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
spec:
template:
spec:
joinConfiguration:
nodeRegistration:
kubeletExtraArgs:
cloud-provider: external
---
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
spec:
kubeadmConfigSpec:
clusterConfiguration:
apiServer:
extraArgs:
cloud-provider: external
controllerManager:
extraArgs:
cloud-provider: external
initConfiguration:
nodeRegistration:
kubeletExtraArgs:
cloud-provider: external
joinConfiguration:
nodeRegistration:
kubeletExtraArgs:
cloud-provider: external
```
3. Add the Nutanix CCM CRS resources:

- [nutanix-ccm-crs.yaml](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/blob/v1.3.0/templates/base/nutanix-ccm-crs.yaml){target=_blank}
- [nutanix-ccm-secret.yaml](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/blob/v1.3.0/templates/base/nutanix-ccm-secret.yaml)
- [nutanix-ccm.yaml](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/blob/v1.3.0/templates/base/nutanix-ccm.yaml)

Make sure to update each of the variables before applying the `YAML` files.

4. Add the `ccm: nutanix` label to the `Cluster` resource:
```YAML
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
labels:
ccm: nutanix
```
5. Verify if the Nutanix CCM pod is up and running:
```
kubectl get pod -A -l k8s-app=nutanix-cloud-controller-manager
```
6. Trigger a new rollout of the Kubernetes nodes by performing a Kubernetes upgrade or by using `clusterctl alpha rollout restart`. See the [clusterctl alpha rollout](https://cluster-api.sigs.k8s.io/clusterctl/commands/alpha-rollout#restart){target=_blank} for more information.
7. Upgrade CAPX to v1.3.0 by following the [clusterctl upgrade](https://cluster-api.sigs.k8s.io/clusterctl/commands/upgrade.html?highlight=clusterctl%20upgrade%20pla#clusterctl-upgrade){target=_blank} documentation
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ nav:
- "Credential Management": "capx/v1.3.x/credential_management.md"
- "Tasks":
- "Modifying Machine Configuration": "capx/v1.3.x/tasks/modify_machine_configuration.md"
- "CAPX v1.3.x Upgrade Procedure": "capx/v1.3.x/tasks/capx_v13x_upgrade_procedure.md"
- "Port Requirements": "capx/v1.3.x/port_requirements.md"
- "User Requirements": "capx/v1.3.x/user_requirements.md"
- "Addons":
Expand Down

0 comments on commit 8187e69

Please sign in to comment.