---
title: Deploying Litmus UNS on Kubernetes cluster with ArgoCD
slug: uns/deploying-litmus-uns-on-kubernetes-cluster-with-argocd
docTags: 
createdAt: 2024-12-23T16:00:36.606Z
---

You can deploy Litmus UNS using ArgoCD to ensure your Kubernetes cluster is equipped with the necessary configurations and resources.

# Before You Begin

- Ensure you have ArgoCD set up and connected to a working Kubernetes cluster.

:::hint{type="info"}
**Important Notes:**&#x20;

- Do not enable the **PRUNE&#x20;**&#x66;unction.&#x20;
- The current version of Litmus UNS may result in specific resources remaining out of sync within the *ArgoCD&#x20;*&#x61;pplication.&#x20;
  - These include the `litmus-uns-creds` , `luns-default-tls` and `mqtt-migration` pods.&#x20;
  - (While these limitations exist, they do not affect the overall functionality of your deployment.)
- It's crucial to understand that both `litmus-uns-creds` and `luns-default-tls` are essential resources and should not be removed.&#x20;
  - This is why the *PRUNE* function is not applicable during update or upgrade procedures.&#x20;
  - As for the `mqtt-migration` pods, they can be manually deleted once their status shows that they have completed their tasks.
:::

# Step 1: Initial Setup for Litmus UNS Deployment

**To deploy Litmus UNS on Kubernetes cluster:**

1. Obtain the secret YAML file from Litmus via the Litmus Central Portal.
2. Create the desired working namespace (e.g., **uns**) in the Kubernetes cluster using the `kubectl` CLI tool.
   *Command:*
   `(sudo) kubectl create namespace uns`
3. Assuming the secret YAML file is in your current working directory, create a Kubernetes secret resource in the working namespace. For example, using **uns&#x20;**&#x61;s the namespace.
   *Command*:
   `(sudo) kubectl create -f litmusautomation-uns-centralportal-secret.yml --namespace=uns`
4. Ensure you have the path to a valid **Git** repository containing the Litmus UNS Helm chart.
5. In the *ArgoCD* *Applications* interface, click on the  **+NEW APP&#x20;**&#x69;con.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/zYWSyORTJ5zkEMqRaDPa7_image.png" size="70" width="451" height="142" position="center" showCaption="false"}
6. Fill in the **Application Name**, **Project Name**, **Repository URL**, **Path**, **Cluster URL**, and **Namespace** fields, along with other desired options.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/yF0I78thTsCuxNvbcFJL2_image.png" size="90" width="1024" height="567" position="center" showCaption="false"}

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/eY9l5qaIo_y6JL_-we1AE_image.png" size="90" width="1024" height="515" position="center" showCaption="false"}
7. Click the CREATE button to initialize the application. A new application card will be created in ArgoCD.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/tO1N_9ae875TiijGC8qVv_image.png" size="70" width="453" height="362" position="center" showCaption="false"}
8. Click the SYNC button to open the synchronization screen.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/4fqoDTH8lTFLMtbCRgwrW_image.png" size="70" width="605" height="911" position="center" showCaption="false"}
9. Click the **SYNCHRONIZE** button to start the synchronization process and deploy Litmus UNS.
10. The application is successfully deployed when the status changes to ***Healthy*** and ***Synced***.

    ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/vH6PlIn9P7iwY51EiPq7X_image.png" size="70" width="465" height="367" position="center" showCaption="false"}

# Step 2: Updating and Upgrading Litmus UNS

When making edits to the `values.yaml` file or when a new version of Litmus UNS is released, follow these steps to perform the update process:

1. In the `values.yaml` file, set the `secrets.create` flag to `false` and the `luns.createTlsSecret` flag to `false`.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/js1uZ0hChze99xLfRlCuq_image.png" size="90" width="877" height="389" position="center" showCaption="false"}

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/9S64z4FqPfQTUE_CwV30W_image.png" size="90" width="838" height="449" position="center" showCaption="false"}
2. Ensure that you save the above changes along with any other edits, and then commit and push them to the Git repository.
3. Click the **Refresh** button on the application card.&#x20;
   If the Git repository has been updated, you will see an *OutOfSync* status.
4. Click the SYNC button to open the synchronization screen.

   ::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/C8uKZkH85K4jrDRseAAjo_image.png" size="70" width="605" height="911" position="center" showCaption="false"}
5. By clicking the **SYNCHRONIZE** button, you will update Litmus UNS.

