Install using Helm
Big picture
Install Calico on a Kubernetes cluster using Helm 3.
Value
Helm charts are a way to package up an application for Kubernetes (similar to apt
or yum
for operating systems). Helm is also used by tools like ArgoCD to manage applications in a cluster, taking care of install, upgrade (and rollback if needed), etc.
Before you begin
Required
- Install Helm 3
- Kubernetes cluster meets these requirements:
- Kubernetes is installed without a CNI plugin OR cluster is running a compatible CNI for Calico to run in policy-only mode
- x86-64, arm64, ppc64le, or s390x processors
- RedHat Enterprise Linux 7.x+, CentOS 7.x+, Ubuntu 18.04+, or Debian 9.x+
kubeconfig
is configured to work with your cluster (check by runningkubectl get nodes
)- Calico can manage
cali
andtunl
interfaces on the hosts. If NetworkManager is present on the hosts, refer to Configure NetworkManager.
Concepts
Operator based installation
In this guide, you install the Tigera Calico operator and custom resource definitions using the Helm 3 chart. The Tigera operator provides lifecycle management for Calico exposed via the Kubernetes API defined as a custom resource definition.
How to
Download the Helm chart
- Add the Calico helm repo:
helm repo add projectcalico https://docs.tigera.io/calico/charts
Customize the Helm chart
If you are installing on a cluster installed by EKS, GKE, AKS or Mirantis Kubernetes Engine (MKE), or you need to customize TLS certificates, you must customize this Helm chart by creating a values.yaml
file. Otherwise, you can skip this step.
-
If you are installing on a cluster installed by EKS, GKE, AKS or Mirantis Kubernetes Engine (MKE), set the
kubernetesProvider
as described in the Installation reference. For example:echo '{ installation: {kubernetesProvider: EKS }}' > values.yaml
For Azure AKS cluster with no Kubernetes CNI pre-installed, create
values.yaml
with the following command:cat > values.yaml <<EOF
installation:
kubernetesProvider: AKS
cni:
type: Calico
calicoNetwork:
bgp: Disabled
ipPools:
- cidr: 10.244.0.0/16
encapsulation: VXLAN
EOF
For more information about configurable options via values.yaml
please see Helm installation reference.
Install Calico
-
Create the
tigera-operator
namespace.kubectl create namespace tigera-operator
-
Install the Tigera Calico operator and custom resource definitions using the Helm chart:
helm install calico projectcalico/tigera-operator --version v3.29.0 --namespace tigera-operator
or if you created a
values.yaml
above:helm install calico projectcalico/tigera-operator --version v3.29.0 -f values.yaml --namespace tigera-operator
-
Confirm that all of the pods are running with the following command.
watch kubectl get pods -n calico-system
Wait until each pod has the
STATUS
ofRunning
.noteThe Tigera operator installs resources in the
calico-system
namespace. Other install methods may use thekube-system
namespace instead.
Congratulations! You have now installed Calico using the Helm 3 chart.
Next steps
Required
Recommended tutorials