Skip to content

Commit

Permalink
docs: initialise Argo CD app of apps documentation (#427)
Browse files Browse the repository at this point in the history
* split -app charts into their own section
* add initial Argo CD App-of-apps documentation
  • Loading branch information
hairmare authored Nov 10, 2021
1 parent 6ff47d8 commit 070ca66
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 31 deletions.
63 changes: 37 additions & 26 deletions README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions docs/argocd-app-of-apps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# ArgoCD App-of-Apps

Our [Argo CD](https://argoproj.github.io/cd/) app-of-apps Helm charts all implement the [Argo CD app-of-apps pattern](https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/#app-of-apps-pattern).
The charts deploy Argo CD Application resources and enable configuring multiple related or "work well together" apps.

They do not deploy any applications directly, rather they configure Argo CD which then does the actually deployment.

## Motivation

In the beginning we used Helm charts without Argo CD. Helm charts offer a great amount of abstraction when it comes to
deploying an individual app but we ended up using Argo CD to make it possible to continuously track changes Deployments
after CI had run Helm. There are some key facts about Helm charts that we noticed make sense to centrally manage.
- Chart sources (where we get our charts from, repo URLs and chart names)
- Chart versions

Our Argo CD app-of-apps charts currently provide these infos in machine deployable, individually overridable bundles. One
might consider them a curated collection of charts from multiple sources.

## Charts

All of our Argo CD app-of-apps charts have a name that is suffixed with `-apps`. A list of them is available from the
[main README](https://github.com/hairmare/helm-charts/blob/docs/app-of-apps/README.md#argo-cd-app-of-apps-charts).

For the most part the charts are thematically grouped. The exception being our `infra-apps` chart which contains apps
we consider valuable on most clusters. As with all the charts, `infra-apps` can contain some parts that are optional
depending on your exact situation, for example on Red Hat OpenShift you would typically not deploy the bundled ingress
component.

## Further Info

For now, these charts may be seen as an alternative to Argo CD ApplicationSets, [let us know](https://github.com/adfinis-sygroup/helm-charts/discussions)
if you would like for the charts to directly support ApplicationSets.
29 changes: 24 additions & 5 deletions hack/config/update-readme/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ helm repo add adfinis https://charts.adfinis.com
{{- range (file.ReadDir "charts/" | sort) -}}
{{- $chartManifestPath := print "charts/" . "/Chart.yaml" -}}
{{- if (file.Exists $chartManifestPath) -}}{{- $chartManifest := file.Read $chartManifestPath | data.YAML -}}
{{- if and (has $chartManifest "icon") (not (has $chartManifest "deprecated")) }}
#### [{{.}}]({{ print $readme.chartBaseURL . }})
{{- if and (has $chartManifest "icon") (not (hasSuffix $chartManifest.name "-apps")) (not (has $chartManifest "deprecated")) }}
#### [{{.}}]({{ print $readme.chartBaseURL . }}) chart

![Version: {{ template "helmcharts.shortVersion" $chartManifest.version }}](https://img.shields.io/badge/version-{{ template "helmcharts.shortVersion" $chartManifest.version }}-brightgreen){{ if has $chartManifest "appVersion" }} ![App version: {{ template "helmcharts.shortVersion" $chartManifest.appVersion }}](https://img.shields.io/badge/app%20version-{{ template "helmcharts.shortVersion" $chartManifest.appVersion }}-brightgreen){{ end }}

Expand All @@ -54,15 +54,34 @@ helm repo add adfinis https://charts.adfinis.com
{{- end -}}
{{- end }}

#### more charts
#### Argo CD app-of-apps charts

Our [Argo CD](https://argoproj.github.io/cd/) app-of-apps Helm charts all implement the [Argo CD app-of-apps pattern](https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/#app-of-apps-pattern).
The charts deploy Argo CD Application resources and enable configuring multiple related or "work well together" apps.
To do this they combine Helm repository URLs with chart names and "tested" versions of the charts. In most cases some
examples of how to configure individual apps are also provided. Please reference [our app-of-apps documentation](./docs/argocd-app-of-apps.md)
for more in-depth information.

| Chart | Description | Version |
| ----- | ----------- | ------- |
{{- range (file.ReadDir "charts/" | sort) -}}
{{- $chartManifestPath := print "charts/" . "/Chart.yaml" -}}
{{- if (file.Exists $chartManifestPath) -}}{{- $chartManifest := file.Read $chartManifestPath | data.YAML -}}
{{- if and (not (has $chartManifest "icon")) (not (has $chartManifest "deprecated")) }}
| [{{.}}]({{ print $readme.chartBaseURL . }}) | {{ $chartManifest.description | strings.Abbrev 80 }} | ![Version: {{ template "helmcharts.shortVersion" $chartManifest.version }}](https://img.shields.io/badge/version-{{ template "helmcharts.shortVersion" $chartManifest.version }}-brightgreen){{ if has $chartManifest "appVersion" }} ![App version: {{ template "helmcharts.shortVersion" $chartManifest.appVersion }}](https://img.shields.io/badge/app%20version-{{ template "helmcharts.shortVersion" $chartManifest.appVersion }}-brightgreen){{ end }} |
{{- if and (hasSuffix $chartManifest.name "-apps") (not (has $chartManifest "deprecated")) }}
| [{{.}}]({{ print $readme.chartBaseURL . }}) | {{ $chartManifest.description | strings.Abbrev 80 }} | ![Version: {{ template "helmcharts.shortVersion" $chartManifest.version }}](https://img.shields.io/badge/version-{{ template "helmcharts.shortVersion" $chartManifest.version }}-brightgreen) |
{{- end -}}
{{- end -}}
{{- end }}

#### more charts

| Chart | Description | Version | App Version |
| ----- | ----------- | ------- | ----------- |
{{- range (file.ReadDir "charts/" | sort) -}}
{{- $chartManifestPath := print "charts/" . "/Chart.yaml" -}}
{{- if (file.Exists $chartManifestPath) -}}{{- $chartManifest := file.Read $chartManifestPath | data.YAML -}}
{{- if and (not (has $chartManifest "icon")) (not (hasSuffix $chartManifest.name "-apps")) (not (has $chartManifest "deprecated")) }}
| [{{.}}]({{ print $readme.chartBaseURL . }}) | {{ $chartManifest.description | strings.Abbrev 35 }} | ![Version: {{ template "helmcharts.shortVersion" $chartManifest.version }}](https://img.shields.io/badge/version-{{ template "helmcharts.shortVersion" $chartManifest.version }}-brightgreen) | {{ if has $chartManifest "appVersion" }} ![App version: {{ template "helmcharts.shortVersion" $chartManifest.appVersion }}](https://img.shields.io/badge/app%20version-{{ template "helmcharts.shortVersion" $chartManifest.appVersion }}-brightgreen){{ end }} |
{{- end -}}
{{- end -}}
{{- end }}
Expand Down

0 comments on commit 070ca66

Please sign in to comment.