# Troubleshooting Calico Add-on

## Problem

Calico handles network connectivity for PCD-K clusters. As a critical core add-on for PCD-K clusters, a broken Calico functionality significantly impacts networking. When Calico experiences issues, here's a general guide on how to troubleshoot Calico Add-on Issues.

## Environment

* Private Cloud Director - v2025.4 and Higher.
* Kubernetes Cluster 1.31.2 or Higher.

## Procedure

1. Validate if the namespaces `calico-apiserver` & `calico-system` are created or not.
2. Confirm all pods are healthy in both namespaces.

**Note:**

The `calico-node-xxxxx` pod should be running on all worker nodes.

3. Review why these pods are in "`CrashLoopBackOff/OOMkilled/Pending/Error`" state, see events sections from the below command output.

```bash
$ kubectl describe <Pod-name> -n <calico-namespace>
```

4. Get more information on the failure from pod logs using command:

{% tabs %}
{% tab title="Command" %}

```bash
$ kubectl logs <Pod-name> -n <calico-namespace>
```

{% endtab %}
{% endtabs %}

5. Verify connectivity to the API server, run:

```bash
$ curl -vk https://<kubernetes-pod-IP>:443/healthz
```

6. If these steps prove insufficient to resolve the issue, kindly reach out to the [Platform9 Support Team](https://support.platform9.com) for additional assistance.

## Most common causes

* The `calico-node` pod is a DaemonSet that runs on every Kubernetes node. If it's not healthy, Calico won't work.
* Connectivity to the API server is broken.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://platform9.com/kb/pcd-ts/kubernetes-clusters/troubleshooting-calico-add-on.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
