An open API service indexing awesome lists of open source software.

https://github.com/edwardtheharris/helm-argo

ArgoProj Helm Charts
https://github.com/edwardtheharris/helm-argo

argo charts helm kubernetes

Last synced: 3 months ago
JSON representation

ArgoProj Helm Charts

Awesome Lists containing this project

README

          

---
abstract: Argo Helm is a collection of **community maintained** charts.
authors:
- name: Xander Harris
email: xandertheharris@gmmail.com
date: 2024-08-17
title: Argo Helm Charts
---

[![Slack](https://img.shields.io/badge/slack-%23argo--helm--charts-brightgreen.svg?logo=slack)](https://argoproj.github.io/community/join-slack)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Chart Publish](https://github.com/argoproj/argo-helm/actions/workflows/publish.yml/badge.svg?branch=main)](https://github.com/argoproj/argo-helm/actions/workflows/publish.yml)
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/argo)](https://artifacthub.io/packages/search?repo=argo)
[![CLOMonitor](https://img.shields.io/endpoint?url=https://clomonitor.io/api/projects/cncf/argo/badge)](https://clomonitor.io/projects/cncf/argo)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-helm/badge)](https://api.securityscorecards.dev/projects/github.com/argoproj/argo-helm)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7942/badge)](https://www.bestpractices.dev/projects/7942)

Argo Helm is a collection of **community maintained** charts for [https://argoproj.github.io](https://argoproj.github.io)
projects. The charts can be added using following command:

```bash
helm repo add argo https://argoproj.github.io/argo-helm
```

## Contributing

We'd love to have you contribute! Please refer to our
[contribution guidelines](contributing.md) for details.

### Custom resource definitions

Some users would prefer to install the CRDs _outside_ of the chart. You can
disable the CRD installation of the main four charts (argo-cd, argo-workflows,
argo-events, argo-rollouts) by using `--set crds.install=false` when installing
the chart.

Helm cannot upgrade custom resource definitions in the `/crds` folder
[by design](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/#some-caveats-and-explanations).
Our CRDs have been moved to `/templates` to address this design decision.

If you are using versions of a chart that have the CRDs in the root of the
chart or have elected to manage the Argo CRDs outside of the chart, please
use `kubectl` to upgrade CRDs manually from `templates/crds`
folder or via the manifests from the upstream project repo:

Example:

```bash
kubectl apply -k "https://github.com/argoproj/argo-cd/manifests/crds?ref="

# Eg. version v2.4.9
kubectl apply -k "https://github.com/argoproj/argo-cd/manifests/crds?ref=v2.4.9"
```

### Security Policy

Please refer to [security.md](security.md) for details on how to report
security issues.

### Changelog

Releases are managed independently for each helm chart, and changelogs are
tracked on each release. Read more about this process
[at the argo-cd contribution guide](https://github.com/argoproj/argo-helm/blob/main/CONTRIBUTING.md#changelog).

## Charts use Helm "Capabilities"

Our charts make use of the Helm built-in object "Capabilities":

> This provides information about what capabilities the Kubernetes cluster
> supports.[^ref]

Today we use:

- `.Capabilities.APIVersions.Has` mostly to determine whether the CRDs for
ServiceMonitors (from prometheus-operator) exists inside the cluster
- `.Capabilities.KubeVersion.Version` to handle correct apiVersion of a specific
resource kind (eg. "policy/v1" vs. "policy/v1beta1")

If you use the charts only to template the manifests, without installing
(`helm install ..`), you need to make sure that Helm (or the Helm SDK) receives
the available APIs from your Kubernetes cluster.

For this you need to pass the `--api-versions` parameter to the `helm template`
command:

```bash
helm template argocd \
oci://ghcr.io/argoproj/argo-helm/argo-cd \
--api-versions monitoring.coreos.com/v1 \
--values my-argocd-values.yaml
```

If you use other tools like
[Kustomize](https://kubectl.docs.kubernetes.io/references/kustomize/builtins/)
or [helmfile](https://helmfile.readthedocs.io/en/latest/#configuration) to
render it, there are equivalent options.

Example with Kustomize:

```yaml
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

helmCharts:
- name: argo-cd
repo: oci://ghcr.io/argoproj/argo-helm
version: x.y.z
releaseName: argocd
apiVersions:
- monitoring.coreos.com/v1
valuesFile: my-argocd-values.yaml
```

Example with helmfile:

```yaml
# helmfile.yaml
repositories:
- name: argo
url: https://argoproj.github.io/argo-helm

apiVersions:
- monitoring.coreos.com/v1

releases:
- name: argocd
namespace: argocd
chart: argo/argo-cd
values:
- my-argocd-values.yaml
```

[^ref]: [Source](https://helm.sh/docs/chart_template_guide/builtin_objects/)