Skip to main content
Version: 3.27 (latest)

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 running kubectl get nodes)
  • Calico can manage cali and tunl 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​

  1. 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.

  1. 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
  2. Add any other customizations you require to values.yaml. You might like to refer to the helm docs or run

    helm show values projectcalico/tigera-operator --version v3.27.3

    to see the values that can be customized in the chart.

Install Calico​

  1. Create the tigera-operator namespace.

    kubectl create namespace tigera-operator
  2. Install the Tigera Calico operator and custom resource definitions using the Helm chart:

    helm install calico projectcalico/tigera-operator --version v3.27.3 --namespace tigera-operator

    or if you created a values.yaml above:

    helm install calico projectcalico/tigera-operator --version v3.27.3 -f values.yaml --namespace tigera-operator
  3. 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 of Running.

    note

    The Tigera operator installs resources in the calico-system namespace. Other install methods may use the kube-system namespace instead.

Congratulations! You have now installed Calico using the Helm 3 chart.

Next steps​

Required

Recommended tutorials