# Argo CD

![](/files/n0FxAgCCzT9lo4J1WEUL)

![](/files/tzjo8vxS68z65ZzLpf30)

## Install

```
// check preconditions. There should be argocd namespace
kubectl get namespaces

// if absent, create it
kubectl create namespace argocd

// install ArgoCD to the cluster
k apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

// check argocd was installed
kubectl get pods -n argocd

// clean up setup
kubectl delete -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```

```
// install argoCD CLI
brew install argocd
```

:thumbsup:[Useful article about installation](https://faun.pub/setup-argocd-bootstrap-resources-in-kubernetes-9ef40e16ca6a). :thumbsup:[Official docs](https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli)

```
// expose ArgoCD UI for local experiments
kubectl port-forward svc/argocd-server -n argocd 8080:443 &

// The user is admin
// get initial password to login to ArgoCD UI
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

// more fresh way to retrieve a password
argocd admin initial-password -n argocd

// how to changet the password
argocd account update-password
```

### GitOps (+Helm)

How does Argo CD know our application is a Helm chart? It looks for a `Chart.yaml` file under `path` in the Git repository

{% hint style="info" %}
Argo CD will not use `helm install` to install charts. It will render the chart with `helm template` and then apply the output with `kubectl`. This means we can’t run `helm list` on a local machine to get all installed releases
{% endhint %}


---

# 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://amartyushov.gitbook.io/tech/tools/argo-cd.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.
