- Helm 3.x installed
- kubectl configured to access your cluster
- Linode API token
- Target region identified
- Add the CCM Helm repository:
helm repo add ccm-linode https://linode.github.io/linode-cloud-controller-manager/
helm repo update ccm-linode
- Create a values file (values.yaml):
apiToken: "your-api-token"
region: "us-east"
# Optional: Configure route controller
routeController:
vpcNames: "" # Comma separated VPC names
clusterCIDR: "10.0.0.0/8"
configureCloudRoutes: true
# Optional: Configure shared IP load balancing instead of NodeBalancers (requires Cilium CNI and BGP Control Plane enabled)
sharedIPLoadBalancing:
loadBalancerType: cilium-bgp
bgpNodeSelector: cilium-bgp-peering=true
ipHolderSuffix: ""
- Install the CCM:
helm install ccm-linode \
--namespace kube-system \
-f values.yaml \
ccm-linode/ccm-linode
To upgrade an existing installation:
helm upgrade ccm-linode \
--namespace kube-system \
-f values.yaml \
ccm-linode/ccm-linode
To remove the CCM:
helm uninstall ccm-linode -n kube-system