Skip to content

Commit

Permalink
changes applied based on review
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Hernandez <christian@chernand.io>
  • Loading branch information
christianh814 committed Jan 23, 2025
1 parent 59ea13f commit 04f60b7
Showing 1 changed file with 39 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ sidebar_label: With Argo CD
This section outlines a few generalized approaches to installing and managing Kargo with non-default configuration options using Argo CD.

:::note
This section assumes that you have already installed any dependencies or prerequisites required for running Kargo on a Kubernetes cluster. Please refer to [Basic Installation](../../40-operator-guide/10-basic-installation.md#prerequisites) for more details.
This section assumes that you have already installed any dependencies or prerequisites required for running Kargo on a Kubernetes cluster. Please refer to [Basic Installation](../../operator-guide/basic-installation#prerequisites) for more details.
:::

## Direct Chart Installation

The most common way to deploy Kargo using Argo CD is to create an `Application` and use the Helm chart directly. Using this method, you can use the `.spec.source.helm.parameters` section to specify any parameters you may need. This is the most straightforward way to deploy Kargo using Argo CD.

:::info
If using the `api.adminAccount.passwordHash` parameter, you must escape the `$` character with `$$` to prevent Helm from interpreting it as a variable. Please see [this discussion](https://discord.com/channels/1138942074998235187/1138946346217394407/1267966083168469102) for more information.
If using the `api.adminAccount.passwordHash` parameter in this method, you must escape the `$` character with `$$` to prevent Helm from interpreting it as a variable. Please see [this discussion](https://discord.com/channels/1138942074998235187/1138946346217394407/1267966083168469102) for more information.
:::

```yaml
Expand Down Expand Up @@ -52,13 +52,46 @@ spec:
- CreateNamespace=true
```
Conversely, insetad of using the `parameters` field under the `.spec.source.helm` section; you can use the `values` block or `valuesObject` object to specify the values for the Kargo Helm chart.
Conversely, insetad of using the `parameters` field under the `.spec.source.helm` section; you can use the `values` block or `valuesObject` object to specify the values for the Kargo Helm chart. Below is an example of how to use `valuesObject` to specify the values.

```yaml
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kargo
namespace: argocd
spec:
project: default
destination:
namespace: kargo
server: https://kubernetes.default.svc
source:
repoURL: ghcr.io/akuity/kargo-charts
chart: kargo
targetRevision: 1.2.0
helm:
valuesObject:
api:
adminAccount:
passwordHash: $2a$10$Zrhhie4vLz5ygtVSaif6o.qN36jgs6vjtMBdM6yrU1FOeiAAMMxOm
tokenSigningKey: iwishtowashmyirishwristwatch
tokenTTL: 24h
controller:
logLevel: DEBUG
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
```

:::info
The parameters used in the above `Application` are just examples, and you should use the values that are appropriate for your environment. Detailed information about available options can also be found in the [Kargo Helm Chart's README.md](https://github.com/akuity/kargo/tree/main/charts/kargo).
The parameters used are just examples, and you should use the values that are appropriate for your environment. Detailed information about available options can also be found in the [Kargo Helm Chart's README.md](https://github.com/akuity/kargo/tree/main/charts/kargo).
:::

Another method is to use `.spec.sources` and store your values files in a separate repository. This is useful if you are using GitOps to track your values configuration changes, which still use the public Helm chart repository.
Another method is to use a Multi-Source Argo CD Application. Here, you'd use the `.spec.sources` field and store your values files in a separate repository. This is useful if you are using GitOps to track your values configuration changes, but will still use the public Helm chart repository.

```yaml
---
Expand Down Expand Up @@ -94,7 +127,7 @@ spec:
We recommend using the above approach as it more closely aligns with GitOps principles and best practices.
:::

Here, the `parametes` section isn't used and instead, the `values.yaml` file is hosted in a separate repository and is referenced using the `ref` field.
The `parametes` section isn't used in this method, instead the `values.yaml` file is hosted in a separate repository and is referenced using the `ref` field.

## Using Kustomize Overlays

Expand Down

0 comments on commit 04f60b7

Please sign in to comment.