From fdd244e1f0f66ef6df312ed1fa3ba3f22f48a860 Mon Sep 17 00:00:00 2001 From: Lucas Bickel Date: Mon, 8 Nov 2021 09:33:47 +0100 Subject: [PATCH 1/2] docs: split -app charts into their own section --- README.md | 65 +++++++++++++--------- hack/config/update-readme/README.md.gotmpl | 31 +++++++++-- 2 files changed, 65 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index b499fc18c..fd025f228 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ helm repo add adfinis https://charts.adfinis.com ``` ### Available Helm charts -#### [cert-manager-issuers](charts/cert-manager-issuers) +#### [cert-manager-issuers](charts/cert-manager-issuers) chart ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 1.x](https://img.shields.io/badge/app%20version-1.x-brightgreen) @@ -24,34 +24,47 @@ Configure cert-manager Issuers and ClusterIssuers via Helm [cert-manager-issuers](charts/cert-manager-issuers) -#### 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. + +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. | Chart | Description | Version | | ----- | ----------- | ------- | -| [argoconfig](charts/argoconfig) | Configure Argo CD AppProjects and Applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | -| [azure-apps](charts/azure-apps) | Argo CD app-of-apps config for Azure applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [back8sup](charts/back8sup) | Deploy back8sup to a Kubernetes Cluster | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [backup-apps](charts/backup-apps) | Argo CD app-of-apps config for backup components | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [barman](charts/barman) | Chart for Barman PostgreSQL Backup and Recovery Manager | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 2.1.x](https://img.shields.io/badge/app%20version-2.1.x-brightgreen) | -| [caasperli](charts/caasperli) | Deploy Caasperli to a Kubernetes Cluster | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: latest](https://img.shields.io/badge/app%20version-latest-brightgreen) | -| [cert-manager-monitoring](charts/cert-manager-monitoring) | Monitor cert-manager with cert-manager-mixin. | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | -| [common](charts/common) | Common chartbuilding components and helpers, based on incubator/common | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [csi-secret-provider-class](charts/csi-secret-provider-class) | A Helm chart to create a SecretProviderClass resource | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [customer-center](charts/customer-center) | Chart for Customer-Center application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 2.1.x](https://img.shields.io/badge/app%20version-2.1.x-brightgreen) | -| [huawei-csi-plugin](charts/huawei-csi-plugin) | Deploy the Huawei CSI plugin | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 2.2.x](https://img.shields.io/badge/app%20version-2.2.x-brightgreen) | -| [infra-apps](charts/infra-apps) | Argo CD app-of-apps config for infrastructure components | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [logging-apps](charts/logging-apps) | Argo CD app-of-apps config for logging applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [misc-apps](charts/misc-apps) | Argo CD app-of-apps config for miscellaneous small tools | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [openshift-etcd-backup](charts/openshift-etcd-backup) | Chart for openshift-etcd-backup solution | ![Version: 1.5.x](https://img.shields.io/badge/version-1.5.x-brightgreen) ![App version: 1.5.x](https://img.shields.io/badge/app%20version-1.5.x-brightgreen) | -| [osschallenge](charts/osschallenge) | Chart for OSS-Challenge application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: ed.x](https://img.shields.io/badge/app%20version-ed.x-brightgreen) | -| [rmd](charts/rmd) | Chart for Rmd.io application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: ed.x](https://img.shields.io/badge/app%20version-ed.x-brightgreen) | -| [security-apps](charts/security-apps) | Argo CD app-of-apps config for security applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [sentry-apps](charts/sentry-apps) | Sentry on premise | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 5.1.x](https://img.shields.io/badge/app%20version-5.1.x-brightgreen) | -| [storage-apps](charts/storage-apps) | Argo CD app-of-apps config for storage applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [timed](charts/timed) | Chart for Timed application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 1.3.x](https://img.shields.io/badge/app%20version-1.3.x-brightgreen) | -| [tracing-apps](charts/tracing-apps) | Argo CD app-of-apps config for tracing applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [vault-auth](charts/vault-auth) | A helm chart to install the vault-auth serviceaccount for enabling vault's ku... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | -| [vault-monitoring](charts/vault-monitoring) | monitor your vault server from within Kubernetes' prometheus | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | +| [azure-apps](charts/azure-apps) | Argo CD app-of-apps config for Azure applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [backup-apps](charts/backup-apps) | Argo CD app-of-apps config for backup components | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [infra-apps](charts/infra-apps) | Argo CD app-of-apps config for infrastructure components | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [logging-apps](charts/logging-apps) | Argo CD app-of-apps config for logging applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [misc-apps](charts/misc-apps) | Argo CD app-of-apps config for miscellaneous small tools | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [security-apps](charts/security-apps) | Argo CD app-of-apps config for security applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [sentry-apps](charts/sentry-apps) | Sentry on premise | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [storage-apps](charts/storage-apps) | Argo CD app-of-apps config for storage applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | +| [tracing-apps](charts/tracing-apps) | Argo CD app-of-apps config for tracing applications | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | + +#### more charts + +| Chart | Description | Version | App Version | +| ----- | ----------- | ------- | ----------- | +| [argoconfig](charts/argoconfig) | Configure Argo CD AppProjects an... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | | +| [back8sup](charts/back8sup) | Deploy back8sup to a Kubernetes ... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | +| [barman](charts/barman) | Chart for Barman PostgreSQL Back... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 2.1.x](https://img.shields.io/badge/app%20version-2.1.x-brightgreen) | +| [caasperli](charts/caasperli) | Deploy Caasperli to a Kubernetes... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: latest](https://img.shields.io/badge/app%20version-latest-brightgreen) | +| [cert-manager-monitoring](charts/cert-manager-monitoring) | Monitor cert-manager with cert-m... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | | +| [common](charts/common) | Common chartbuilding components ... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | +| [csi-secret-provider-class](charts/csi-secret-provider-class) | A Helm chart to create a SecretP... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | +| [customer-center](charts/customer-center) | Chart for Customer-Center applic... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 2.1.x](https://img.shields.io/badge/app%20version-2.1.x-brightgreen) | +| [huawei-csi-plugin](charts/huawei-csi-plugin) | Deploy the Huawei CSI plugin | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 2.2.x](https://img.shields.io/badge/app%20version-2.2.x-brightgreen) | +| [openshift-etcd-backup](charts/openshift-etcd-backup) | Chart for openshift-etcd-backup ... | ![Version: 1.5.x](https://img.shields.io/badge/version-1.5.x-brightgreen) | ![App version: 1.5.x](https://img.shields.io/badge/app%20version-1.5.x-brightgreen) | +| [osschallenge](charts/osschallenge) | Chart for OSS-Challenge application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: ed.x](https://img.shields.io/badge/app%20version-ed.x-brightgreen) | +| [rmd](charts/rmd) | Chart for Rmd.io application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: ed.x](https://img.shields.io/badge/app%20version-ed.x-brightgreen) | +| [timed](charts/timed) | Chart for Timed application | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 1.3.x](https://img.shields.io/badge/app%20version-1.3.x-brightgreen) | +| [vault-auth](charts/vault-auth) | A helm chart to install the vaul... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | +| [vault-monitoring](charts/vault-monitoring) | monitor your vault server from w... | ![Version: 0.x](https://img.shields.io/badge/version-0.x-brightgreen) | ![App version: 0.x](https://img.shields.io/badge/app%20version-0.x-brightgreen) | ## Contributing diff --git a/hack/config/update-readme/README.md.gotmpl b/hack/config/update-readme/README.md.gotmpl index 46947d786..f5294ae6c 100644 --- a/hack/config/update-readme/README.md.gotmpl +++ b/hack/config/update-readme/README.md.gotmpl @@ -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 }} @@ -54,15 +54,36 @@ 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. + +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. | 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 }} From 0a5eb1a86c4a83bbd006be382900039f989f0440 Mon Sep 17 00:00:00 2001 From: Lucas Bickel Date: Mon, 8 Nov 2021 10:13:45 +0100 Subject: [PATCH 2/2] docs: add Argo CD App-of-apps documentation --- README.md | 6 ++-- docs/README.md | 1 + docs/argocd-app-of-apps.md | 32 ++++++++++++++++++++++ hack/config/update-readme/README.md.gotmpl | 6 ++-- 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 docs/argocd-app-of-apps.md diff --git a/README.md b/README.md index fd025f228..47093390f 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,8 @@ Configure cert-manager Issuers and ClusterIssuers via Helm 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. - -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. +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 | | ----- | ----------- | ------- | diff --git a/docs/README.md b/docs/README.md index 7fe992147..7abad7a77 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,3 +2,4 @@ * [Development](./development.md) * [Documentation](./documentation.md) +* [Argo CD app-of-apps](./argocd-app-of-apps.md) diff --git a/docs/argocd-app-of-apps.md b/docs/argocd-app-of-apps.md new file mode 100644 index 000000000..f90494466 --- /dev/null +++ b/docs/argocd-app-of-apps.md @@ -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. diff --git a/hack/config/update-readme/README.md.gotmpl b/hack/config/update-readme/README.md.gotmpl index f5294ae6c..9a8696a41 100644 --- a/hack/config/update-readme/README.md.gotmpl +++ b/hack/config/update-readme/README.md.gotmpl @@ -59,10 +59,8 @@ helm repo add adfinis https://charts.adfinis.com 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. - -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. +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 | | ----- | ----------- | ------- |