Install using Helm

2 MINUTE READ

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 16.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://projectcalico.docs.tigera.io/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.24.1
    

    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.24.1 --namespace tigera-operator
    

    or if you created a values.yaml above:

    helm install calico projectcalico/tigera-operator --version v3.24.1 -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