├── .gitignore ├── .DS_Store ├── charts ├── nocodb │ ├── img │ │ └── icon.png │ ├── .helmignore │ ├── Chart.lock │ ├── templates │ │ ├── configmap.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── secrets.yaml │ │ ├── smtp-secret.yaml │ │ ├── admin-user-secert.yaml │ │ ├── serviceaccount.yaml │ │ ├── externalminio-secrets.yaml │ │ ├── externaldb-secrets.yaml │ │ ├── hpa.yaml │ │ ├── NOTES.txt │ │ ├── ingress.yaml │ │ └── service.yaml │ ├── README.md.gotmpl │ └── Chart.yaml ├── flagsmith │ ├── templates │ │ ├── NOTES.txt │ │ ├── api-secrets.yaml │ │ ├── frontend-secrets.yaml │ │ ├── api-svc.yaml │ │ ├── frontend-svc.yaml │ │ ├── conf.yaml │ │ ├── tests │ │ │ └── test.yaml │ │ ├── ingress.yaml │ │ └── _helpers.tpl │ ├── README.md.gotmpl │ └── Chart.yaml ├── oaf-odoo-data-migration │ ├── .DS_Store │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── secret.yaml │ │ ├── pvc.yaml │ │ ├── configmap.yaml │ │ ├── NOTES.txt │ │ └── job.yaml │ ├── Chart.yaml │ └── values.yaml ├── apicurio │ ├── ci │ │ └── ci-values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── apicurio-studio-secrets.yaml │ │ ├── tests │ │ │ └── test-connections.yaml │ │ ├── apicurio-studio-services.yaml │ │ ├── _helpers.tpl │ │ ├── apicurio-studio-ui-deployment.yaml │ │ ├── apicurio-studio-ws-deployment.yaml │ │ └── apicurio-studio-api-deployment.yaml │ ├── Chart.lock │ ├── .helmignore │ ├── Chart.yaml │ └── README.md.gotmpl ├── sydent │ ├── templates │ │ ├── secret.yaml │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── hpa.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ └── deployment.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── values.yaml │ └── README.md ├── kobotoolbox │ ├── templates │ │ ├── nginx-conf.yaml │ │ ├── NOTES.txt │ │ ├── enketo-conf.yaml │ │ ├── enketo-svc.yaml │ │ ├── kobo-conf.yaml │ │ ├── kobo-pvc.yaml │ │ ├── tests │ │ │ ├── test-kobo-connections.yaml │ │ │ └── test-kobo-api.yaml │ │ ├── kobo-svc.yaml │ │ ├── kobo-postgres-init.yaml │ │ ├── ingress.yaml │ │ ├── metrics-exporter.yaml │ │ └── enketo-deploy.yaml │ ├── .helmignore │ ├── Chart.lock │ ├── README.md.gotmpl │ └── Chart.yaml ├── mautic │ ├── Chart.lock │ ├── requirements.lock │ ├── templates │ │ ├── secret.yaml │ │ ├── pvc.yaml │ │ ├── service.yaml │ │ ├── ingress.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ └── deployment.yaml │ ├── Chart.yaml │ ├── README.md.gotmpl │ ├── mautic.svg │ ├── test-values.yaml │ └── README.md ├── kutt │ ├── templates │ │ ├── secret.yaml │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── hpa.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ └── deployment.yaml │ ├── .helmignore │ ├── README.md.gotmpl │ └── Chart.yaml ├── n8n │ ├── templates │ │ ├── configmap.yaml │ │ ├── service.yaml │ │ ├── secret.yaml │ │ ├── pvc.yaml │ │ ├── hpa.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── ingress.yaml │ │ └── NOTES.txt │ ├── Chart.lock │ ├── .helmignore │ ├── README.md.gotmpl │ └── Chart.yaml ├── uptime-wrapper │ ├── templates │ │ ├── secrets.yaml │ │ ├── service.yaml │ │ ├── serviceaccount.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── hpa.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ └── deployment.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── growthbook │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── configmap.yaml │ │ ├── service.yaml │ │ ├── pvc.yaml │ │ ├── secrets.yaml │ │ ├── hpa.yaml │ │ ├── ingress.yaml │ │ └── mongodb-configmap.yaml │ ├── README.md.gotmpl │ └── Chart.yaml └── pgbouncer │ ├── templates │ ├── serviceaccount.yaml │ ├── tests │ │ └── test-connection.yaml │ ├── service.yaml │ ├── secret.yaml │ ├── hpa.yaml │ ├── configmap.yaml │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ └── ingress.yaml │ ├── Chart.yaml │ ├── README.md.gotmpl │ ├── LICENSE │ └── values.yaml ├── archive ├── metabase │ ├── templates │ │ ├── NOTES.txt │ │ ├── secrets.yaml │ │ ├── metabase-svc.yaml │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ └── tests │ │ │ └── test.yaml │ ├── Chart.yaml │ ├── README.md.gotmpl │ ├── values.yaml │ └── README.md └── geonode │ ├── templates │ ├── nginx-conf.yaml │ ├── geonode-pvc.yaml │ ├── geonode-svc.yaml │ ├── tests │ │ └── test-geonode.yaml │ ├── geonode-secrets.yaml │ ├── geonode-ingress.yaml │ ├── postgres-init.yaml │ ├── NOTES.txt │ └── geonode-geoserver-conf.yaml │ ├── Chart.lock │ ├── .helmignore │ ├── README.md.gotmpl │ └── Chart.yaml ├── .yamllint.yaml ├── .github ├── ct.yaml ├── workflows │ ├── helm-release.yaml │ └── helm-test.yaml └── PULL_REQUEST_TEMPLATE.md ├── artifacthub-repo.yml ├── .pre-commit-config.yaml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | localtests 2 | *.tgz 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/one-acre-fund/oaf-public-charts/HEAD/.DS_Store -------------------------------------------------------------------------------- /charts/nocodb/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/one-acre-fund/oaf-public-charts/HEAD/charts/nocodb/img/icon.png -------------------------------------------------------------------------------- /archive/metabase/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing Metabase as {{ .Release.Name }} in namespace {{ .Release.Namespace }}! 2 | 3 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing Flagsmith as {{ .Release.Name }} in namespace {{ .Release.Namespace }}! 2 | 3 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/one-acre-fund/oaf-public-charts/HEAD/charts/oaf-odoo-data-migration/.DS_Store -------------------------------------------------------------------------------- /charts/apicurio/ci/ci-values.yaml: -------------------------------------------------------------------------------- 1 | keycloak: 2 | url: https://studio-auth.apicur.io/auth 3 | realm: apicurio-local 4 | client: 5 | id: apicurio-studio 6 | secret: apicuriokc 7 | -------------------------------------------------------------------------------- /archive/metabase/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-metabase 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | {{- include "secrets" . | nindent 2 }} 8 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/api-secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-flagsmith 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | {{ include "api_secrets" . | nindent 2 }} 8 | -------------------------------------------------------------------------------- /.yamllint.yaml: -------------------------------------------------------------------------------- 1 | extends: default 2 | 3 | rules: 4 | line-length: 5 | max: 800 6 | level: error 7 | document-start: disable 8 | empty-lines: 9 | max: 1 10 | 11 | ignore: | 12 | **/templates/** 13 | index.yaml 14 | -------------------------------------------------------------------------------- /charts/sydent/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-config 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | SYDENT_SMTP_PASSWORD: {{ .Values.env.email.smtppassword | b64enc }} 8 | -------------------------------------------------------------------------------- /.github/ct.yaml: -------------------------------------------------------------------------------- 1 | chart-repos: 2 | - bitnami=https://charts.bitnami.com/bitnami 3 | - gatekeeper=https://gogatekeeper.github.io/helm-gogatekeeper 4 | helm-extra-args: --timeout 15m 5 | debug: true 6 | target-branch: main 7 | lint-conf: .yamllint.yaml 8 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/frontend-secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-flagsmith-frontend 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | {{ include "frontend_secrets" . | nindent 2 }} 8 | -------------------------------------------------------------------------------- /archive/geonode/templates/nginx-conf.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-nginx-confd 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | geonode.conf: | 8 | {{- include "nginx_conf" . | nindent 4 }} 9 | -------------------------------------------------------------------------------- /charts/apicurio/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing {{ .Chart.Name }}. 2 | 3 | Your release is named {{ .Release.Name }}. 4 | 5 | To learn more about the release, try: 6 | 7 | $ helm status {{ .Release.Name }} 8 | $ helm get {{ .Release.Name }} 9 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/nginx-conf.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-nginx-confd 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | default.conf: | 8 | {{- include "nginx_conf" . | nindent 4 }} 9 | -------------------------------------------------------------------------------- /charts/mautic/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: mariadb 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 11.4.7 5 | digest: sha256:69f21635d504b00c40ff2d37439f3c60095c7f37a1b816f976ed77edb18d0d1d 6 | generated: "2024-01-16T12:56:52.422271+03:00" 7 | -------------------------------------------------------------------------------- /charts/apicurio/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: postgresql 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 11.6.26 5 | digest: sha256:780460d4ae09c265ee1b0f0b49d01ae2d372ca9a22289353c15356e84b553044 6 | generated: "2022-09-08T17:31:37.893552+03:00" 7 | -------------------------------------------------------------------------------- /charts/mautic/requirements.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: mariadb 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 11.4.6 5 | digest: sha256:7395aca4f5d515b0336b9ae5cb49785913549a80be4cdd88fd7a65a287de9b5c 6 | generated: "2023-02-16T11:49:51.04783+02:00" 7 | -------------------------------------------------------------------------------- /charts/kutt/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: kutt 5 | labels: 6 | {{- include "kutt.labels" . | nindent 4 }} 7 | data: 8 | {{- range $key, $val := .Values.secretEnv }} 9 | {{ $key }}: {{ $val | b64enc }} 10 | {{- end }} 11 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing KoboToolbox! 2 | 3 | You can access the application using the following external URLs: 4 | - Home: {{ include "kpi_url" . }} 5 | - Kobocat (form API): {{ include "kobocat_url" . }} 6 | - Enketo (web form viewer): {{ include "enketo_url" . }} 7 | 8 | -------------------------------------------------------------------------------- /charts/n8n/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.config }} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "n8n.fullname" . }} 6 | labels: 7 | {{- include "n8n.labels" . | nindent 4 }} 8 | data: 9 | config.json: | 10 | {{ .Values.config | toPrettyJson | indent 4 }} 11 | 12 | {{- end }} -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/enketo-conf.yaml: -------------------------------------------------------------------------------- 1 | # The Enketo conf needs to be a Secret because it includes passwords 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ .Release.Name }}-enketo 6 | namespace: {{ .Release.Namespace }} 7 | stringData: 8 | config.json: |- 9 | {{- tpl .Values.enketo.config . | nindent 4 -}} 10 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ include "uptime-wrapper.fullname" . }}-secret 5 | type: Opaque 6 | data: 7 | ADMIN_PASSWORD: {{ .Values.env.ADMIN_PASSWORD | b64enc }} 8 | KUMA_PASSWORD: {{ .Values.env.KUMA_PASSWORD | b64enc }} 9 | SECRET_KEY: {{ .Values.env.SECRET_KEY | b64enc }} -------------------------------------------------------------------------------- /charts/n8n/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: redis 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 17.7.4 5 | - name: postgresql 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 11.6.26 8 | digest: sha256:859af2508dfc2e3df8fa2324ebb4a81cb8108acae7d374f71290a533c7416389 9 | generated: "2023-02-17T14:11:32.189165+02:00" 10 | -------------------------------------------------------------------------------- /archive/geonode/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: postgresql 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 10.1.4 5 | - name: rabbitmq 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 8.6.4 8 | digest: sha256:ceddcd3499d613ee83cd1bc843517ef09d1021e3f32c1f7fe620df86e267421d 9 | generated: "2021-02-09T10:06:07.7240304+03:00" 10 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/api-svc.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-api 5 | namespace: {{ .Release.Namespace }} 6 | spec: 7 | selector: 8 | org.oneacrefund.instance: {{ .Release.Name }}-flagsmith-api 9 | ports: 10 | - targetPort: 8000 11 | port: 8000 12 | name: api 13 | type: {{ .Values.general.serviceType }} 14 | -------------------------------------------------------------------------------- /archive/metabase/templates/metabase-svc.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-metabase 5 | namespace: {{ .Release.Namespace }} 6 | spec: 7 | selector: 8 | org.metabase.instance: {{ .Release.Name }}-metabase 9 | ports: 10 | - targetPort: 3000 11 | port: 3000 12 | name: app 13 | type: {{ .Values.general.serviceType }} 14 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/enketo-svc.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-enketo 5 | namespace: {{ .Release.Namespace }} 6 | spec: 7 | selector: 8 | org.kobotoolbox.instance: {{ .Release.Name }}-enketo 9 | ports: 10 | - targetPort: 8005 11 | port: 8005 12 | name: enketo 13 | type: {{ .Values.general.serviceType }} 14 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/frontend-svc.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-frontend 5 | namespace: {{ .Release.Namespace }} 6 | spec: 7 | selector: 8 | org.oneacrefund.instance: {{ .Release.Name }}-flagsmith-frontend 9 | ports: 10 | - targetPort: 8080 11 | port: 8080 12 | name: frontend 13 | type: {{ .Values.general.serviceType }} 14 | -------------------------------------------------------------------------------- /charts/kutt/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "kutt.serviceAccountName" . }} 6 | labels: 7 | {{- include "kutt.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/mautic/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ include "mautic.fullname" . | quote }} 5 | labels: 6 | {{- include "mautic.labels" . | nindent 4 }} 7 | data: 8 | MAUTIC_DB_PASSWORD: {{ .Values.mariadb.auth.password | b64enc }} 9 | {{- range $key, $value := .Values.extraSecretEnvs }} 10 | {{ $key }}: {{ $value | b64enc }} 11 | {{- end }} 12 | -------------------------------------------------------------------------------- /charts/sydent/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "sydent.serviceAccountName" . }} 6 | labels: 7 | {{- include "sydent.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/growthbook/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "growthbook.serviceAccountName" . }} 6 | labels: 7 | {{- include "growthbook.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /archive/geonode/templates/geonode-pvc.yaml: -------------------------------------------------------------------------------- 1 | # PVC for mariadb and nextcloud disk 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: {{ .Release.Name }}-geonode 6 | namespace: {{ .Release.Namespace }} 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | storageClassName: {{ .Values.global.storageClass }} 11 | resources: 12 | requests: 13 | storage: {{ .Values.general.storageSize }} 14 | -------------------------------------------------------------------------------- /charts/mautic/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.volume.enabled }} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "mautic.name" .}}-var-www-html 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/name: {{ include "mautic.name" . }} 9 | app.kubernetes.io/instance: {{ .Release.Name }} 10 | spec: 11 | {{- toYaml .Values.volume.spec | nindent 2 }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/kutt/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "kutt.fullname" . }} 5 | labels: 6 | {{- include "kutt.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "kutt.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/apicurio/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "oaf-odoo-data-migration.serviceAccountName" . }} 6 | labels: 7 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/sydent/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "sydent.fullname" . }} 5 | labels: 6 | {{- include "sydent.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "sydent.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /archive/geonode/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | .vscode/ -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: oaf-odoo-data-migration 3 | description: A Helm chart for OAF Odoo Data Migration application 4 | type: application 5 | version: 0.1.1 6 | appVersion: "1.0.0" 7 | home: https://github.com/one-acre-fund/oaf-odoo-data-migration 8 | maintainers: 9 | - name: orchide 10 | email: orchide.irakoze@oneacrefund.org 11 | keywords: 12 | - odoo 13 | - data-migration 14 | - excel 15 | - xmlrpc 16 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "pgbouncer.serviceAccountName" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | {{- include "pgbouncer.labels" . | nindent 4 }} 9 | {{- with .Values.serviceAccount.annotations }} 10 | annotations: 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | {{- end }} 14 | -------------------------------------------------------------------------------- /charts/kobotoolbox/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | .vscode/ 23 | -------------------------------------------------------------------------------- /charts/kutt/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /charts/n8n/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /archive/geonode/templates/geonode-svc.yaml: -------------------------------------------------------------------------------- 1 | # Load-balancer for SGW 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ .Release.Name }}-geonode 6 | namespace: {{ .Release.Namespace }} 7 | spec: 8 | selector: 9 | org.geonode.instance: {{ .Release.Name }}-geonode 10 | ports: 11 | - targetPort: 80 12 | port: 80 13 | name: www 14 | - targetPort: 8080 15 | port: 8080 16 | name: geoserver 17 | type: {{ .Values.general.serviceType }} 18 | -------------------------------------------------------------------------------- /charts/nocodb/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /charts/sydent/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /charts/kutt/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "kutt.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "kutt.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "kutt.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /charts/sydent/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "sydent.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "sydent.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "sydent.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "uptime-wrapper.fullname" . }} 5 | labels: 6 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "uptime-wrapper.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/kobo-conf.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-kobo 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | kpi_uwsgi.ini: | 8 | {{ tpl .Values.kpi.uwsgi_conf . | nindent 5 }} 9 | kc_uwsgi.ini: | 10 | {{ tpl .Values.kobocat.uwsgi_conf . | nindent 5 }} 11 | # Dummy script to drop in place of various init scripts to disable... 12 | empty_script: | 13 | #!/bin/bash 14 | echo "Skipping $0 $@" 15 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "pgbouncer.fullname" . }}-test-connection" 5 | labels: 6 | {{ include "pgbouncer.labels" . | indent 4 }} 7 | annotations: 8 | "helm.sh/hook": test-success 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "pgbouncer.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/mautic/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "mautic.fullname" . }} 5 | labels: 6 | {{ include "mautic.labels" . | indent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: 80 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: {{ include "mautic.name" . }} 16 | app.kubernetes.io/instance: {{ .Release.Name }} 17 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "uptime-wrapper.serviceAccountName" . }} 6 | labels: 7 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | automountServiceAccountToken: {{ .Values.serviceAccount.automount }} 13 | {{- end }} 14 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "oaf-odoo-data-migration.fullname" . }} 5 | labels: 6 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "oaf-odoo-data-migration.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "uptime-wrapper.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "uptime-wrapper.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "pgbouncer.fullname" . }} 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | {{- include "pgbouncer.labels" . | nindent 4 }} 8 | spec: 9 | type: {{ .Values.service.type }} 10 | ports: 11 | - port: {{ .Values.service.port }} 12 | targetPort: {{ .Values.service.port }} 13 | protocol: TCP 14 | name: pgbouncer 15 | selector: 16 | {{- include "pgbouncer.selectorLabels" . | nindent 4 }} 17 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.odoo.useSecret }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "oaf-odoo-data-migration.fullname" . }}-secrets 6 | labels: 7 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 8 | type: Opaque 9 | data: 10 | odoo-url: {{ .Values.odoo.url | b64enc }} 11 | odoo-database: {{ .Values.odoo.database | b64enc }} 12 | odoo-username: {{ .Values.odoo.username | b64enc }} 13 | odoo-password: {{ .Values.odoo.password | b64enc }} 14 | {{- end }} 15 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-pgbouncer-secret 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | {{- include "pgbouncer.labels" . | nindent 4 }} 8 | type: Opaque 9 | data: 10 | POSTGRESQL_PASSWORD: {{ .Values.pgbouncer.password | b64enc | quote }} 11 | {{- if .Values.extraSecretConfigs }} 12 | {{- range $key, $value := .Values.extraSecretConfigs }} 13 | {{ $key }}: {{ $value | b64enc | quote }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /charts/n8n/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "n8n.fullname" . }} 5 | labels: 6 | {{- include "n8n.labels" . | nindent 4 }} 7 | {{- with .Values.service.annotations }} 8 | annotations: 9 | {{- toYaml . | nindent 4 }} 10 | {{- end }} 11 | spec: 12 | type: {{ .Values.service.type }} 13 | ports: 14 | - port: {{ .Values.service.port }} 15 | targetPort: http 16 | protocol: TCP 17 | name: http 18 | selector: 19 | {{- include "n8n.selectorLabels" . | nindent 4 }} -------------------------------------------------------------------------------- /charts/kobotoolbox/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: redis 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 16.12.3 5 | - name: redis 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 16.12.3 8 | - name: postgresql 9 | repository: https://charts.bitnami.com/bitnami 10 | version: 11.9.13 11 | - name: mongodb 12 | repository: https://charts.bitnami.com/bitnami 13 | version: 12.1.31 14 | digest: sha256:382b5056978bcf1e18d1d5cd444fa68ca6bc8ac0ca3631f568af835e5ec75500 15 | generated: "2023-01-07T22:14:18.421286+03:00" 16 | -------------------------------------------------------------------------------- /archive/metabase/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- define "secrets" -}} 2 | db-password: {{ .Values.postgresql.postgresqlPassword | b64enc }} 3 | {{- end -}} 4 | 5 | {{- define "dbHost" -}} 6 | {{ coalesce .Values.postgresql.host ( print .Release.Name "-postgresql." .Release.Namespace ".svc" ) }} 7 | {{- end -}} 8 | 9 | {{- define "dbUrl" -}} 10 | {{ printf "postgresql://%s:%s@%s:%s/%s" .Values.postgresql.postgresqlUsername .Values.postgresql.postgresqlPassword (include "dbHost" .) ( toString .Values.postgresql.service.port ) .Values.postgresql.postgresqlDatabase }} 11 | {{- end -}} 12 | -------------------------------------------------------------------------------- /charts/nocodb/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: postgresql 3 | repository: oci://registry-1.docker.io/bitnamicharts 4 | version: 16.0.1 5 | - name: redis 6 | repository: oci://registry-1.docker.io/bitnamicharts 7 | version: 20.2.1 8 | - name: minio 9 | repository: oci://registry-1.docker.io/bitnamicharts 10 | version: 14.7.15 11 | - name: common 12 | repository: oci://registry-1.docker.io/bitnamicharts 13 | version: 2.24.0 14 | digest: sha256:095c8a46cf7ecfb015a77c6291d8fc4532f3a2f42118168ce56a31f140986183 15 | generated: "2024-10-16T06:52:03.1265937+03:00" 16 | -------------------------------------------------------------------------------- /charts/n8n/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | {{- if or .Values.secret .Values.n8n.encryption_key }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "n8n.fullname" . }} 6 | labels: 7 | {{- include "n8n.labels" . | nindent 4 }} 8 | data: 9 | secret.json: {{ .Values.secret | toPrettyJson | b64enc }} 10 | {{- if .Values.n8n.encryption_key }} 11 | N8N_ENCRYPTION_KEY: {{ .Values.n8n.encryption_key | b64enc }} 12 | {{- end }} 13 | 14 | {{- range $key, $value := .Values.extraSecretEnv }} 15 | {{ $key }}: {{ $value | b64enc }} 16 | {{- end }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/conf.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-conf 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | admin.py: | 8 | ADMIN_USERNAME = env("ADMIN_USERNAME", default="admin") 9 | ADMIN_EMAIL = env("ADMIN_EMAIL", default="admin@example.com") 10 | ADMIN_INITIAL_PASSWORD = env("ADMIN_INITIAL_PASSWORD", default="password") 11 | {{- if .Values.flagsmith.extraConf }} 12 | extra-conf.py: | 13 | {{ .Values.flagsmith.extraConf | nindent 4 }} 14 | {{- end -}} 15 | -------------------------------------------------------------------------------- /charts/growthbook/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | data: 3 | livenessprobe-exec.sh: | 4 | #!/bin/bash 5 | CURL_HTTP=$(curl -s -o /dev/null -w "%{http_code}" -XPOST http://localhost:3100/auth/refresh) 6 | CURL_EXIT=$? 7 | if [ $CURL_EXIT -eq 0 ] && [ $CURL_HTTP -eq 200 ]; then 8 | echo "Liveness check probe OK" 9 | exit 0 10 | else 11 | echo "Liveness check probe ERROR - curl exit code $CURL_EXIT, API HTTP code $CURL_HTTP" 12 | exit 1 13 | fi 14 | 15 | kind: ConfigMap 16 | metadata: 17 | name: {{ include "growthbook.fullname" . }}-livenessprobe-exec -------------------------------------------------------------------------------- /charts/growthbook/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "growthbook.fullname" . }} 5 | labels: 6 | {{- include "growthbook.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.port.frontendPort }} 11 | targetPort: 3000 12 | protocol: TCP 13 | name: frontend-port 14 | - port: {{ .Values.port.backendPort }} 15 | targetPort: 3100 16 | protocol: TCP 17 | name: backend-port 18 | selector: 19 | {{- include "growthbook.selectorLabels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /archive/geonode/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | ```console 17 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 18 | $ helm install my-release one-acre-fund/geonode 19 | ``` 20 | 21 | {{ template "chart.requirementsSection" . }} 22 | 23 | {{ template "chart.valuesSection" . }} -------------------------------------------------------------------------------- /archive/metabase/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: metabase 3 | version: 0.1.11 4 | description: Metabase with postgres persistence and plugins support 5 | home: https://www.metabase.com/ 6 | icon: https://avatars.githubusercontent.com/u/10520629?s=400&v=4 7 | keywords: 8 | - bi 9 | - analytics 10 | maintainers: 11 | - name: Yann-J 12 | email: yann.jouanique@gmail.com 13 | sources: 14 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/metabase 15 | dependencies: 16 | - name: postgresql 17 | version: ~11.6.6 18 | repository: https://charts.bitnami.com/bitnami 19 | condition: postgresql.enabled 20 | -------------------------------------------------------------------------------- /archive/metabase/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | ```console 17 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 18 | $ helm install my-release one-acre-fund/metabase 19 | ``` 20 | 21 | {{ template "chart.requirementsSection" . }} 22 | 23 | {{ template "chart.valuesSection" . }} -------------------------------------------------------------------------------- /archive/metabase/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: extensions/v1beta1 3 | kind: Ingress 4 | metadata: 5 | name: {{ .Release.Name }}-metabase 6 | namespace: {{ .Release.Namespace }} 7 | annotations: 8 | {{- .Values.ingress.annotations | toYaml | nindent 4 }} 9 | spec: 10 | rules: 11 | - host: {{ .Values.ingress.domain }} 12 | http: 13 | paths: 14 | - backend: 15 | serviceName: {{ .Release.Name }}-metabase 16 | servicePort: 3000 17 | path: / 18 | pathType: Prefix 19 | tls: 20 | {{ .Values.ingress.tls | toYaml | nindent 2 }} 21 | {{- end -}} 22 | -------------------------------------------------------------------------------- /charts/flagsmith/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | ```console 17 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 18 | $ helm install my-release one-acre-fund/flagsmith 19 | ``` 20 | 21 | {{ template "chart.requirementsSection" . }} 22 | 23 | {{ template "chart.valuesSection" . }} -------------------------------------------------------------------------------- /charts/apicurio/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: apicurio 3 | version: 1.0.15 4 | description: Apicurio Studio API designer 5 | icon: https://avatars.githubusercontent.com/u/28107283?s=400&v=4 6 | type: application 7 | keywords: 8 | - api 9 | home: http://www.apicur.io/ 10 | sources: 11 | - https://github.com/Apicurio/apicurio-studio 12 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/apicurio 13 | maintainers: 14 | - name: Yann-J 15 | email: yann.jouanique@gmail.com 16 | dependencies: 17 | - name: postgresql 18 | version: ~11.6.6 19 | repository: https://charts.bitnami.com/bitnami 20 | condition: postgresql.enabled 21 | -------------------------------------------------------------------------------- /charts/nocodb/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.extraEnv -}} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "nocodb.fullname" . }}-config 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if .Values.commonAnnotations }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | data: 12 | {{- range $key, $val := .Values.extraEnv }} 13 | {{ $key }}: {{ $val | quote }} 14 | {{- end }} 15 | {{- end }} -------------------------------------------------------------------------------- /charts/nocodb/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "nocodb.fullname" . }}-test-connection" 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": post-install,post-upgrade 9 | "helm.sh/hook-delete-policy": hook-succeeded 10 | spec: 11 | containers: 12 | - name: wget 13 | image: busybox 14 | command: ['wget'] 15 | args: ['{{ include "nocodb.fullname" . }}:{{ .Values.service.ports.http }}/api/v1/health'] 16 | restartPolicy: Never 17 | -------------------------------------------------------------------------------- /charts/apicurio/templates/apicurio-studio-secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-api 5 | namespace: {{ .Release.Namespace }} 6 | type: Opaque 7 | data: 8 | {{- include "secrets_api" . | nindent 2 }} 9 | --- 10 | apiVersion: v1 11 | kind: Secret 12 | metadata: 13 | name: {{ .Release.Name }}-ui 14 | namespace: {{ .Release.Namespace }} 15 | type: Opaque 16 | data: 17 | {{- include "secrets_ui" . | nindent 2 }} 18 | --- 19 | apiVersion: v1 20 | kind: Secret 21 | metadata: 22 | name: {{ .Release.Name }}-ws 23 | namespace: {{ .Release.Namespace }} 24 | type: Opaque 25 | data: 26 | {{- include "secrets_ws" . | nindent 2 }} 27 | -------------------------------------------------------------------------------- /charts/flagsmith/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: flagsmith 3 | version: 0.1.5 4 | description: Flagsmith - a Feature flag and remote configuration solution 5 | type: application 6 | icon: https://avatars.githubusercontent.com/u/58150233?s=400&v=4 7 | home: https://flagsmith.com/ 8 | keywords: 9 | - feature-flags 10 | - remote-config 11 | sources: 12 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/flagsmith 13 | maintainers: 14 | - name: Yann-J 15 | email: yann.jouanique@gmail.com 16 | dependencies: 17 | - name: postgresql 18 | version: ~11.6.6 19 | repository: https://charts.bitnami.com/bitnami 20 | condition: postgresql.enabled 21 | -------------------------------------------------------------------------------- /charts/mautic/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: "v4-apache" 3 | description: A Helm chart for Mautic, a marketing automation tool 4 | name: mautic 5 | version: 0.1.7 6 | icon: https://secure.gravatar.com/avatar/a946d764bc1e4a7a39664099febfc9b2.png?s=400 7 | home: https://www.mautic.org/ 8 | keywords: 9 | - marketing 10 | - mautic 11 | - crm 12 | sources: 13 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/mautic 14 | maintainers: 15 | - name: Yann-J 16 | email: yann.jouanique@gmail.com 17 | dependencies: 18 | - name: mariadb 19 | version: ~11.4.6 20 | repository: https://charts.bitnami.com/bitnami 21 | condition: mariadb.enabled 22 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/kobo-pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.general.mediaStorage.enabled -}} 2 | # PVC for media uploads 3 | apiVersion: v1 4 | kind: PersistentVolumeClaim 5 | metadata: 6 | name: {{ .Release.Name }}-kobo-media 7 | namespace: {{ .Release.Namespace }} 8 | spec: 9 | accessModes: 10 | - {{ .Values.general.mediaStorage.accessMode }} 11 | {{- if coalesce .Values.general.mediaStorage.storageClass .Values.global.storageClass }} 12 | storageClassName: {{ coalesce .Values.general.mediaStorage.storageClass .Values.global.storageClass | quote }} 13 | {{- end }} 14 | resources: 15 | requests: 16 | storage: {{ .Values.general.mediaStorage.size }} 17 | {{- end -}} 18 | -------------------------------------------------------------------------------- /charts/pgbouncer/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: pgbouncer 3 | description: A Helm chart for deploying bitnami/pgbouncer with TLS encryption 4 | version: 0.1.8 5 | appVersion: 1.19.1 6 | type: application 7 | maintainers: 8 | - name: Rahma 9 | email: rahma.ahmed@oneacrefund.org 10 | url: https://github.com/samaroon 11 | icon: https://bitnami.com/assets/stacks/pgbouncer/img/pgbouncer-stack-220x234.png 12 | keywords: 13 | - pgbouncer 14 | - bitnami 15 | - PostgreSQL 16 | - database 17 | - TLS 18 | home: https://github.com/one-acre-fund/oaf-public-charts 19 | sources: 20 | - https://github.com/one-acre-fund/oaf-public-charts 21 | - https://bitnami.com/stack/pgbouncer 22 | -------------------------------------------------------------------------------- /charts/nocodb/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.extraEnvSecrets }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "nocodb.fullname" . }}-secrets 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if .Values.commonAnnotations }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | type: Opaque 12 | data: 13 | {{- range $key, $val := .Values.extraEnvSecrets }} 14 | {{ $key }}: {{ $val | b64enc }} 15 | {{- end }} 16 | {{- end }} 17 | -------------------------------------------------------------------------------- /charts/n8n/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR 15 | 16 | [n8n](https://www.n8n.io/) is a fair-source API automation platform. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/n8n 21 | ``` 22 | 23 | {{ template "chart.requirementsSection" . }} 24 | 25 | {{ template "chart.valuesSection" . }} 26 | -------------------------------------------------------------------------------- /charts/pgbouncer/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | # PgBouncer 2 | 3 | {{ template "chart.versionBadge" . }} 4 | {{ template "chart.typeBadge" . }} 5 | {{ template "chart.appVersionBadge" . }} 6 | 7 | {{ template "chart.description" . }} 8 | 9 | {{ template "chart.homepageLine" . }} 10 | 11 | {{ template "chart.maintainersSection" . }} 12 | 13 | {{ template "chart.sourcesSection" . }} 14 | 15 | ## TL;DR 16 | 17 | [pgbouncer](https://www.pgbouncer.org/) is a lightweight connection pooler for PostgreSQL. 18 | 19 | ```console 20 | helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 21 | helm install pgbouncer one-acre-fund/pgbouncer 22 | ``` 23 | 24 | {{ template "chart.valuesSection" . }} 25 | -------------------------------------------------------------------------------- /charts/nocodb/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.versionBadge" . }} 3 | {{ template "chart.appVersionBadge" . }} 4 | 5 | {{ template "chart.description" . }} 6 | 7 | {{ template "chart.maintainersSection" . }} 8 | 9 | {{ template "chart.sourcesSection" . }} 10 | 11 | ## TL;DR 12 | 13 | [nocodb](https://www.nocodb.com/) is an open source no-code platform to build and manage your data-driven applications. 14 | 15 | ```console 16 | helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 17 | helm install my-release one-acre-fund/nocodb 18 | ``` 19 | 20 | {{ template "chart.requirementsSection" . }} 21 | 22 | {{ template "chart.valuesSection" . }} 23 | -------------------------------------------------------------------------------- /charts/kutt/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR 15 | 16 | [Kutt](https://github.com/thedevs-network/kutt) is an open-source URL Shortening service. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/kutt 21 | ``` 22 | 23 | {{ template "chart.requirementsSection" . }} 24 | 25 | {{ template "chart.valuesSection" . }} 26 | -------------------------------------------------------------------------------- /charts/mautic/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR 15 | 16 | [Mautic](https://www.mautic.org/) is an open-source marketing campaign automation tool. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/mautic 21 | ``` 22 | 23 | {{ template "chart.requirementsSection" . }} 24 | 25 | {{ template "chart.valuesSection" . }} 26 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/tests/test-kobo-connections.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: {{ .Release.Name }}-test-kobo-connections 5 | annotations: 6 | "helm.sh/hook": test-success 7 | spec: 8 | containers: 9 | - image: jwilder/dockerize 10 | imagePullPolicy: IfNotPresent 11 | name: test-connections 12 | args: 13 | - -timeout=5m 14 | # Postgres 15 | - -wait=tcp://{{ .Release.Name }}-postgresql:5432 16 | # Mongodb 17 | - -wait=tcp://{{ .Release.Name }}-mongodb:27017 18 | # Nginx 19 | - -wait=http://{{ .Release.Name }}-kobo/ 20 | # Enketo 21 | - -wait=http://{{ .Release.Name }}-enketo:8005/ 22 | restartPolicy: Never 23 | -------------------------------------------------------------------------------- /archive/metabase/templates/tests/test.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: {{ .Release.Name }}-test 5 | namespace: {{ .Release.Namespace }} 6 | annotations: 7 | "helm.sh/hook": test-success 8 | # "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded 9 | spec: 10 | restartPolicy: Never 11 | containers: 12 | - name: {{ .Release.Name }}-test-http 13 | # Test published services - change this to reflect your endpoints 14 | image: blacktop/httpie 15 | imagePullPolicy: IfNotPresent 16 | command: 17 | - sh 18 | - -ce 19 | - | 20 | http --ignore-stdin --check-status --print hb "http://{{ .Release.Name }}-metabase.{{ .Release.Namespace }}.svc:3000/api/health" 21 | -------------------------------------------------------------------------------- /archive/geonode/templates/tests/test-geonode.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: {{ .Release.Name }}-test-geonode 5 | annotations: 6 | "helm.sh/hook": test-success 7 | spec: 8 | containers: 9 | - image: jwilder/dockerize 10 | imagePullPolicy: IfNotPresent 11 | name: test-connections 12 | args: 13 | - -timeout=20m 14 | # Postgres 15 | - -wait=tcp://{{ include "database_host" .}} 16 | # RabbitMQ 17 | - -wait=tcp://{{ include "rabbit_host" .}} 18 | # Nginx 19 | - -wait=http://{{ .Release.Name }}-geonode/static/geonode/img/favicon.ico 20 | # Geoserver 21 | - -wait=http://{{ .Release.Name }}-geonode/geoserver 22 | restartPolicy: Never 23 | -------------------------------------------------------------------------------- /charts/growthbook/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | [GrowthBook](https://www.growthbook.io/) is an open-source remote configuration / activation flag service. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/growthbook 21 | ``` 22 | 23 | {{ template "chart.requirementsSection" . }} 24 | 25 | {{ template "chart.valuesSection" . }} 26 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/kobo-svc.yaml: -------------------------------------------------------------------------------- 1 | # Load-balancer for SGW 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ .Release.Name }}-kobo 6 | namespace: {{ .Release.Namespace }} 7 | spec: 8 | selector: 9 | org.kobotoolbox.instance: {{ .Release.Name }}-kobo 10 | ports: 11 | - targetPort: 80 12 | port: 80 13 | name: www 14 | - targetPort: 8003 15 | port: 8003 16 | name: kpi 17 | - targetPort: 8001 18 | port: 8001 19 | name: kobocat 20 | {{- if .Values.uwsgiExporter.enabled }} 21 | - targetPort: 1717 22 | port: 1717 23 | name: kc-metrics 24 | - targetPort: 1818 25 | port: 1818 26 | name: kpi-metrics 27 | {{- end }} 28 | type: {{ .Values.general.serviceType }} 29 | -------------------------------------------------------------------------------- /charts/kobotoolbox/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | [KoboToolbox](https://www.kobotoolbox.org/) is an open-source field data collection tool optimised to build offline form-based apps. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/kobotoolbox 21 | ``` 22 | 23 | {{ template "chart.requirementsSection" . }} 24 | 25 | {{ template "chart.valuesSection" . }} 26 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.persistence.enabled }} 2 | {{- if not .Values.persistence.existingClaim }} 3 | apiVersion: v1 4 | kind: PersistentVolumeClaim 5 | metadata: 6 | name: {{ include "oaf-odoo-data-migration.fullname" . }}-pvc 7 | labels: 8 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 9 | spec: 10 | accessModes: 11 | - {{ .Values.persistence.accessMode }} 12 | resources: 13 | requests: 14 | storage: {{ .Values.persistence.size }} 15 | {{- if .Values.persistence.storageClass }} 16 | {{- if (eq "-" .Values.persistence.storageClass) }} 17 | storageClassName: "" 18 | {{- else }} 19 | storageClassName: {{ .Values.persistence.storageClass }} 20 | {{- end }} 21 | {{- end }} 22 | {{- end }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /archive/geonode/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: geonode 3 | version: 0.1.16 4 | type: application 5 | description: Geonode - a CMS for Geospatial data 6 | icon: https://pbs.twimg.com/profile_images/1221883359/geonode_400x400.png 7 | home: https://geonode.org/ 8 | keywords: 9 | - geospatial 10 | - gis 11 | - cms 12 | - maps 13 | sources: 14 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/geonode 15 | maintainers: 16 | - name: Yann-J 17 | email: yann.jouanique@gmail.com 18 | dependencies: 19 | - name: postgresql 20 | version: ~10.1.2 21 | repository: https://charts.bitnami.com/bitnami 22 | condition: postgresql.enabled 23 | - name: rabbitmq 24 | version: ~8.6.0 25 | repository: https://charts.bitnami.com/bitnami 26 | condition: rabbitmq.enabled 27 | -------------------------------------------------------------------------------- /charts/apicurio/templates/tests/test-connections.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: {{ .Release.Name }}-test-apicurio-connections 5 | annotations: 6 | "helm.sh/hook": test-success 7 | spec: 8 | containers: 9 | # TODO: find better API-level tests... 10 | - image: jwilder/dockerize 11 | imagePullPolicy: IfNotPresent 12 | name: test-connections 13 | args: 14 | - -timeout=5m 15 | # Postgres 16 | - -wait=tcp://{{ include "dbHost" . }}:{{ .Values.postgresql.service.port }} 17 | # API 18 | - -wait=http://{{ .Release.Name }}-api:8080/system/ready 19 | # UI 20 | - -wait=http://{{ .Release.Name }}-ui:8080/ready 21 | # WS 22 | - -wait=http://{{ .Release.Name }}-ws:8080/metrics 23 | restartPolicy: Never 24 | -------------------------------------------------------------------------------- /charts/growthbook/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.growthbook.persistence.enabled (not .Values.growthbook.persistence.existingClaim) }} 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: {{ include "growthbook.fullname" . }} 6 | spec: 7 | accessModes: 8 | {{- range .Values.growthbook.persistence.accessModes }} 9 | - {{ . | quote }} 10 | {{- end }} 11 | {{- if .Values.growthbook.persistence.storageClass }} 12 | {{- if eq "-" .Values.growthbook.persistence.storageClassName }} 13 | storageClassName: "" 14 | {{- else }} 15 | storageClassName: {{ .Values.growthbook.persistence.storageClassName }} 16 | {{- end }} 17 | {{- end }} 18 | volumeMode: Filesystem 19 | resources: 20 | requests: 21 | storage: {{ .Values.growthbook.persistence.storage }} 22 | {{- end }} -------------------------------------------------------------------------------- /charts/nocodb/templates/smtp-secret.yaml: -------------------------------------------------------------------------------- 1 | {{- if not (or .Values.smtp.enabled .Values.smtp.existingSecret) }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "nocodb.smtp.secretName" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if .Values.commonAnnotations }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | type: Opaque 12 | data: 13 | {{ include "nocodb.smtp.secretUsernameKey" . }}: {{ .Values.smtp.username | b64enc | quote }} 14 | {{ include "nocodb.smtp.secretPasswordKey" . }}: {{ .Values.smtp.password | b64enc | quote }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/tests/test.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.tests.enabled -}} 2 | apiVersion: v1 3 | kind: Pod 4 | metadata: 5 | name: {{ .Release.Name }}-test 6 | namespace: {{ .Release.Namespace }} 7 | annotations: 8 | "helm.sh/hook": test-success 9 | # "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded 10 | spec: 11 | restartPolicy: Never 12 | containers: 13 | - name: test-http 14 | image: blacktop/httpie 15 | imagePullPolicy: IfNotPresent 16 | command: 17 | - sh 18 | - -ce 19 | - | 20 | http --print bh --ignore-stdin --check-status "http://{{ .Release.Name }}-api.{{ .Release.Namespace }}.svc:8000/api/v1/" 21 | http --print h --ignore-stdin --check-status "http://{{ .Release.Name }}-frontend.{{ .Release.Namespace }}.svc:8080/" 22 | {{- end -}} 23 | -------------------------------------------------------------------------------- /charts/nocodb/templates/admin-user-secert.yaml: -------------------------------------------------------------------------------- 1 | {{ if and .Values.admin.create (not (eq .Values.admin.email "")) (not (eq .Values.admin.password "")) }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "nocodb.admin.secretName" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if .Values.commonAnnotations }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | type: Opaque 12 | data: 13 | {{ include "nocodb.admin.emailKey" . }}: {{ .Values.admin.email | b64enc | quote }} 14 | {{ include "nocodb.admin.passwordKey" . }}: {{ .Values.admin.password | b64enc | quote }} 15 | {{- end }} -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/tests/test-kobo-api.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: {{ .Release.Name }}-test-kobo-api 5 | namespace: {{ .Release.Namespace }} 6 | annotations: 7 | "helm.sh/hook": test-success 8 | # "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded 9 | spec: 10 | restartPolicy: Never 11 | containers: 12 | - name: test-http 13 | image: blacktop/httpie 14 | imagePullPolicy: IfNotPresent 15 | command: 16 | - sh 17 | - -ce 18 | - | 19 | http --ignore-stdin --check-status "http://{{ .Release.Name }}-kobo/api/v2/" Host:{{ .Values.kpi.subdomain }}.{{ include "internal_domain" . }} 20 | http --ignore-stdin --check-status "http://{{ .Release.Name }}-kobo/api/v1/" Host:{{ .Values.kobocat.subdomain }}.{{ include "internal_domain" . }} 21 | -------------------------------------------------------------------------------- /archive/geonode/templates/geonode-secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-secrets 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | ADMIN_PASSWORD: {{ .Values.general.superUser.password | b64enc }} 8 | GEOSERVER_ADMIN_PASSWORD: {{ b64enc "geoserver" }} 9 | POSTGRES_PASSWORD: {{ .Values.postgresql.postgresqlPassword | b64enc }} 10 | GEONODE_DATABASE_PASSWORD: {{ .Values.postgresql.password | b64enc }} 11 | GEONODE_GEODATABASE_PASSWORD: {{ .Values.postgresql.password | b64enc }} 12 | BROKER_URL: {{ include "broker_url" . | b64enc }} 13 | DATABASE_URL: {{ include "database_geonode" . | b64enc }} 14 | GEODATABASE_URL: {{ include "database_geonode_data" . | b64enc }} 15 | {{- range $key, $val := .Values.geonode.extraSecretEnvs }} 16 | {{ $key }}: {{ b64enc $val }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "oaf-odoo-data-migration.fullname" . }}-config 5 | labels: 6 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 7 | data: 8 | logging.conf: | 9 | [loggers] 10 | keys=root 11 | 12 | [handlers] 13 | keys=consoleHandler 14 | 15 | [formatters] 16 | keys=simpleFormatter 17 | 18 | [logger_root] 19 | level={{ .Values.logging.level | default "INFO" }} 20 | handlers=consoleHandler 21 | 22 | [handler_consoleHandler] 23 | class=StreamHandler 24 | level={{ .Values.logging.level | default "INFO" }} 25 | formatter=simpleFormatter 26 | args=(sys.stdout,) 27 | 28 | [formatter_simpleFormatter] 29 | format=%(asctime)s - %(name)s - %(levelname)s - %(message)s 30 | -------------------------------------------------------------------------------- /charts/growthbook/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ include "growthbook.fullname" . }} 5 | labels: 6 | {{- include "growthbook.labels" . | nindent 4 }} 7 | type: Opaque 8 | data: 9 | MONGODB_URI: {{ include "growthbook.mongo.uri" . | b64enc | quote }} 10 | JWT_SECRET: {{ .Values.growthbook.jwtSecret | b64enc | quote }} 11 | ENCRYPTION_KEY: {{ .Values.growthbook.encryptionKey | b64enc | quote }} 12 | {{- if .Values.growthbook.email.enabled }} 13 | EMAIL_HOST_PASSWORD: {{ .Values.growthbook.email.hostPassword | b64enc | quote }} 14 | {{- end }} 15 | {{- if .Values.growthbook.sso.enabled }} 16 | LICENSE_KEY: {{ .Values.growthbook.sso.licenseKey | b64enc | quote }} 17 | {{- end }} 18 | stringData: 19 | {{- if .Values.growthbook.sso.enabled }} 20 | SSO_CONFIG: {{ .Values.growthbook.sso.ssoConfig | toJson | quote }} 21 | {{- end }} -------------------------------------------------------------------------------- /charts/nocodb/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create }} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "nocodb.serviceAccountName" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if or .Values.serviceAccount.annotations .Values.commonAnnotations }} 9 | {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.serviceAccount.annotations .Values.commonAnnotations ) "context" . ) }} 10 | annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }} 11 | {{- end }} 12 | automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }} 13 | secrets: 14 | - name: {{ include "common.names.fullname" . }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: extensions/v1beta1 3 | kind: Ingress 4 | metadata: 5 | name: {{ .Release.Name }}-flagsmith 6 | namespace: {{ .Release.Namespace }} 7 | annotations: 8 | {{- .Values.ingress.annotations | toYaml | nindent 4 }} 9 | spec: 10 | rules: 11 | - host: {{ .Values.flagsmith.externalURL.web.domain }} 12 | http: 13 | paths: 14 | - backend: 15 | serviceName: {{ .Release.Name }}-frontend 16 | servicePort: 8080 17 | path: / 18 | pathType: Prefix 19 | - host: {{ .Values.flagsmith.externalURL.api.domain }} 20 | http: 21 | paths: 22 | - backend: 23 | serviceName: {{ .Release.Name }}-api 24 | servicePort: 8000 25 | path: / 26 | pathType: Prefix 27 | tls: 28 | {{ .Values.ingress.tls | toYaml | nindent 2 }} 29 | {{- end -}} 30 | -------------------------------------------------------------------------------- /charts/n8n/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: {{ include "n8n.fullname" . }} 6 | {{- with .Values.persistence.annotations }} 7 | annotations: 8 | {{- range $key, $value := . }} 9 | {{ $key }}: {{ $value }} 10 | {{- end }} 11 | {{- end }} 12 | labels: 13 | {{- include "n8n.labels" . | nindent 4 }} 14 | spec: 15 | accessModes: 16 | {{- range .Values.persistence.accessModes }} 17 | - {{ . | quote }} 18 | {{- end }} 19 | resources: 20 | requests: 21 | storage: {{ .Values.persistence.size }} 22 | {{- if .Values.persistence.storageClass }} 23 | {{- if eq "-" .Values.persistence.storageClass }} 24 | storageClassName: "" 25 | {{- else }} 26 | storageClassName: {{ .Values.persistence.storageClass }} 27 | {{- end }} 28 | {{- end }} 29 | {{- end }} -------------------------------------------------------------------------------- /archive/geonode/templates/geonode-ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: networking.k8s.io/v1beta1 3 | kind: Ingress 4 | metadata: 5 | name: {{ .Release.Name }}-geonode 6 | namespace: {{ .Release.Namespace }} 7 | {{- with .Values.ingress.annotations }} 8 | annotations: 9 | {{- toYaml . | nindent 4 }} 10 | {{- end }} 11 | spec: 12 | {{- if .Values.ingress.tls }} 13 | tls: 14 | {{- range .Values.ingress.tls }} 15 | - hosts: 16 | {{- range .hosts }} 17 | - {{ . | quote }} 18 | {{- end }} 19 | secretName: {{ .secretName }} 20 | {{- end }} 21 | {{- end }} 22 | rules: 23 | {{- range .Values.ingress.hosts }} 24 | - host: {{ .host | quote }} 25 | http: 26 | paths: 27 | {{- range .paths }} 28 | - path: {{ . }} 29 | backend: 30 | serviceName: {{ .Release.Name }}-geonode 31 | servicePort: www 32 | {{- end }} 33 | {{- end }} 34 | {{- end }} -------------------------------------------------------------------------------- /charts/nocodb/templates/externalminio-secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- /* 2 | Copyright Broadcom, Inc. All Rights Reserved. 3 | SPDX-License-Identifier: APACHE-2.0 4 | */}} 5 | 6 | {{- if not (or .Values.minio.enabled .Values.externalMinio.existingSecret) }} 7 | apiVersion: v1 8 | kind: Secret 9 | metadata: 10 | name: {{ printf "%s-externalminio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 11 | namespace: {{ .Release.Namespace | quote }} 12 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 13 | {{- if .Values.commonAnnotations }} 14 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | type: Opaque 17 | data: 18 | {{ include "nocodb.minio.rootUserKey" . }}: {{ .Values.externalMinio.rootUser | b64enc | quote }} 19 | {{ include "nocodb.minio.rootPasswordKey" . }}: {{ .Values.externalMinio.rootPassword | b64enc | quote }} 20 | {{- end }} 21 | -------------------------------------------------------------------------------- /charts/n8n/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "n8n.fullname" . }} 6 | labels: 7 | {{- include "n8n.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "n8n.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 21 | {{- end }} 22 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 27 | {{- end }} 28 | {{- end }} -------------------------------------------------------------------------------- /archive/geonode/templates/postgres-init.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-postgres-init 5 | namespace: {{ .Release.Namespace }} 6 | stringData: 7 | init.sql: | 8 | CREATE USER "{{ .Values.postgresql.geonodeDb }}" WITH PASSWORD '{{ .Values.postgresql.password }}'; 9 | CREATE USER "{{ .Values.postgresql.geodataDb }}" WITH PASSWORD '{{ .Values.postgresql.password }}'; 10 | 11 | ALTER USER "{{ .Values.postgresql.geonodeDb }}" WITH SUPERUSER; 12 | ALTER USER "{{ .Values.postgresql.geodataDb }}" WITH SUPERUSER; 13 | 14 | CREATE DATABASE "{{ .Values.postgresql.geonodeDb }}" OWNER "{{ .Values.postgresql.geonodeDb }}"; 15 | \c "{{ .Values.postgresql.geonodeDb }}" 16 | CREATE EXTENSION postgis; 17 | CREATE EXTENSION postgis_topology; 18 | 19 | CREATE DATABASE "{{ .Values.postgresql.geodataDb }}" OWNER "{{ .Values.postgresql.geodataDb }}"; 20 | \c "{{ .Values.postgresql.geodataDb }}" 21 | CREATE EXTENSION postgis; 22 | CREATE EXTENSION postgis_topology; 23 | -------------------------------------------------------------------------------- /charts/kutt/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "kutt.fullname" . }} 6 | labels: 7 | {{- include "kutt.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "kutt.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 21 | {{- end }} 22 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /charts/nocodb/templates/externaldb-secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- /* 2 | Copyright Broadcom, Inc. All Rights Reserved. 3 | SPDX-License-Identifier: APACHE-2.0 4 | */}} 5 | 6 | {{- if not (or .Values.postgresql.enabled .Values.externalDatabase.existingSecret) }} 7 | apiVersion: v1 8 | kind: Secret 9 | metadata: 10 | name: {{ printf "%s-externaldb" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 11 | namespace: {{ .Release.Namespace | quote }} 12 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 13 | {{- if .Values.commonAnnotations }} 14 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | type: Opaque 17 | data: 18 | {{ include "nocodb.database.secretPasswordKey" . }}: {{ .Values.externalDatabase.password | b64enc | quote }} 19 | {{ include "nocodb.database.secretPostgresPasswordKey" . }}: {{ .Values.externalDatabase.postgresqlPostgresPassword | b64enc | quote }} 20 | {{- end }} 21 | -------------------------------------------------------------------------------- /charts/sydent/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "sydent.fullname" . }} 6 | labels: 7 | {{- include "sydent.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "sydent.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 21 | {{- end }} 22 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/kobo-postgres-init.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-postgres-init 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | init.sql: | 8 | ALTER USER "{{ .Values.postgresql.auth.username }}" WITH SUPERUSER; 9 | CREATE DATABASE "{{ .Values.postgresql.kobocatDatabase }}" OWNER "{{ .Values.postgresql.auth.username }}"; 10 | \c "{{ .Values.postgresql.kobocatDatabase }}" 11 | CREATE EXTENSION IF NOT EXISTS postgis; 12 | CREATE EXTENSION IF NOT EXISTS postgis_topology; 13 | CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; 14 | CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder; 15 | CREATE DATABASE "{{ .Values.postgresql.kpiDatabase }}" OWNER "{{ .Values.postgresql.auth.username }}"; 16 | \c "{{ .Values.postgresql.kpiDatabase }}" 17 | CREATE EXTENSION IF NOT EXISTS postgis; 18 | CREATE EXTENSION IF NOT EXISTS postgis_topology; 19 | CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; 20 | CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder; 21 | -------------------------------------------------------------------------------- /charts/n8n/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "n8n.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "n8n.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "n8n.fullname" . }}:{{ .Values.service.port }}'] 15 | - name: check-healthz 16 | image: busybox 17 | command: ['sh', '-c'] 18 | args: 19 | - | 20 | RESPONSE=$(wget -qO- '{{ include "n8n.fullname" . }}:{{ .Values.service.port }}/healthz') 21 | if [ "$RESPONSE" = '{"status":"ok"}' ]; then 22 | echo "Health check passed." 23 | exit 0 24 | else 25 | echo "Health check failed. Expected '{"status":"ok"}' but got '$RESPONSE'." 26 | exit 1 27 | fi 28 | volumeMounts: 29 | - name: test-scripts 30 | mountPath: /test-scripts 31 | 32 | restartPolicy: Never -------------------------------------------------------------------------------- /charts/growthbook/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "growthbook.fullname" . }} 6 | labels: 7 | {{- include "growthbook.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "growthbook.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 21 | {{- end }} 22 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /.github/workflows/helm-release.yaml: -------------------------------------------------------------------------------- 1 | name: Release Charts 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - "charts/**" 9 | 10 | jobs: 11 | release: 12 | runs-on: ubuntu-20.04 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v4.2.2 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Configure Git 20 | run: | 21 | git config user.name "$GITHUB_ACTOR" 22 | git config user.email "$GITHUB_ACTOR@users.noreply.github.com" 23 | 24 | - name: Install Helm 25 | uses: azure/setup-helm@v4.2.0 26 | with: 27 | version: v3.4.0 28 | 29 | - name: Add bitnami repo 30 | run: helm repo add bitnami https://charts.bitnami.com/bitnami 31 | 32 | - name: Add gatekeeper repo 33 | run: helm repo add gatekeeper https://gogatekeeper.github.io/helm-gogatekeeper 34 | 35 | - name: Run chart-releaser 36 | uses: helm/chart-releaser-action@v1.6.0 37 | env: 38 | CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 39 | -------------------------------------------------------------------------------- /charts/apicurio/templates/apicurio-studio-services.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Release.Name }}-api 5 | namespace: {{ .Release.Namespace }} 6 | spec: 7 | type: {{ .Values.general.serviceType }} 8 | ports: 9 | - name: api 10 | port: 8080 11 | targetPort: 8080 12 | selector: 13 | org.apicurio.instance: {{ .Release.Name }}-api 14 | --- 15 | apiVersion: v1 16 | kind: Service 17 | metadata: 18 | name: {{ .Release.Name }}-ui 19 | namespace: {{ .Release.Namespace }} 20 | spec: 21 | type: {{ .Values.general.serviceType }} 22 | ports: 23 | - name: ui 24 | port: 8080 25 | targetPort: 8080 26 | selector: 27 | org.apicurio.instance: {{ .Release.Name }}-ui 28 | --- 29 | apiVersion: v1 30 | kind: Service 31 | metadata: 32 | name: {{ .Release.Name }}-ws 33 | namespace: {{ .Release.Namespace }} 34 | spec: 35 | type: {{ .Values.general.serviceType }} 36 | ports: 37 | - name: ws 38 | port: 8080 39 | targetPort: 8080 40 | selector: 41 | org.apicurio.instance: {{ .Release.Name }}-ws 42 | -------------------------------------------------------------------------------- /.github/workflows/helm-test.yaml: -------------------------------------------------------------------------------- 1 | name: Lint and Test Charts 2 | 3 | on: 4 | pull_request: 5 | types: [opened, synchronize, reopened] 6 | 7 | jobs: 8 | lint-test: 9 | runs-on: ubuntu-20.04 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v4.2.2 13 | with: 14 | fetch-depth: 0 15 | 16 | - name: Set up Helm 17 | uses: azure/setup-helm@v4.2.0 18 | with: 19 | version: v3.16.2 20 | 21 | - name: Setup Python 22 | uses: actions/setup-python@v5.3.0 23 | with: 24 | python-version: 3.7 25 | 26 | - name: Set up chart-testing 27 | uses: helm/chart-testing-action@v2.6.1 28 | 29 | - name: Run chart-testing (list-changed) 30 | id: list-changed 31 | run: | 32 | changed=$(ct list-changed --config .github/ct.yaml) 33 | if [[ -n "$changed" ]]; then 34 | echo "changed=true" >> $GITHUB_OUTPUT 35 | fi 36 | 37 | - name: Run chart-testing (lint) 38 | run: ct lint --config .github/ct.yaml 39 | 40 | -------------------------------------------------------------------------------- /charts/kobotoolbox/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kobotoolbox 3 | version: 0.7.4 4 | description: KoboToolbox field data collection solution 5 | home: https://www.kobotoolbox.org/ 6 | icon: https://avatars.githubusercontent.com/u/5543677?s=400&v=4 7 | keywords: 8 | - survey 9 | - field 10 | sources: 11 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/kobotoolbox 12 | maintainers: 13 | - name: Yann-J 14 | email: yann.jouanique@gmail.com 15 | dependencies: 16 | - name: redis 17 | version: ~16.12.3 18 | repository: https://charts.bitnami.com/bitnami 19 | condition: redismain.enabled 20 | alias: redismain 21 | - name: redis 22 | version: ~16.12.3 23 | repository: https://charts.bitnami.com/bitnami 24 | condition: rediscache.enabled 25 | alias: rediscache 26 | - name: postgresql 27 | version: ~11.9.13 28 | repository: https://charts.bitnami.com/bitnami 29 | condition: postgresql.enabled 30 | - name: mongodb 31 | version: ~12.1.31 32 | repository: https://charts.bitnami.com/bitnami 33 | condition: mongodb.enabled 34 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Proposed changes 2 | 3 | 8 | 9 | ## Checklist 10 | 11 | 17 | 18 | - [ ] Lint and unit tests pass locally with my changes. 19 | - [ ] I have added tests that prove my fix is effective or that my feature works. 20 | - [ ] I have added documentation to describe my feature. 21 | - [ ] I have squashed my commits into logic units. 22 | - [ ] I have described the changes in the commit messages. 23 | 24 | ## Other information 25 | 26 | 30 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "pgbouncer.fullname" . }} 6 | labels: 7 | {{- include "pgbouncer.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "pgbouncer.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | target: 21 | type: Utilization 22 | averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 23 | {{- end }} 24 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 25 | - type: Resource 26 | resource: 27 | name: memory 28 | target: 29 | type: Utilization 30 | averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 31 | {{- end }} 32 | {{- end }} 33 | -------------------------------------------------------------------------------- /charts/pgbouncer/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Alexey Belaytzev 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /artifacthub-repo.yml: -------------------------------------------------------------------------------- 1 | # Artifact Hub repository metadata file 2 | # 3 | # Some settings like the verified publisher flag or the ignored packages won't 4 | # be applied until the next time the repository is processed. Please keep in 5 | # mind that the repository won't be processed if it has not changed since the 6 | # last time it was processed. Depending on the repository kind, this is checked 7 | # in a different way. For Helm http based repositories, we consider it has 8 | # changed if the `index.yaml` file changes. For git based repositories, it does 9 | # when the hash of the last commit in the branch you set up changes. This does 10 | # NOT apply to ownership claim operations, which are processed immediately. 11 | # 12 | repositoryID: 237e8320-45e6-436b-b88d-40248a904580 13 | # owners: # (optional, used to claim repository ownership) 14 | # - name: user1 15 | # email: user1@email.com 16 | # - name: user2 17 | # email: user2@email.com 18 | # ignore: # (optional, packages that should not be indexed by Artifact Hub) 19 | # - name: package1 20 | # - name: package2 # Exact match 21 | # version: beta # Regular expression (when omitted, all versions are ignored) 22 | -------------------------------------------------------------------------------- /charts/growthbook/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: {{ .Values.ingress.name }} 6 | annotations: 7 | {{- toYaml .Values.ingress.annotations | nindent 4 }} 8 | spec: 9 | rules: 10 | - host: {{ .Values.ingress.appOriginName }} 11 | http: 12 | paths: 13 | - path: / 14 | pathType: Prefix 15 | backend: 16 | service: 17 | name: {{ include "growthbook.fullname" . }} 18 | port: 19 | number: {{ .Values.port.frontendPort }} 20 | - host: {{ .Values.ingress.apiHostName }} 21 | http: 22 | paths: 23 | - path: / 24 | pathType: Prefix 25 | backend: 26 | service: 27 | name: {{ include "growthbook.fullname" . }} 28 | port: 29 | number: {{ .Values.port.backendPort }} 30 | tls: 31 | - hosts: 32 | - {{ .Values.ingress.appOriginName }} 33 | - {{ .Values.ingress.apiHostName }} 34 | secretName: {{ .Values.ingress.secretName }} 35 | {{- end -}} -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "uptime-wrapper.fullname" . }} 6 | labels: 7 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "uptime-wrapper.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | target: 21 | type: Utilization 22 | averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 23 | {{- end }} 24 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 25 | - type: Resource 26 | resource: 27 | name: memory 28 | target: 29 | type: Utilization 30 | averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 31 | {{- end }} 32 | {{- end }} 33 | -------------------------------------------------------------------------------- /charts/mautic/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "mautic.fullname" . -}} 3 | apiVersion: networking.k8s.io/v1 4 | kind: Ingress 5 | metadata: 6 | name: {{ $fullName }} 7 | labels: 8 | {{ include "mautic.labels" . | indent 4 }} 9 | {{- with .Values.ingress.annotations }} 10 | annotations: 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | spec: 14 | {{- if .Values.ingress.tls }} 15 | tls: 16 | {{- range .Values.ingress.tls }} 17 | - hosts: 18 | {{- range .hosts }} 19 | - {{ . | quote }} 20 | {{- end }} 21 | secretName: {{ .secretName }} 22 | {{- end }} 23 | {{- end }} 24 | rules: 25 | {{- range .Values.ingress.hosts }} 26 | - host: {{ .host | quote }} 27 | http: 28 | paths: 29 | {{- range .paths }} 30 | - path: {{ . }} 31 | pathType: Prefix 32 | backend: 33 | service: 34 | name: {{ $fullName }} 35 | port: 36 | number: 80 37 | serviceName: {{ $fullName }} 38 | servicePort: http 39 | {{- end }} 40 | {{- end }} 41 | {{- end }} 42 | -------------------------------------------------------------------------------- /charts/n8n/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "n8n.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 5 | apiVersion: networking.k8s.io/v1beta1 6 | {{- else -}} 7 | apiVersion: extensions/v1beta1 8 | {{- end }} 9 | kind: Ingress 10 | metadata: 11 | name: {{ $fullName }} 12 | labels: 13 | {{- include "n8n.labels" . | nindent 4 }} 14 | {{- with .Values.ingress.annotations }} 15 | annotations: 16 | {{- toYaml . | nindent 4 }} 17 | {{- end }} 18 | spec: 19 | {{- if .Values.ingress.tls }} 20 | tls: 21 | {{- range .Values.ingress.tls }} 22 | - hosts: 23 | {{- range .hosts }} 24 | - {{ . | quote }} 25 | {{- end }} 26 | secretName: {{ .secretName }} 27 | {{- end }} 28 | {{- end }} 29 | rules: 30 | {{- range .Values.ingress.hosts }} 31 | - host: {{ .host | quote }} 32 | http: 33 | paths: 34 | {{- range .paths }} 35 | - path: {{ . }} 36 | backend: 37 | serviceName: {{ $fullName }} 38 | servicePort: {{ $svcPort }} 39 | {{- end }} 40 | {{- end }} 41 | {{- end }} 42 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: extensions/v1beta1 3 | kind: Ingress 4 | metadata: 5 | name: {{ .Release.Name }}-kobo 6 | namespace: {{ .Release.Namespace }} 7 | annotations: 8 | {{- .Values.ingress.annotations | toYaml | nindent 4 }} 9 | spec: 10 | # The kobo sidecar nginx will do further host-based routing for kpi and kobocat 11 | rules: 12 | - host: {{ .Values.kpi.subdomain }}.{{ .Values.general.externalDomain }} 13 | http: 14 | paths: 15 | - backend: 16 | serviceName: {{ .Release.Name }}-kobo 17 | servicePort: 80 18 | - host: {{ .Values.kobocat.subdomain }}.{{ .Values.general.externalDomain }} 19 | http: 20 | paths: 21 | - backend: 22 | serviceName: {{ .Release.Name }}-kobo 23 | servicePort: 80 24 | - host: {{ .Values.enketo.subdomain }}.{{ .Values.general.externalDomain }} 25 | http: 26 | paths: 27 | - backend: 28 | serviceName: {{ .Release.Name }}-enketo 29 | servicePort: enketo 30 | {{- if .Values.ingress.tls }} 31 | tls: 32 | {{- .Values.ingress.tls | toYaml | nindent 4 }} 33 | {{- end }} 34 | {{- end -}} 35 | -------------------------------------------------------------------------------- /charts/sydent/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: sydent 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 0.2.5 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | # It is recommended to use it with quotes. 24 | appVersion: "1.16.1" 25 | 26 | maintainers: 27 | - name: bisonlou 28 | email: bisonlou@gmail.com 29 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: uptime-wrapper 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 1.0.3 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | # It is recommended to use it with quotes. 24 | appVersion: "1.16.0" 25 | 26 | maintainers: 27 | - name: bisonlou 28 | email: bisonlou@gmail.com 29 | -------------------------------------------------------------------------------- /charts/flagsmith/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- define "dbHost" -}} 2 | {{ coalesce .Values.postgresql.host ( print .Release.Name "-postgresql." .Release.Namespace ".svc" ) }} 3 | {{- end -}} 4 | 5 | {{- define "dbUrl" -}} 6 | {{ printf "postgresql://%s:%s@%s:%s/%s" .Values.postgresql.postgresqlUsername .Values.postgresql.postgresqlPassword (include "dbHost" .) ( toString .Values.postgresql.service.port ) .Values.postgresql.postgresqlDatabase }} 7 | {{- end -}} 8 | 9 | {{- define "apiHost" -}} 10 | {{ .Release.Name }}-api.{{ .Release.Namespace }}.svc 11 | {{- end -}} 12 | 13 | {{- define "fullUrl" -}} 14 | {{ .scheme }}://{{ .domain }}{{ if .port }}:{{ .port }}{{ end }} 15 | {{- end -}} 16 | 17 | {{- define "api_secrets" -}} 18 | DJANGO_DB_PASSWORD: {{ .Values.postgresql.postgresqlPassword | b64enc }} 19 | DATABASE_URL: {{ include "dbUrl" . | b64enc }} 20 | ADMIN_INITIAL_PASSWORD: {{ .Values.flagsmith.admin.password | b64enc }} 21 | DJANGO_SECRET_KEY: {{ .Values.flagsmith.djangoSecret | b64enc }} 22 | # Custom keys 23 | {{- range $key, $value := .Values.flagsmith.api.extraSecretEnv }} 24 | {{ $key }}: {{ tpl $value $ | b64enc }} 25 | {{- end }} 26 | {{- end -}} 27 | 28 | {{- define "frontend_secrets" -}} 29 | {{- range $key, $value := .Values.flagsmith.frontend.extraSecretEnv }} 30 | {{ $key }}: {{ tpl $value $ | b64enc }} 31 | {{- end }} 32 | {{- end -}} 33 | -------------------------------------------------------------------------------- /charts/apicurio/README.md.gotmpl: -------------------------------------------------------------------------------- 1 | {{ template "chart.header" . }} 2 | {{ template "chart.deprecationWarning" . }} 3 | 4 | {{ template "chart.versionBadge" . }} 5 | 6 | {{ template "chart.description" . }} 7 | 8 | {{ template "chart.homepageLine" . }} 9 | 10 | {{ template "chart.maintainersSection" . }} 11 | 12 | {{ template "chart.sourcesSection" . }} 13 | 14 | ## TL;DR; 15 | 16 | This chart will install an Apicurio instance, with an optional dependent Postgres backing db. 17 | 18 | ```console 19 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 20 | $ helm install my-release one-acre-fund/apicurio 21 | ``` 22 | 23 | __WARNING__: The [Apicurio docs](https://www.apicur.io/studio/docs/setting-up-keycloak-for-use-with-apicurio) are wrong/incomplete about the Github integration. The documented instructions will let you login and link accounts, but NOT publish into your repository. To enable this, you will need to: 24 | 25 | * In the default roles of your realm, add the `broker` client role named `read-token` 26 | * Add this `read-token` `broker` role to already created users if needed 27 | * Use at least these scopes for your Github identity provider configuration: `read:org,repo,user` 28 | 29 | For more details, see [this ticket](https://github.com/Apicurio/apicurio-studio/issues/821). 30 | 31 | {{ template "chart.requirementsSection" . }} 32 | 33 | {{ template "chart.valuesSection" . }} -------------------------------------------------------------------------------- /charts/nocodb/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ template "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | {{- if .Values.commonAnnotations }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | spec: 12 | scaleTargetRef: 13 | apiVersion: apps/v1 14 | kind: Deployment 15 | name: {{ include "nocodb.fullname" . }} 16 | minReplicas: {{ .Values.autoscaling.minReplicas }} 17 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 18 | metrics: 19 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 20 | - type: Resource 21 | resource: 22 | name: cpu 23 | target: 24 | type: Utilization 25 | averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 26 | {{- end }} 27 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 28 | - type: Resource 29 | resource: 30 | name: memory 31 | target: 32 | type: Utilization 33 | averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 34 | {{- end }} 35 | {{- end }} 36 | -------------------------------------------------------------------------------- /charts/mautic/mautic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 12 | 13 | 14 | 15 | 17 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/norwoodj/helm-docs 3 | rev: v1.11.0 4 | hooks: 5 | - id: helm-docs 6 | args: 7 | - --chart-search-root=charts 8 | - --template-files=README.md.gotmpl 9 | - repo: https://github.com/adrienverge/yamllint.git 10 | rev: v1.17.0 11 | hooks: 12 | - id: yamllint 13 | args: [-c=.yamllint.yaml] 14 | - repo: https://github.com/zricethezav/gitleaks 15 | rev: v8.15.3 16 | hooks: 17 | - id: gitleaks 18 | - repo: https://github.com/pre-commit/pre-commit-hooks 19 | rev: v4.3.0 20 | hooks: 21 | - id: check-added-large-files 22 | args: ["--maxkb=500"] 23 | name: check for added large files 24 | description: prevents giant files from being committed 25 | entry: check-added-large-files 26 | language: python 27 | stages: 28 | - commit 29 | - push 30 | - manual 31 | - id: check-json 32 | name: check json 33 | description: checks json files for parseable syntax. 34 | entry: check-json 35 | language: python 36 | types: 37 | - json 38 | - id: no-commit-to-branch 39 | args: ["--branch", "main"] 40 | - repo: https://github.com/milin/giticket 41 | rev: v1.4 42 | hooks: 43 | - id: giticket 44 | args: ["--mode=regex_match", "--format=[{ticket}] {commit_msg}"] 45 | - repo: https://github.com/gruntwork-io/pre-commit 46 | rev: v0.1.18 47 | hooks: 48 | - id: helmlint 49 | -------------------------------------------------------------------------------- /charts/mautic/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "mautic.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "mautic.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "mautic.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "mautic.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | echo "Visit http://127.0.0.1:8080 to use your application" 20 | kubectl port-forward $POD_NAME 8080:80 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-pgbouncer-config 5 | labels: 6 | {{- include "pgbouncer.labels" . | nindent 4 }} 7 | data: 8 | POSTGRESQL_USERNAME: "{{ .Values.pgbouncer.username }}" 9 | POSTGRESQL_DATABASE: "{{ .Values.pgbouncer.postgresqlDatabase }}" 10 | PGBOUNCER_DATABASE: "{{ .Values.pgbouncer.database }}" 11 | POSTGRESQL_HOST: "{{ .Values.pgbouncer.host }}" 12 | POSTGRESQL_PORT: "{{ .Values.pgbouncer.port }}" 13 | PGBOUNCER_PORT: "{{ .Values.service.port }}" 14 | {{- if .Values.pgbouncer.setDatabaseUser }} 15 | PGBOUNCER_SET_DATABASE_USER: "{{ .Values.pgbouncer.setDatabaseUser }}" 16 | {{- end }} 17 | {{- if .Values.pgbouncer.setDatabasePassword }} 18 | PGBOUNCER_SET_DATABASE_PASSWORD: "{{ .Values.pgbouncer.setDatabasePassword }}" 19 | {{- end }} 20 | {{- if .Values.pgbouncer.connectQuery }} 21 | PGBOUNCER_CONNECT_QUERY: "{{ .Values.pgbouncer.connectQuery }}" 22 | {{- end }} 23 | {{- if .Values.tls.enabled }} 24 | PGBOUNCER_CLIENT_TLS_SSLMODE: "require" 25 | PGBOUNCER_CLIENT_TLS_CERT_FILE: "/etc/pgbouncer/tls/{{ .Values.tls.certFilename }}" 26 | PGBOUNCER_CLIENT_TLS_KEY_FILE: "/etc/pgbouncer/tls/{{ .Values.tls.certKeyFilename }}" 27 | PGBOUNCER_SERVER_TLS_SSLMODE: "require" 28 | PGBOUNCER_SERVER_TLS_CERT_FILE: "/etc/pgbouncer/tls/{{ .Values.tls.certFilename }}" 29 | PGBOUNCER_SERVER_TLS_KEY_FILE: "/etc/pgbouncer/tls/{{ .Values.tls.certKeyFilename }}" 30 | {{- end }} 31 | {{- range $key, $value := .Values.extraConfigs }} 32 | {{ $key }}: "{{ $value }}" 33 | {{- end }} -------------------------------------------------------------------------------- /archive/geonode/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | Thank you for installing GeoNode! 2 | 3 | Get the application URL by running these commands: 4 | {{- if .Values.ingress.enabled }} 5 | {{- range $host := .Values.ingress.hosts }} 6 | {{- range .paths }} 7 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} 8 | {{- end }} 9 | {{- end }} 10 | {{- else if contains "NodePort" .Values.general.serviceType }} 11 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ .Release.Name }}-geonode) 12 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 13 | echo http://$NODE_IP:$NODE_PORT 14 | {{- else if contains "LoadBalancer" .Values.general.serviceType }} 15 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 16 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ .Release.Name }}-geonode' 17 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ .Release.Name }}-geonode --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 18 | echo http://$SERVICE_IP:{{ .Values.service.port }} 19 | {{- else if contains "ClusterIP" .Values.general.serviceType }} 20 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "org.geonode.instance={{ .Release.Name }}-geonode" -o jsonpath="{.items[0].metadata.name}") 21 | echo "Visit http://127.0.0.1:8080 to use your application" 22 | kubectl port-forward $POD_NAME 8080:80 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /archive/metabase/values.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | # -- This will be used on all pods for all PVCs, including dependencies (postgres) 3 | storageClass: standard 4 | 5 | general: 6 | # -- Used for all published services 7 | serviceType: ClusterIP 8 | 9 | # -- See https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-docker.html for more details 10 | # @default -- see `values.yaml` 11 | metabase: 12 | # -- Replica count 13 | replicas: 1 14 | image: 15 | # -- Metabase image name 16 | name: metabase/metabase 17 | # -- Metabase image tag 18 | tag: latest 19 | # -- Array of URLs to download extra plugins from (jar files) 20 | extraPlugins: [] 21 | 22 | # -- Postgres config 23 | # See https://artifacthub.io/packages/helm/bitnami/postgresql for docs 24 | # @default -- see `values.yaml` 25 | postgresql: 26 | # -- Install postgres? 27 | enabled: true 28 | # Specify an external host here if desired - otherwise we will use the subchart dependency 29 | host: "" 30 | 31 | # -- Password for the `postgres` user 32 | postgresqlPostgresPassword: H55Djpc7Vs 33 | # -- Database to create and use 34 | postgresqlDatabase: metabase 35 | # -- Application username 36 | postgresqlUsername: metabase 37 | # -- Application password 38 | postgresqlPassword: ciJ8KfiMUK 39 | service: 40 | # -- Postgres port 41 | port: 5432 42 | 43 | ingress: 44 | # -- Install ingress? 45 | enabled: false 46 | # -- Dictionary of ingress annotations 47 | annotations: {} 48 | # -- Ingress TLS settings, passed directly to ingress definition 49 | tls: {} 50 | 51 | resources: {} 52 | 53 | javaOpts: "" 54 | -------------------------------------------------------------------------------- /charts/mautic/test-values.yaml: -------------------------------------------------------------------------------- 1 | mariadb: 2 | auth: 3 | rootPassword: toto 4 | username: mautic 5 | password: mautic123 6 | 7 | ingress: 8 | enabled: false 9 | 10 | extraEnvs: 11 | MAUTIC_CONFIG_DEBUG: "1" 12 | 13 | # MAUTIC_DB_HOST: ... (defaults to the IP and port of the linked mysql container) 14 | # MAUTIC_DB_USER: ... (defaults to "root") 15 | # MAUTIC_DB_PASSWORD: ... (defaults to the value of the MYSQL_ROOT_PASSWORD environment variable from the linked mysql container) 16 | # MAUTIC_DB_NAME: ... (defaults to "mautic") 17 | # MAUTIC_DB_TABLE_PREFIX: ... (defaults to empty) Add prefix do Mautic Tables. Very useful when migrate existing databases from another server to docker. 18 | 19 | # MAUTIC_RUN_CRON_JOBS: ... (defaults to true - enabled) If set to true runs mautic cron jobs using included cron daemon 20 | # MAUTIC_RUN_MIGRATIONS: ... (defaults to false - disabled) If set to true runs database migrations automatically on startup. 21 | MAUTIC_TRUSTED_PROXIES: '["0.0.0.0/0"]' 22 | 23 | # PHP_INI_DATE_TIMEZONE: ... (defaults to UTC) Set PHP timezone 24 | # PHP_MEMORY_LIMIT: ... (defaults to 256M) Set PHP memory limit 25 | # PHP_MAX_UPLOAD: ... (defaults to 20M) Set PHP upload max file size 26 | # PHP_MAX_EXECUTION_TIME: ... (defaults to 300) Set PHP max execution time 27 | 28 | MAUTIC_URL: https://mautic.example.com 29 | MAUTIC_ADMIN_EMAIL: "yann.jouanique@oneacrefund.org" 30 | MAUTIC_INSTALL_FORCE: "true" 31 | MAUTIC_ADMIN_USERNAME: Admin 32 | MAUTIC_ADMIN_FIRSTNAME: Yann 33 | MAUTIC_ADMIN_LASTNAME: Jouanique 34 | 35 | extraSecretEnvs: 36 | MAUTIC_ADMIN_PASSWORD: password123 37 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "pgbouncer.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "pgbouncer.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "pgbouncer.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "pgbouncer.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | echo "Visit http://127.0.0.1:8080 to use your application" 20 | kubectl port-forward $POD_NAME 8080:80 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /charts/n8n/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: n8n 3 | description: A Helm chart for n8n 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | 19 | version: 0.1.52 20 | 21 | # This is the version number of the application being deployed. This version number should be 22 | # incremented each time you make changes to the application. Versions are not expected to 23 | # follow Semantic Versioning. They should reflect the version the application is using. 24 | appVersion: 0.212.0 25 | 26 | icon: https://avatars.githubusercontent.com/u/45487711?s=400&v=4 27 | 28 | dependencies: 29 | - name: redis 30 | version: ~17.7.4 31 | repository: https://charts.bitnami.com/bitnami 32 | condition: redis.enabled 33 | - name: postgresql 34 | version: ~11.6.6 35 | repository: https://charts.bitnami.com/bitnami 36 | condition: postgresql.enabled 37 | 38 | maintainers: 39 | - name: bisonlou 40 | email: bisonlou@gmail.com 41 | - name: Yann-J 42 | email: yann.jouanique@gmail.com 43 | -------------------------------------------------------------------------------- /charts/growthbook/templates/mongodb-configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.mongodb.enabled }} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "growthbook.fullname" . }}-mongodb-common-scripts 6 | namespace: {{ .Release.Namespace }} 7 | data: 8 | ping-mongodb.sh: | 9 | #!/bin/bash 10 | set -euo pipefail 11 | TLS_OPTIONS="${TLS_OPTIONS:-}" 12 | mongo $TLS_OPTIONS --port "${MONGODB_PORT_NUMBER:-27017}" --quiet --eval "db.adminCommand('ping')" 13 | 14 | readiness-probe.sh: | 15 | #!/bin/bash 16 | set -euo pipefail 17 | TLS_OPTIONS="${TLS_OPTIONS:-}" 18 | # Detect server version (e.g., 4.4.5) 19 | [[ $(mongod -version | grep "db version") =~ ([0-9]+\.[0-9]+\.[0-9]+) ]] && VERSION=${BASH_REMATCH[1]} 20 | . /opt/bitnami/scripts/libversion.sh 21 | VERSION_MAJOR="$(get_sematic_version "$VERSION" 1)" 22 | VERSION_MINOR="$(get_sematic_version "$VERSION" 2)" 23 | VERSION_PATCH="$(get_sematic_version "$VERSION" 3)" 24 | 25 | if [[ ( "$VERSION_MAJOR" -ge 5 ) || ( "$VERSION_MAJOR" -ge 4 && "$VERSION_MINOR" -ge 4 && "$VERSION_PATCH" -ge 2 ) ]]; then 26 | mongo $TLS_OPTIONS --port "${MONGODB_PORT_NUMBER:-27017}" --quiet --eval "db.hello().isWritablePrimary || db.hello().secondary" | grep -q 'true' 27 | else 28 | mongo $TLS_OPTIONS --port "${MONGODB_PORT_NUMBER:-27017}" --quiet --eval "db.isMaster().ismaster || db.isMaster().secondary" | grep -q 'true' 29 | fi 30 | 31 | startup-probe.sh: | 32 | #!/bin/bash 33 | set -euo pipefail 34 | TLS_OPTIONS="${TLS_OPTIONS:-}" 35 | mongo $TLS_OPTIONS --port "${MONGODB_PORT_NUMBER:-27017}" --quiet --eval "db.hello().isWritablePrimary || db.hello().secondary" | grep -q 'true' 36 | {{- end }} -------------------------------------------------------------------------------- /charts/kutt/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kutt 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 0.2.5 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | # It is recommended to use it with quotes. 24 | appVersion: "1.16.0" 25 | 26 | icon: https://raw.githubusercontent.com/thedevs-network/kutt/9d1c873897c3f5b9a1bd0c74dc5d23f2ed01f2ec/static/images/logo-github.png 27 | 28 | dependencies: 29 | - name: postgresql 30 | version: ~12.1.2 31 | repository: https://charts.bitnami.com/bitnami 32 | condition: postgresql.enabled 33 | - name: redis 34 | version: ~17.3.11 35 | repository: https://charts.bitnami.com/bitnami 36 | condition: redis.enabled 37 | 38 | maintainers: 39 | - name: bisonlou 40 | email: bisonlou@gmail.com 41 | -------------------------------------------------------------------------------- /charts/growthbook/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: growthbook 3 | description: A Helm chart for Growthbook 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 0.1.20 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | # It is recommended to use it with quotes. 24 | appVersion: "1.16.0" 25 | 26 | icon: https://cdn.svgporn.com/logos/growth-book-icon.svg 27 | 28 | # Disable if you already set up mongodb 29 | dependencies: 30 | - name: mongodb 31 | version: ~13.6.1 32 | repository: https://charts.bitnami.com/bitnami/ 33 | condition: mongodb.enabled 34 | 35 | maintainers: 36 | - name: bisonlou 37 | email: bisonlou@gmail.com 38 | - name: Yann-J 39 | email: yann.jouanique@gmail.com 40 | - name: Nzeugaa 41 | email: jean.poutcheu@gmail.com 42 | - name: orchide 43 | email: orchideirakoze@gmail.com 44 | -------------------------------------------------------------------------------- /charts/apicurio/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{ define "secrets_api" -}} 2 | APICURIO_DB_PASSWORD: {{ .Values.postgresql.postgresqlPassword | b64enc }} 3 | APICURIO_KC_CLIENT_SECRET: {{ .Values.keycloak.client.secret | b64enc }} 4 | APICURIO_MICROCKS_CLIENT_SECRET: {{ .Values.microcks.client.secret | b64enc }} 5 | # Extras 6 | {{- range $key, $value := .Values.api.extraSecretEnvVars }} 7 | {{ $key }}: {{- tpl $value $ | b64enc }} 8 | {{- end }} 9 | {{- end }} 10 | 11 | {{ define "secrets_ui" -}} 12 | APICURIO_KC_CLIENT_SECRET: {{ .Values.keycloak.client.secret | b64enc }} 13 | APICURIO_MICROCKS_CLIENT_SECRET: {{ .Values.microcks.client.secret | b64enc }} 14 | # Extras 15 | {{- range $key, $value := .Values.ui.extraSecretEnvVars }} 16 | {{ $key }}: {{- tpl $value $ | b64enc }} 17 | {{- end }} 18 | {{- end }} 19 | 20 | {{ define "secrets_ws" -}} 21 | APICURIO_DB_PASSWORD: {{ .Values.postgresql.postgresqlPassword | b64enc }} 22 | # Extras 23 | {{- range $key, $value := .Values.ws.extraSecretEnvVars }} 24 | {{ $key }}: {{- tpl $value $ | b64enc }} 25 | {{- end }} 26 | {{- end }} 27 | 28 | {{- define "dbHost" -}} 29 | {{ coalesce .Values.postgresql.host ( print .Release.Name "-postgresql" ) }} 30 | {{- end -}} 31 | 32 | # TODO: support other db... for H2: "jdbc:h2:mem:apicuriodb" 33 | {{- define "dbUrl" -}} 34 | {{ printf "jdbc:postgresql://%s:%s/%s" (include "dbHost" .) ( toString .Values.postgresql.service.port ) .Values.postgresql.postgresqlDatabase }} 35 | {{- end -}} 36 | 37 | {{- define "tcpProbe" -}} 38 | tcpSocket: 39 | port: 8080 40 | initialDelaySeconds: 10 41 | periodSeconds: 5 42 | failureThreshold: 15 43 | {{- end -}} 44 | 45 | {{- define "httpProbe" -}} 46 | httpGet: 47 | path: {{ . | quote }} 48 | port: 8080 49 | initialDelaySeconds: 10 50 | periodSeconds: 5 51 | failureThreshold: 15 52 | {{- end -}} 53 | -------------------------------------------------------------------------------- /charts/n8n/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "n8n.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "n8n.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "n8n.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "n8n.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} -------------------------------------------------------------------------------- /archive/geonode/templates/geonode-geoserver-conf.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-geoserver-conf 5 | namespace: {{ .Release.Namespace }} 6 | data: 7 | notifier.xml: | 8 | 9 | 1000 10 | 11 | 1000 12 | 1 13 | type='Catalog' 14 | 15 | 16 | 17 | {{ .Values.rabbitmq.auth.username }} 18 | {{ .Values.rabbitmq.auth.password }} 19 | {{ .Release.Name }}-rabbitmq 20 | 5672 21 | / 22 | geonode 23 | geoserver.catalog 24 | 25 | 26 | 27 | 28 | 1000 29 | 10 30 | type='Data' 31 | 32 | 33 | 34 | {{ .Values.rabbitmq.auth.username }} 35 | {{ .Values.rabbitmq.auth.password }} 36 | {{ .Release.Name }}-rabbitmq 37 | 5672 38 | / 39 | geonode 40 | geoserver.data 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /charts/kutt/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "kutt.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "kutt.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "kutt.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "kutt.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/mautic/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "mautic.name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 7 | {{- end -}} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | If release name contains chart name it will be used as a full name. 13 | */}} 14 | {{- define "mautic.fullname" -}} 15 | {{- if .Values.fullnameOverride -}} 16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 17 | {{- else -}} 18 | {{- $name := default .Chart.Name .Values.nameOverride -}} 19 | {{- if contains $name .Release.Name -}} 20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 23 | {{- end -}} 24 | {{- end -}} 25 | {{- end -}} 26 | 27 | {{/* 28 | Create chart name and version as used by the chart label. 29 | */}} 30 | {{- define "mautic.chart" -}} 31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 32 | {{- end -}} 33 | 34 | {{/* 35 | Common labels 36 | */}} 37 | {{- define "mautic.labels" -}} 38 | app.kubernetes.io/name: {{ include "mautic.name" . }} 39 | helm.sh/chart: {{ include "mautic.chart" . }} 40 | app.kubernetes.io/instance: {{ .Release.Name }} 41 | {{- if .Chart.AppVersion }} 42 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 43 | {{- end }} 44 | app.kubernetes.io/managed-by: {{ .Release.Service }} 45 | {{- end -}} 46 | 47 | 48 | # TODO: support external db 49 | {{- define "db_host" -}} 50 | {{ include "mautic.fullname" . }}-mariadb:{{ .Values.mariadb.primary.service.ports.mysql | default "3306" }} 51 | {{- end -}} 52 | -------------------------------------------------------------------------------- /charts/nocodb/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "nocodb.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "nocodb.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "nocodb.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "nocodb.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/sydent/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "sydent.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "sydent.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "sydent.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "sydent.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "uptime-wrapper.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "uptime-wrapper.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "uptime-wrapper.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "uptime-wrapper.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/metrics-exporter.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.uwsgiExporter.enabled }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ .Release.Name }}-metrics-exporter 6 | namespace: {{ .Release.Namespace }} 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | org.kobotoolbox.instance: {{ .Release.Name }}-metrics-exporter 12 | template: 13 | metadata: 14 | annotations: 15 | prometheus.io/scrape: "true" 16 | prometheus.io/path: "/metrics" 17 | labels: 18 | org.kobotoolbox.instance: {{ .Release.Name }}-metrics-exporter 19 | spec: 20 | initContainers: 21 | # Wait for kobocat and kpi 22 | - name: wait-servers 23 | image: jwilder/dockerize 24 | imagePullPolicy: IfNotPresent 25 | command: 26 | - sh 27 | - -c 28 | - dockerize -timeout=120s -wait tcp://{{ .Release.Name }}-kobo:1717 -wait tcp://{{ .Release.Name }}-kobo:1818 29 | containers: 30 | - name: kc-uwsgi-exporter 31 | image: timonwong/uwsgi-exporter:latest 32 | imagePullPolicy: IfNotPresent 33 | args: 34 | - --stats.uri=tcp://{{ .Release.Name }}-kobo:1717 35 | - --web.telemetry-path=/metrics 36 | - --log.level={{ .Values.uwsgiExporter.logLevel }} 37 | - --web.listen-address=:9117 38 | ports: 39 | - name: metrics 40 | containerPort: 9117 41 | - name: kpi-uwsgi-exporter 42 | image: timonwong/uwsgi-exporter:latest 43 | imagePullPolicy: IfNotPresent 44 | args: 45 | - --stats.uri=tcp://{{ .Release.Name }}-kobo:1818 46 | - --web.telemetry-path=/metrics 47 | - --log.level={{ .Values.uwsgiExporter.logLevel }} 48 | - --web.listen-address=:9118 49 | ports: 50 | - name: metrics 51 | containerPort: 9118 52 | {{- end }} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OAF Public Charts 2 | 3 | [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/one-acre-fund)](https://artifacthub.io/packages/search?repo=one-acre-fund) 4 | [![Release Charts](https://github.com/one-acre-fund/oaf-public-charts/actions/workflows/helm-release.yaml/badge.svg)](https://github.com/one-acre-fund/oaf-public-charts/actions/workflows/helm-release.yaml) 5 | 6 | A collection of useful Helm charts used at [One Acre Fund](https://oneacrefund.org/). 7 | 8 | ## Installation 9 | 10 | ```sh 11 | helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 12 | ``` 13 | 14 | ## Included Charts 15 | 16 | * [Apicurio Studio](https://www.apicur.io/studio/) 17 | * [Flagsmith](https://flagsmith.com/) 18 | * [GrowthBook](https://growthbook.io/) 19 | * [KoboToolbox](https://www.kobotoolbox.org/) 20 | * [Kutt](https://kutt.it/) 21 | * [Mautic](https://www.mautic.org/) 22 | * [n8n](https://n8n.io/) 23 | * [Nocodb](https://www.nocodb.com/) 24 | * [PgBouncer](https://www.pgbouncer.org/) 25 | * [Sydent](https://github.com/matrix-org/sydent) 26 | * [Uptime Wrapper](https://uptime-kuma-api.readthedocs.io/en/latest) 27 | 28 | ## How to contribute 29 | 30 | This repository has the following CI workflows: 31 | 32 | * Every PR will lint and test all updated charts using [chart-testing](https://github.com/helm/chart-testing) 33 | * __Note__: this will fail if any chart is updated without bumping its version - so that published versions remain immutable 34 | * Every merge to `main` branch will publish all updated charts using [chart-releaser](https://github.com/helm/chart-releaser) 35 | * a pre-commit hook is configured to auto-generate each chart's README from the annotations in their `values.yaml`. 36 | * This requires contributors to install [pre-commit](https://pre-commit.com/) 37 | and set up the hook (`pre-commit install && pre-commit install-hooks`). 38 | Otherwise linting will fail at CI time if any discrepancy is detected between `values.yaml` and `README`. 39 | -------------------------------------------------------------------------------- /charts/kutt/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "kutt.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 | If release name contains chart name it will be used as a full name. 12 | */}} 13 | {{- define "kutt.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "kutt.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Common labels 35 | */}} 36 | {{- define "kutt.labels" -}} 37 | helm.sh/chart: {{ include "kutt.chart" . }} 38 | {{ include "kutt.selectorLabels" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Selector labels 47 | */}} 48 | {{- define "kutt.selectorLabels" -}} 49 | app.kubernetes.io/name: {{ include "kutt.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | {{- end }} 52 | 53 | {{/* 54 | Create the name of the service account to use 55 | */}} 56 | {{- define "kutt.serviceAccountName" -}} 57 | {{- if .Values.serviceAccount.create }} 58 | {{- default (include "kutt.fullname" .) .Values.serviceAccount.name }} 59 | {{- else }} 60 | {{- default "default" .Values.serviceAccount.name }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /charts/sydent/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "sydent.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 | If release name contains chart name it will be used as a full name. 12 | */}} 13 | {{- define "sydent.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "sydent.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Common labels 35 | */}} 36 | {{- define "sydent.labels" -}} 37 | helm.sh/chart: {{ include "sydent.chart" . }} 38 | {{ include "sydent.selectorLabels" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Selector labels 47 | */}} 48 | {{- define "sydent.selectorLabels" -}} 49 | app.kubernetes.io/name: {{ include "sydent.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | {{- end }} 52 | 53 | {{/* 54 | Create the name of the service account to use 55 | */}} 56 | {{- define "sydent.serviceAccountName" -}} 57 | {{- if .Values.serviceAccount.create }} 58 | {{- default (include "sydent.fullname" .) .Values.serviceAccount.name }} 59 | {{- else }} 60 | {{- default "default" .Values.serviceAccount.name }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "pgbouncer.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 | If release name contains chart name it will be used as a full name. 12 | */}} 13 | {{- define "pgbouncer.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "pgbouncer.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Common labels 35 | */}} 36 | {{- define "pgbouncer.labels" -}} 37 | helm.sh/chart: {{ include "pgbouncer.chart" . }} 38 | {{ include "pgbouncer.selectorLabels" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Selector labels 47 | */}} 48 | {{- define "pgbouncer.selectorLabels" -}} 49 | app.kubernetes.io/name: {{ include "pgbouncer.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | {{- end }} 52 | 53 | {{/* 54 | Create the name of the service account to use 55 | */}} 56 | {{- define "pgbouncer.serviceAccountName" -}} 57 | {{- if .Values.serviceAccount.create }} 58 | {{- default (include "pgbouncer.fullname" .) .Values.serviceAccount.name }} 59 | {{- else }} 60 | {{- default "default" .Values.serviceAccount.name }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "pgbouncer.fullname" . }} 5 | labels: 6 | {{- include "pgbouncer.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | selector: 12 | matchLabels: 13 | {{- include "pgbouncer.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "pgbouncer.selectorLabels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | serviceAccountName: {{ include "pgbouncer.serviceAccountName" . }} 28 | securityContext: 29 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 30 | containers: 31 | - name: {{ .Chart.Name }} 32 | securityContext: 33 | {{- toYaml .Values.securityContext | nindent 12 }} 34 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 35 | imagePullPolicy: {{ .Values.image.pullPolicy }} 36 | envFrom: 37 | - configMapRef: 38 | name: {{ .Release.Name }}-pgbouncer-config 39 | envFrom: 40 | - secretRef: 41 | name: {{ .Release.Name }}-pgbouncer-secret 42 | ports: 43 | - containerPort: {{ .Values.service.port }} 44 | volumeMounts: 45 | {{- if .Values.tls.enabled }} 46 | - name: tls-secret 47 | mountPath: /etc/pgbouncer/tls 48 | readOnly: true 49 | {{- end }} 50 | {{- if .Values.resources }} 51 | resources: {{ .Values.resources | toYaml | nindent 10 }} 52 | {{- end }} 53 | {{- if .Values.tls.enabled }} 54 | volumes: 55 | - name: tls-secret 56 | secret: 57 | secretName: {{ .Values.tls.certificatesSecret }} 58 | {{- end }} 59 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "uptime-wrapper.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 | If release name contains chart name it will be used as a full name. 12 | */}} 13 | {{- define "uptime-wrapper.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "uptime-wrapper.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Common labels 35 | */}} 36 | {{- define "uptime-wrapper.labels" -}} 37 | helm.sh/chart: {{ include "uptime-wrapper.chart" . }} 38 | {{ include "uptime-wrapper.selectorLabels" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Selector labels 47 | */}} 48 | {{- define "uptime-wrapper.selectorLabels" -}} 49 | app.kubernetes.io/name: {{ include "uptime-wrapper.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | {{- end }} 52 | 53 | {{/* 54 | Create the name of the service account to use 55 | */}} 56 | {{- define "uptime-wrapper.serviceAccountName" -}} 57 | {{- if .Values.serviceAccount.create }} 58 | {{- default (include "uptime-wrapper.fullname" .) .Values.serviceAccount.name }} 59 | {{- else }} 60 | {{- default "default" .Values.serviceAccount.name }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /charts/pgbouncer/values.yaml: -------------------------------------------------------------------------------- 1 | nameOverride: "" 2 | fullnameOverride: "" 3 | image: 4 | repository: bitnami/pgbouncer 5 | tag: 1.19.1-debian-11-r44 6 | pullPolicy: IfNotPresent 7 | 8 | pgbouncer: 9 | username: postgres 10 | # Provide the actual PostgreSQL password here 11 | password: "your-postgresql-password" 12 | database: ${PGBOUNCER_DATABASE} 13 | postgresqlDatabase: ${PGBOUNCER_DATABASE} 14 | host: postgresql 15 | port: 5432 16 | setDatabaseUser: no 17 | setDatabasePassword: no 18 | connectQuery: "" 19 | 20 | # Add extra enviroment varibles in 21 | # "KEY": "VALUE" 22 | extraConfigs: [] 23 | 24 | # Add extra enviroment secerts in 25 | # "KEY": "VALUE" 26 | extraSecretConfigs: [] 27 | 28 | tls: 29 | enabled: true 30 | certificatesSecret: oaf-tls 31 | certFilename: tls.crt 32 | certKeyFilename: tls.key 33 | 34 | service: 35 | port: 6432 36 | type: ClusterIP 37 | 38 | ingress: 39 | enabled: false 40 | annotations: {} 41 | # kubernetes.io/ingress.class: nginx 42 | # kubernetes.io/tls-acme: "true" 43 | className: "nginx" 44 | tls: [] 45 | # - secretName: chart-example-tls 46 | # hosts: 47 | # - chart-example.local 48 | hosts: 49 | - host: chart-example.local 50 | paths: 51 | - path: / 52 | pathType: ImplementationSpecific 53 | 54 | resources: 55 | limits: 56 | cpu: 100m 57 | memory: 128Mi 58 | requests: 59 | cpu: 100m 60 | memory: 128Mi 61 | 62 | autoscaling: 63 | enabled: false 64 | minReplicas: 1 65 | maxReplicas: 100 66 | targetCPUUtilizationPercentage: 80 67 | targetMemoryUtilizationPercentage: 80 68 | 69 | replicaCount: 1 70 | 71 | serviceAccount: 72 | # Specifies whether a service account should be created 73 | create: true 74 | # Annotations to add to the service account 75 | annotations: {} 76 | # The name of the service account to use. 77 | # If not set and create is true, a name is generated using the fullname template 78 | name: "" 79 | 80 | podAnnotations: {} 81 | 82 | # podSecurityContext: 83 | # fsGroup: 1001 84 | podSecurityContext: {} 85 | 86 | # imagePullSecrets 87 | # - name: myRegistryKeySecretName 88 | imagePullSecrets: [] 89 | -------------------------------------------------------------------------------- /charts/nocodb/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: nocodb 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 0.4.5 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | # It is recommended to use it with quotes. 24 | appVersion: "0.258.0" 25 | 26 | dependencies: 27 | - condition: postgresql.enabled 28 | name: postgresql 29 | repository: oci://registry-1.docker.io/bitnamicharts 30 | version: 16.x.x 31 | - condition: redis.enabled 32 | name: redis 33 | repository: oci://registry-1.docker.io/bitnamicharts 34 | version: 20.x.x 35 | - condition: minio.enabled 36 | name: minio 37 | repository: oci://registry-1.docker.io/bitnamicharts 38 | version: 14.x.x 39 | - name: common 40 | repository: oci://registry-1.docker.io/bitnamicharts 41 | tags: 42 | - bitnami-common 43 | version: 2.x.x 44 | 45 | icon: https://raw.githubusercontent.com/one-acre-fund/oaf-public-charts/main/charts/nocodb/img/icon.png 46 | 47 | sources: 48 | - https://github.com/one-acre-fund/oaf-public-charts/tree/main/charts/nocodb 49 | 50 | maintainers: 51 | - name: samaroon 52 | email: rahma.ahmed@oneacrefund.org 53 | url: https://github.com/samaroon 54 | -------------------------------------------------------------------------------- /charts/kutt/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "kutt.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "kutt.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/sydent/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "sydent.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "sydent.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if contains "NodePort" .Values.service.type }} 3 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oaf-odoo-data-migration.fullname" . }}) 4 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 5 | echo http://$NODE_IP:$NODE_PORT 6 | {{- else if contains "LoadBalancer" .Values.service.type }} 7 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 8 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oaf-odoo-data-migration.fullname" . }}' 9 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oaf-odoo-data-migration.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 10 | echo http://$SERVICE_IP:{{ .Values.service.port }} 11 | {{- else if contains "ClusterIP" .Values.service.type }} 12 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oaf-odoo-data-migration.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 13 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 14 | echo "Visit http://127.0.0.1:8080 to use your application" 15 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 16 | {{- end }} 17 | 18 | 2. Check the status of your migration job: 19 | {{- if .Values.job.enabled }} 20 | kubectl get jobs --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oaf-odoo-data-migration.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" 21 | {{- end }} 22 | 23 | 3. View the logs of your migration: 24 | kubectl logs --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oaf-odoo-data-migration.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" 25 | 26 | 4. Configuration: 27 | - Odoo URL: {{ .Values.odoo.url }} 28 | - Odoo Database: {{ .Values.odoo.database }} 29 | - Odoo Username: {{ .Values.odoo.username }} 30 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "uptime-wrapper.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/pgbouncer/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "pgbouncer.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "pgbouncer.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/nocodb/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "nocodb.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ template "common.names.fullname" . }} 19 | namespace: {{ .Release.Namespace | quote }} 20 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 21 | {{- if .Values.commonAnnotations }} 22 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 23 | {{- end }} 24 | spec: 25 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 26 | ingressClassName: {{ .Values.ingress.className }} 27 | {{- end }} 28 | {{- if .Values.ingress.tls }} 29 | tls: 30 | {{- range .Values.ingress.tls }} 31 | - hosts: 32 | {{- range .hosts }} 33 | - {{ . | quote }} 34 | {{- end }} 35 | secretName: {{ .secretName }} 36 | {{- end }} 37 | {{- end }} 38 | rules: 39 | {{- range .Values.ingress.hosts }} 40 | - host: {{ .host | quote }} 41 | http: 42 | paths: 43 | {{- range .paths }} 44 | - path: {{ .path }} 45 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 46 | pathType: {{ .pathType }} 47 | {{- end }} 48 | backend: 49 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 50 | service: 51 | name: {{ $fullName }} 52 | port: 53 | number: {{ $svcPort }} 54 | {{- else }} 55 | serviceName: {{ $fullName }} 56 | servicePort: {{ $svcPort }} 57 | {{- end }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | -------------------------------------------------------------------------------- /charts/mautic/README.md: -------------------------------------------------------------------------------- 1 | # mautic 2 | 3 | ![Version: 0.1.7](https://img.shields.io/badge/Version-0.1.7-informational?style=flat-square) 4 | 5 | A Helm chart for Mautic, a marketing automation tool 6 | 7 | **Homepage:** 8 | 9 | ## Maintainers 10 | 11 | | Name | Email | Url | 12 | | ---- | ------ | --- | 13 | | Yann-J | | | 14 | 15 | ## Source Code 16 | 17 | * 18 | 19 | ## TL;DR 20 | 21 | [Mautic](https://www.mautic.org/) is an open-source marketing campaign automation tool. 22 | 23 | ```console 24 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 25 | $ helm install my-release one-acre-fund/mautic 26 | ``` 27 | 28 | ## Requirements 29 | 30 | | Repository | Name | Version | 31 | |------------|------|---------| 32 | | https://charts.bitnami.com/bitnami | mariadb | ~11.4.6 | 33 | 34 | ## Values 35 | 36 | | Key | Type | Default | Description | 37 | |-----|------|---------|-------------| 38 | | affinity | object | `{}` | | 39 | | extraEnvs | object | `{}` | Dictionary of env vars, see https://hub.docker.com/r/mautic/mautic for possible values | 40 | | extraSecretEnvs | object | `{}` | Same as `extraEnvs` but passed as a secret | 41 | | image.pullPolicy | string | `"IfNotPresent"` | | 42 | | image.repository | string | `"mautic/mautic"` | | 43 | | image.tag | string | `"v4-apache"` | | 44 | | imagePullSecrets | list | `[]` | | 45 | | ingress | object | see `values.yaml` | Ingress definition | 46 | | ingress.enabled | bool | `true` | Enable ingress? | 47 | | mariadb | object | see `values.yaml` | Mariadb subchart configuration, see https://artifacthub.io/packages/helm/bitnami/mariadb for docs | 48 | | mariadb.enabled | bool | `true` | Enable Mariadb chart? | 49 | | nodeSelector | object | `{}` | | 50 | | persistence.existingClaim | string | `""` | | 51 | | probes | object | See `values.yaml` | Probes definitions | 52 | | replicaCount | int | `1` | __WARNING__: if using multiple nodes, you will need to use a `ReadWriteMany` storage class | 53 | | resources | object | `{}` | | 54 | | service.port | int | `80` | | 55 | | service.type | string | `"ClusterIP"` | | 56 | | strategy.type | string | `"Recreate"` | Since we are mounting a volume, using `Recreate` to avoid double-mounting | 57 | | tolerations | list | `[]` | | 58 | | volume.enabled | bool | `true` | | 59 | | volume.spec.accessModes[0] | string | `"ReadWriteOnce"` | | 60 | | volume.spec.resources.requests.storage | string | `"1Gi"` | | 61 | -------------------------------------------------------------------------------- /archive/metabase/README.md: -------------------------------------------------------------------------------- 1 | # metabase 2 | 3 | ![Version: 0.1.11](https://img.shields.io/badge/Version-0.1.11-informational?style=flat-square) 4 | 5 | Metabase with postgres persistence and plugins support 6 | 7 | **Homepage:** 8 | 9 | ## Maintainers 10 | 11 | | Name | Email | Url | 12 | | ---- | ------ | --- | 13 | | Yann-J | | | 14 | 15 | ## Source Code 16 | 17 | * 18 | 19 | ## TL;DR; 20 | 21 | ```console 22 | $ helm repo add one-acre-fund https://one-acre-fund.github.io/oaf-public-charts 23 | $ helm install my-release one-acre-fund/metabase 24 | ``` 25 | 26 | ## Requirements 27 | 28 | | Repository | Name | Version | 29 | |------------|------|---------| 30 | | https://charts.bitnami.com/bitnami | postgresql | ~11.6.6 | 31 | 32 | ## Values 33 | 34 | | Key | Type | Default | Description | 35 | |-----|------|---------|-------------| 36 | | general.serviceType | string | `"ClusterIP"` | Used for all published services | 37 | | global.storageClass | string | `"standard"` | This will be used on all pods for all PVCs, including dependencies (postgres) | 38 | | ingress.annotations | object | `{}` | Dictionary of ingress annotations | 39 | | ingress.enabled | bool | `false` | Install ingress? | 40 | | ingress.tls | object | `{}` | Ingress TLS settings, passed directly to ingress definition | 41 | | javaOpts | string | `""` | | 42 | | metabase | object | see `values.yaml` | See https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-docker.html for more details | 43 | | metabase.extraPlugins | list | `[]` | Array of URLs to download extra plugins from (jar files) | 44 | | metabase.image.name | string | `"metabase/metabase"` | Metabase image name | 45 | | metabase.image.tag | string | `"latest"` | Metabase image tag | 46 | | metabase.replicas | int | `1` | Replica count | 47 | | postgresql | object | see `values.yaml` | Postgres config See https://artifacthub.io/packages/helm/bitnami/postgresql for docs | 48 | | postgresql.enabled | bool | `true` | Install postgres? | 49 | | postgresql.postgresqlDatabase | string | `"metabase"` | Database to create and use | 50 | | postgresql.postgresqlPassword | string | `"ciJ8KfiMUK"` | Application password | 51 | | postgresql.postgresqlPostgresPassword | string | `"H55Djpc7Vs"` | Password for the `postgres` user | 52 | | postgresql.postgresqlUsername | string | `"metabase"` | Application username | 53 | | postgresql.service.port | int | `5432` | Postgres port | 54 | | resources | object | `{}` | | -------------------------------------------------------------------------------- /charts/sydent/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for sydent. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | image: 8 | repository: oaftech.azurecr.io/oneacrefund/sydent 9 | pullPolicy: IfNotPresent 10 | # Overrides the image tag whose default is the chart appVersion. 11 | tag: "latest" 12 | 13 | imagePullSecrets: [] 14 | nameOverride: "" 15 | fullnameOverride: "" 16 | 17 | env: 18 | default: 19 | username: sydentusername 20 | password: sydentpassword 21 | templatePath: res 22 | email: 23 | smtphost: smtp.gmail.com 24 | smtpport: 25 25 | smtpusername: devops.oneacrefund.org 26 | smtppassword: smtpsupersecretpassword 27 | hostname: smtphostname 28 | tlsmode: 0 29 | 30 | serviceAccount: 31 | # Specifies whether a service account should be created 32 | create: true 33 | # Annotations to add to the service account 34 | annotations: {} 35 | # The name of the service account to use. 36 | # If not set and create is true, a name is generated using the fullname template 37 | name: "" 38 | 39 | podAnnotations: {} 40 | 41 | podSecurityContext: 42 | fsGroup: 993 43 | runAsUser: 993 44 | runAsGroup: 933 45 | 46 | securityContext: {} 47 | # capabilities: 48 | # drop: 49 | # - ALL 50 | # readOnlyRootFilesystem: false 51 | # runAsNonRoot: true 52 | # runAsUser: 993 53 | 54 | service: 55 | type: ClusterIP 56 | port: 8090 57 | 58 | ingress: 59 | enabled: false 60 | className: "" 61 | annotations: {} 62 | # kubernetes.io/ingress.class: nginx 63 | # kubernetes.io/tls-acme: "true" 64 | hosts: 65 | - host: chart-example.local 66 | paths: 67 | - path: / 68 | pathType: ImplementationSpecific 69 | tls: [] 70 | # - secretName: chart-example-tls 71 | # hosts: 72 | # - chart-example.local 73 | 74 | resources: {} 75 | # We usually recommend not to specify default resources and to leave this as a conscious 76 | # choice for the user. This also increases chances charts run on environments with little 77 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 78 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 79 | # limits: 80 | # cpu: 100m 81 | # memory: 128Mi 82 | # requests: 83 | # cpu: 100m 84 | # memory: 128Mi 85 | 86 | autoscaling: 87 | enabled: false 88 | minReplicas: 1 89 | maxReplicas: 100 90 | targetCPUUtilizationPercentage: 80 91 | # targetMemoryUtilizationPercentage: 80 92 | 93 | nodeSelector: {} 94 | 95 | tolerations: [] 96 | 97 | affinity: {} 98 | -------------------------------------------------------------------------------- /charts/kutt/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "kutt.fullname" . }} 5 | labels: 6 | {{- include "kutt.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | selector: 12 | matchLabels: 13 | {{- include "kutt.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "kutt.selectorLabels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | serviceAccountName: {{ include "kutt.serviceAccountName" . }} 28 | securityContext: 29 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 30 | containers: 31 | - name: {{ .Chart.Name }} 32 | securityContext: 33 | {{- toYaml .Values.securityContext | nindent 12 }} 34 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 35 | imagePullPolicy: {{ .Values.image.pullPolicy }} 36 | envFrom: 37 | - secretRef: 38 | name: kutt 39 | env: 40 | {{- range $key, $val := .Values.env }} 41 | - name : {{ $key }} 42 | value: {{ $val | quote }} 43 | {{- end }} 44 | - name: DB_PASSWORD 45 | valueFrom: 46 | secretKeyRef: 47 | name: kutt-postgresql 48 | key: postgres-password 49 | - name: REDIS_PASSWORD 50 | valueFrom: 51 | secretKeyRef: 52 | name: kutt-redis 53 | key: redis-password 54 | ports: 55 | - name: http 56 | containerPort: 3000 57 | protocol: TCP 58 | livenessProbe: 59 | httpGet: 60 | path: / 61 | port: http 62 | readinessProbe: 63 | httpGet: 64 | path: / 65 | port: http 66 | resources: 67 | {{- toYaml .Values.resources | nindent 12 }} 68 | {{- with .Values.nodeSelector }} 69 | nodeSelector: 70 | {{- toYaml . | nindent 8 }} 71 | {{- end }} 72 | {{- with .Values.affinity }} 73 | affinity: 74 | {{- toYaml . | nindent 8 }} 75 | {{- end }} 76 | {{- with .Values.tolerations }} 77 | tolerations: 78 | {{- toYaml . | nindent 8 }} 79 | {{- end }} 80 | -------------------------------------------------------------------------------- /charts/nocodb/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ template "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 7 | {{- if or .Values.service.annotations .Values.commonAnnotations }} 8 | {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.service.annotations .Values.commonAnnotations ) "context" . ) }} 9 | annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }} 10 | {{- end }} 11 | spec: 12 | type: {{ .Values.service.type }} 13 | {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} 14 | clusterIP: {{ .Values.service.clusterIP }} 15 | {{- end }} 16 | {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} 17 | externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} 18 | {{- end }} 19 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }} 20 | loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }} 21 | {{- end }} 22 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }} 23 | loadBalancerIP: {{ .Values.service.loadBalancerIP }} 24 | {{- end }} 25 | {{- if .Values.service.sessionAffinity }} 26 | sessionAffinity: {{ .Values.service.sessionAffinity }} 27 | {{- end }} 28 | {{- if .Values.service.sessionAffinityConfig }} 29 | sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }} 30 | {{- end }} 31 | ports: 32 | - name: http 33 | port: {{ coalesce .Values.service.ports.http .Values.service.port }} 34 | protocol: TCP 35 | targetPort: http 36 | {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty (coalesce .Values.service.nodePorts.http .Values.service.nodePort))) }} 37 | nodePort: {{ coalesce .Values.service.nodePorts.http .Values.service.nodePort }} 38 | {{- else if eq .Values.service.type "ClusterIP" }} 39 | nodePort: null 40 | {{- end }} 41 | {{- if .Values.service.extraPorts }} 42 | {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} 43 | {{- end }} 44 | {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }} 45 | selector: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 4 }} 46 | -------------------------------------------------------------------------------- /charts/apicurio/templates/apicurio-studio-ui-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ .Release.Name }}-ui 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | org.apicurio.instance: {{ .Release.Name }}-ui 8 | spec: 9 | replicas: {{ .Values.ui.replicas }} 10 | selector: 11 | matchLabels: 12 | org.apicurio.instance: {{ .Release.Name }}-ui 13 | template: 14 | metadata: 15 | labels: 16 | org.apicurio.instance: {{ .Release.Name }}-ui 17 | annotations: 18 | # Force a pod restart if secret values change 19 | checksum/secrets: {{ include "secrets_ui" . | sha256sum }} 20 | spec: 21 | securityContext: 22 | {{- .Values.ui.securityContext | toYaml | nindent 8 }} 23 | restartPolicy: Always 24 | containers: 25 | - name: api 26 | image: "{{ .Values.ui.image.name }}:{{ .Values.ui.image.tag }}" 27 | imagePullPolicy: {{ .Values.ui.imagePullPolicy }} 28 | terminationMessagePolicy: FallbackToLogsOnError 29 | env: 30 | # UI Settings 31 | - name: APICURIO_UI_FEATURE_SHARE_WITH_EVERYONE 32 | value: {{ .Values.general.shareForEveryone | quote }} 33 | - name: APICURIO_UI_HUB_API_URL 34 | value: {{ coalesce .Values.ui.apiUrl (print "https://" .Values.general.hostname "/studio-api") }} 35 | - name: APICURIO_UI_EDITING_URL 36 | value: {{ coalesce .Values.ui.editingUrl (print "wss://" .Values.general.hostname "/ws") }} 37 | 38 | # Microcks settings 39 | - name: APICURIO_MICROCKS_API_URL 40 | value: {{ .Values.microcks.api.url | quote }} 41 | - name: APICURIO_MICROCKS_CLIENT_ID 42 | value: {{ .Values.microcks.client.id | quote }} 43 | 44 | # Keycloak settings 45 | - name: APICURIO_KC_AUTH_URL 46 | value: {{ .Values.keycloak.url | quote }} 47 | - name: APICURIO_KC_REALM 48 | value: {{ .Values.keycloak.realm | quote }} 49 | - name: APICURIO_KC_CLIENT_ID 50 | value: {{ .Values.keycloak.client.id | quote }} 51 | 52 | {{- range $key, $value := .Values.ui.extraEnvVars }} 53 | - name: {{ $key }} 54 | value: |- 55 | {{- tpl $value $ | nindent 16 }} 56 | {{- end }} 57 | 58 | envFrom: 59 | - secretRef: 60 | name: {{ .Release.Name }}-ui 61 | 62 | ports: 63 | - containerPort: 8080 64 | readinessProbe: 65 | {{- include "httpProbe" "/ready" | nindent 12 }} 66 | livenessProbe: 67 | {{- include "httpProbe" "/ready" | nindent 12 }} 68 | -------------------------------------------------------------------------------- /charts/apicurio/templates/apicurio-studio-ws-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ .Release.Name }}-ws 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | org.apicurio.instance: {{ .Release.Name }}-ws 8 | spec: 9 | replicas: {{ .Values.ws.replicas }} 10 | selector: 11 | matchLabels: 12 | org.apicurio.instance: {{ .Release.Name }}-ws 13 | template: 14 | metadata: 15 | labels: 16 | org.apicurio.instance: {{ .Release.Name }}-ws 17 | annotations: 18 | # Force a pod restart if secret values change 19 | checksum/secrets: {{ include "secrets_ws" . | sha256sum }} 20 | spec: 21 | securityContext: 22 | {{- .Values.ws.securityContext | toYaml | nindent 8 }} 23 | restartPolicy: Always 24 | 25 | initContainers: 26 | {{- if .Values.api.wait }} 27 | # Wait for db 28 | - name: wait-db 29 | image: jwilder/dockerize 30 | imagePullPolicy: IfNotPresent 31 | args: 32 | - -wait 33 | - tcp://{{ include "dbHost" . }}:{{ .Values.postgresql.service.port }} 34 | - -timeout 35 | - 300s 36 | {{- end}} 37 | 38 | containers: 39 | - name: api 40 | image: "{{ .Values.ws.image.name }}:{{ .Values.ws.image.tag }}" 41 | imagePullPolicy: {{ .Values.ws.imagePullPolicy }} 42 | terminationMessagePolicy: FallbackToLogsOnError 43 | env: 44 | # DB settings 45 | - name: APICURIO_DB_CONNECTION_URL 46 | value: {{ include "dbUrl" . | quote }} 47 | - name: APICURIO_DB_DRIVER_NAME 48 | value: {{ .Values.database.driver | quote }} 49 | - name: APICURIO_DB_INITIALIZE 50 | value: {{ .Values.database.initialize | quote }} 51 | - name: APICURIO_DB_TYPE 52 | value: {{ .Values.database.type | quote }} 53 | - name: APICURIO_DB_USER_NAME 54 | value: {{ .Values.postgresql.postgresqlUsername | quote }} 55 | 56 | # Others 57 | - name: APICURIO_SHARE_FOR_EVERYONE 58 | value: {{ .Values.general.shareForEveryone | quote }} 59 | 60 | {{- range $key, $value := .Values.ws.extraEnvVars }} 61 | - name: {{ $key }} 62 | value: |- 63 | {{- tpl $value $ | nindent 16 }} 64 | {{- end }} 65 | 66 | envFrom: 67 | - secretRef: 68 | name: {{ .Release.Name }}-ws 69 | 70 | ports: 71 | - containerPort: 8080 72 | readinessProbe: 73 | {{- include "httpProbe" "/metrics" | nindent 12 }} 74 | livenessProbe: 75 | {{- include "httpProbe" "/metrics" | nindent 12 }} 76 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "uptime-wrapper.fullname" . }} 5 | labels: 6 | {{- include "uptime-wrapper.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | selector: 12 | matchLabels: 13 | {{- include "uptime-wrapper.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "uptime-wrapper.labels" . | nindent 8 }} 22 | {{- with .Values.podLabels }} 23 | {{- toYaml . | nindent 8 }} 24 | {{- end }} 25 | spec: 26 | {{- with .Values.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | serviceAccountName: {{ include "uptime-wrapper.serviceAccountName" . }} 31 | securityContext: 32 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 33 | containers: 34 | - name: {{ .Chart.Name }} 35 | securityContext: 36 | {{- toYaml .Values.securityContext | nindent 12 }} 37 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 38 | imagePullPolicy: {{ .Values.image.pullPolicy }} 39 | ports: 40 | - name: http 41 | containerPort: {{ .Values.service.port }} 42 | protocol: TCP 43 | env: 44 | - name: KUMA_SERVER 45 | value: {{ .Values.env.KUMA_SERVER }} 46 | - name: KUMA_USERNAME 47 | value: {{ .Values.env.KUMA_USERNAME }} 48 | envFrom: 49 | - secretRef: 50 | name: {{ include "uptime-wrapper.fullname" . }}-secret 51 | 52 | livenessProbe: 53 | {{- toYaml .Values.livenessProbe | nindent 12 }} 54 | readinessProbe: 55 | {{- toYaml .Values.readinessProbe | nindent 12 }} 56 | resources: 57 | {{- toYaml .Values.resources | nindent 12 }} 58 | {{- with .Values.volumeMounts }} 59 | volumeMounts: 60 | {{- toYaml . | nindent 12 }} 61 | {{- end }} 62 | {{- with .Values.volumes }} 63 | volumes: 64 | {{- toYaml . | nindent 8 }} 65 | {{- end }} 66 | {{- with .Values.nodeSelector }} 67 | nodeSelector: 68 | {{- toYaml . | nindent 8 }} 69 | {{- end }} 70 | {{- with .Values.affinity }} 71 | affinity: 72 | {{- toYaml . | nindent 8 }} 73 | {{- end }} 74 | {{- with .Values.tolerations }} 75 | tolerations: 76 | {{- toYaml . | nindent 8 }} 77 | {{- end }} 78 | -------------------------------------------------------------------------------- /charts/sydent/README.md: -------------------------------------------------------------------------------- 1 | # sydent 2 | 3 | ![Version: 0.2.5](https://img.shields.io/badge/Version-0.2.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.16.1](https://img.shields.io/badge/AppVersion-1.16.1-informational?style=flat-square) 4 | 5 | A Helm chart for Kubernetes 6 | 7 | ## Maintainers 8 | 9 | | Name | Email | Url | 10 | | ---- | ------ | --- | 11 | | bisonlou | | | 12 | 13 | ## Values 14 | 15 | | Key | Type | Default | Description | 16 | |-----|------|---------|-------------| 17 | | affinity | object | `{}` | | 18 | | autoscaling.enabled | bool | `false` | | 19 | | autoscaling.maxReplicas | int | `100` | | 20 | | autoscaling.minReplicas | int | `1` | | 21 | | autoscaling.targetCPUUtilizationPercentage | int | `80` | | 22 | | env.default.password | string | `"sydentpassword"` | | 23 | | env.default.templatePath | string | `"res"` | | 24 | | env.default.username | string | `"sydentusername"` | | 25 | | env.email.hostname | string | `"smtphostname"` | | 26 | | env.email.smtphost | string | `"smtp.gmail.com"` | | 27 | | env.email.smtppassword | string | `"smtpsupersecretpassword"` | | 28 | | env.email.smtpport | int | `25` | | 29 | | env.email.smtpusername | string | `"devops.oneacrefund.org"` | | 30 | | env.email.tlsmode | int | `0` | | 31 | | fullnameOverride | string | `""` | | 32 | | image.pullPolicy | string | `"IfNotPresent"` | | 33 | | image.repository | string | `"oaftech.azurecr.io/oneacrefund/sydent"` | | 34 | | image.tag | string | `"latest"` | | 35 | | imagePullSecrets | list | `[]` | | 36 | | ingress.annotations | object | `{}` | | 37 | | ingress.className | string | `""` | | 38 | | ingress.enabled | bool | `false` | | 39 | | ingress.hosts[0].host | string | `"chart-example.local"` | | 40 | | ingress.hosts[0].paths[0].path | string | `"/"` | | 41 | | ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | 42 | | ingress.tls | list | `[]` | | 43 | | nameOverride | string | `""` | | 44 | | nodeSelector | object | `{}` | | 45 | | podAnnotations | object | `{}` | | 46 | | podSecurityContext.fsGroup | int | `993` | | 47 | | podSecurityContext.runAsGroup | int | `933` | | 48 | | podSecurityContext.runAsUser | int | `993` | | 49 | | replicaCount | int | `1` | | 50 | | resources | object | `{}` | | 51 | | securityContext | object | `{}` | | 52 | | service.port | int | `8090` | | 53 | | service.type | string | `"ClusterIP"` | | 54 | | serviceAccount.annotations | object | `{}` | | 55 | | serviceAccount.create | bool | `true` | | 56 | | serviceAccount.name | string | `""` | | 57 | | tolerations | list | `[]` | | 58 | 59 | ---------------------------------------------- 60 | Autogenerated from chart metadata using [helm-docs v1.13.1](https://github.com/norwoodj/helm-docs/releases/v1.13.1) 61 | -------------------------------------------------------------------------------- /charts/sydent/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "sydent.fullname" . }} 5 | labels: 6 | {{- include "sydent.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | selector: 12 | matchLabels: 13 | {{- include "sydent.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "sydent.selectorLabels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | serviceAccountName: {{ include "sydent.serviceAccountName" . }} 28 | securityContext: 29 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 30 | containers: 31 | - name: {{ .Chart.Name }} 32 | securityContext: 33 | {{- toYaml .Values.securityContext | nindent 12 }} 34 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 35 | imagePullPolicy: {{ .Values.image.pullPolicy }} 36 | env: 37 | - name: SYDENT_SMTP_HOST 38 | value: {{ .Values.env.email.smtphost }} 39 | - name: SYDENT_SMTP_PORT 40 | value: {{ .Values.env.email.smtpport | quote }} 41 | - name: SYDENT_SMTP_USER 42 | value: {{ .Values.env.email.smtpusername }} 43 | - name: SYDENT_SMTP_HOSTNAME 44 | value: {{ .Values.env.email.hostname }} 45 | - name: SYDENT_TLS_MODE 46 | value: {{ .Values.env.email.tlsmode | quote }} 47 | - name: SYDENT_TEMPLATES_PATH 48 | value: {{ .Values.env.default.templatePath | quote }} 49 | envFrom: 50 | - secretRef: 51 | name: {{ .Release.Name }}-config 52 | ports: 53 | - name: http 54 | containerPort: {{ .Values.service.port }} 55 | protocol: TCP 56 | # livenessProbe: 57 | # httpGet: 58 | # path: / 59 | # port: http 60 | # readinessProbe: 61 | # httpGet: 62 | # path: / 63 | # port: http 64 | resources: 65 | {{- toYaml .Values.resources | nindent 12 }} 66 | {{- with .Values.nodeSelector }} 67 | nodeSelector: 68 | {{- toYaml . | nindent 8 }} 69 | {{- end }} 70 | {{- with .Values.affinity }} 71 | affinity: 72 | {{- toYaml . | nindent 8 }} 73 | {{- end }} 74 | {{- with .Values.tolerations }} 75 | tolerations: 76 | {{- toYaml . | nindent 8 }} 77 | {{- end }} 78 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/README.md: -------------------------------------------------------------------------------- 1 | # uptime-wrapper 2 | 3 | ![Version: 1.0.3](https://img.shields.io/badge/Version-1.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.16.0](https://img.shields.io/badge/AppVersion-1.16.0-informational?style=flat-square) 4 | 5 | A Helm chart for Kubernetes 6 | 7 | ## Maintainers 8 | 9 | | Name | Email | Url | 10 | | ---- | ------ | --- | 11 | | bisonlou | | | 12 | 13 | ## Values 14 | 15 | | Key | Type | Default | Description | 16 | |-----|------|---------|-------------| 17 | | affinity | object | `{}` | | 18 | | autoscaling.enabled | bool | `false` | | 19 | | autoscaling.maxReplicas | int | `100` | | 20 | | autoscaling.minReplicas | int | `1` | | 21 | | autoscaling.targetCPUUtilizationPercentage | int | `80` | | 22 | | env.ADMIN_PASSWORD | string | `"change_me"` | | 23 | | env.KUMA_PASSWORD | string | `"change_me"` | | 24 | | env.KUMA_SERVER | string | `"http://uptime-kuma-web:3001"` | | 25 | | env.KUMA_USERNAME | string | `"admin"` | | 26 | | env.SECRET_KEY | string | `"32_character_secret_key"` | | 27 | | fullnameOverride | string | `""` | | 28 | | image.pullPolicy | string | `"IfNotPresent"` | | 29 | | image.repository | string | `"oaftech.azurecr.io/oneacrefund/uptime-wrapper-api"` | | 30 | | image.tag | string | `"latest"` | | 31 | | imagePullSecrets | list | `[]` | | 32 | | ingress.annotations | object | `{}` | | 33 | | ingress.className | string | `""` | | 34 | | ingress.enabled | bool | `false` | | 35 | | ingress.hosts[0].host | string | `"chart-example.local"` | | 36 | | ingress.hosts[0].paths[0].path | string | `"/"` | | 37 | | ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | 38 | | ingress.tls | list | `[]` | | 39 | | livenessProbe.httpGet.path | string | `"/"` | | 40 | | livenessProbe.httpGet.port | string | `"http"` | | 41 | | nameOverride | string | `""` | | 42 | | nodeSelector | object | `{}` | | 43 | | podAnnotations | object | `{}` | | 44 | | podLabels | object | `{}` | | 45 | | podSecurityContext | object | `{}` | | 46 | | readinessProbe.httpGet.path | string | `"/"` | | 47 | | readinessProbe.httpGet.port | string | `"http"` | | 48 | | replicaCount | int | `1` | | 49 | | resources | object | `{}` | | 50 | | securityContext | object | `{}` | | 51 | | service.port | int | `8000` | | 52 | | service.targetPort | string | `"http"` | | 53 | | service.type | string | `"ClusterIP"` | | 54 | | serviceAccount.annotations | object | `{}` | | 55 | | serviceAccount.automount | bool | `true` | | 56 | | serviceAccount.create | bool | `true` | | 57 | | serviceAccount.name | string | `""` | | 58 | | tolerations | list | `[]` | | 59 | | volumeMounts | list | `[]` | | 60 | | volumes | list | `[]` | | 61 | 62 | ---------------------------------------------- 63 | Autogenerated from chart metadata using [helm-docs v1.13.1](https://github.com/norwoodj/helm-docs/releases/v1.13.1) 64 | -------------------------------------------------------------------------------- /charts/mautic/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "mautic.fullname" . }} 5 | labels: 6 | {{- include "mautic.labels" . | nindent 4 }} 7 | spec: 8 | replicas: {{ .Values.replicaCount }} 9 | {{- with .Values.strategy }} 10 | strategy: 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | selector: 14 | matchLabels: 15 | app.kubernetes.io/name: {{ include "mautic.name" . }} 16 | app.kubernetes.io/instance: {{ .Release.Name }} 17 | template: 18 | metadata: 19 | labels: 20 | app.kubernetes.io/name: {{ include "mautic.name" . }} 21 | app.kubernetes.io/instance: {{ .Release.Name }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | initContainers: 28 | # Wait for DB 29 | - name: wait-db 30 | image: jwilder/dockerize 31 | # We don't care about having latest... 32 | imagePullPolicy: IfNotPresent 33 | command: 34 | - sh 35 | - -c 36 | - dockerize -timeout=120s -wait tcp://{{ include "db_host" .}} 37 | containers: 38 | - name: {{ .Chart.Name }} 39 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" 40 | imagePullPolicy: {{ .Values.image.pullPolicy }} 41 | env: 42 | - name: MAUTIC_DB_HOST 43 | value: {{ include "db_host" . | quote }} 44 | - name: MAUTIC_DB_USER 45 | value: {{ .Values.mariadb.auth.username | quote }} 46 | - name: MAUTIC_DB_NAME 47 | value: {{ .Values.mariadb.auth.database | quote }} 48 | {{- range $key, $value := .Values.extraEnvs }} 49 | - name: {{ $key | quote }} 50 | value: |- 51 | {{- tpl $value $ | nindent 18 }} 52 | {{- end }} 53 | envFrom: 54 | - secretRef: 55 | name: {{ include "mautic.fullname" . | quote }} 56 | ports: 57 | - name: http 58 | containerPort: 80 59 | protocol: TCP 60 | {{- if .Values.probes }} 61 | {{- toYaml .Values.probes | nindent 10 }} 62 | {{- end }} 63 | resources: 64 | {{- toYaml .Values.resources | nindent 12 }} 65 | volumeMounts: 66 | - name: var-www-html 67 | mountPath: /var/www/html 68 | {{- with .Values.nodeSelector }} 69 | nodeSelector: 70 | {{- toYaml . | nindent 8 }} 71 | {{- end }} 72 | {{- with .Values.affinity }} 73 | affinity: 74 | {{- toYaml . | nindent 8 }} 75 | {{- end }} 76 | {{- with .Values.tolerations }} 77 | tolerations: 78 | {{- toYaml . | nindent 8 }} 79 | {{- end }} 80 | volumes: 81 | - name: var-www-html 82 | persistentVolumeClaim: 83 | {{- if .Values.persistence.existingClaim }} 84 | claimName: {{ .Values.persistence.existingClaim }} 85 | {{- else }} 86 | claimName: {{ include "mautic.name" .}}-var-www-html 87 | {{- end }} 88 | -------------------------------------------------------------------------------- /charts/uptime-wrapper/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for uptime-wrapper. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | image: 8 | repository: oaftech.azurecr.io/oneacrefund/uptime-wrapper-api 9 | pullPolicy: IfNotPresent 10 | # Overrides the image tag whose default is the chart appVersion. 11 | tag: "latest" 12 | 13 | env: 14 | KUMA_SERVER: "http://uptime-kuma-web:3001" 15 | KUMA_USERNAME: "admin" 16 | KUMA_PASSWORD: "change_me" 17 | ADMIN_PASSWORD: "change_me" 18 | SECRET_KEY: "32_character_secret_key" 19 | 20 | imagePullSecrets: [] 21 | nameOverride: "" 22 | fullnameOverride: "" 23 | 24 | serviceAccount: 25 | # Specifies whether a service account should be created 26 | create: true 27 | # Automatically mount a ServiceAccount's API credentials? 28 | automount: true 29 | # Annotations to add to the service account 30 | annotations: {} 31 | # The name of the service account to use. 32 | # If not set and create is true, a name is generated using the fullname template 33 | name: "" 34 | 35 | podAnnotations: {} 36 | podLabels: {} 37 | 38 | podSecurityContext: {} 39 | # fsGroup: 2000 40 | 41 | securityContext: {} 42 | # capabilities: 43 | # drop: 44 | # - ALL 45 | # readOnlyRootFilesystem: true 46 | # runAsNonRoot: true 47 | # runAsUser: 1000 48 | 49 | service: 50 | type: ClusterIP 51 | port: 8000 52 | targetPort: http 53 | 54 | ingress: 55 | enabled: false 56 | className: "" 57 | annotations: {} 58 | # kubernetes.io/ingress.class: nginx 59 | # kubernetes.io/tls-acme: "true" 60 | hosts: 61 | - host: chart-example.local 62 | paths: 63 | - path: / 64 | pathType: ImplementationSpecific 65 | tls: [] 66 | # - secretName: chart-example-tls 67 | # hosts: 68 | # - chart-example.local 69 | 70 | resources: {} 71 | # We usually recommend not to specify default resources and to leave this as a conscious 72 | # choice for the user. This also increases chances charts run on environments with little 73 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 74 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 75 | # limits: 76 | # cpu: 100m 77 | # memory: 128Mi 78 | # requests: 79 | # cpu: 100m 80 | # memory: 128Mi 81 | 82 | livenessProbe: 83 | httpGet: 84 | path: / 85 | port: http 86 | readinessProbe: 87 | httpGet: 88 | path: / 89 | port: http 90 | 91 | autoscaling: 92 | enabled: false 93 | minReplicas: 1 94 | maxReplicas: 100 95 | targetCPUUtilizationPercentage: 80 96 | # targetMemoryUtilizationPercentage: 80 97 | 98 | # Additional volumes on the output Deployment definition. 99 | volumes: [] 100 | # - name: foo 101 | # secret: 102 | # secretName: mysecret 103 | # optional: false 104 | 105 | # Additional volumeMounts on the output Deployment definition. 106 | volumeMounts: [] 107 | # - name: foo 108 | # mountPath: "/etc/foo" 109 | # readOnly: true 110 | 111 | nodeSelector: {} 112 | 113 | tolerations: [] 114 | 115 | affinity: {} 116 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/templates/job.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.job.enabled }} 2 | apiVersion: batch/v1 3 | kind: Job 4 | metadata: 5 | name: {{ include "oaf-odoo-data-migration.fullname" . }}-job 6 | labels: 7 | {{- include "oaf-odoo-data-migration.labels" . | nindent 4 }} 8 | spec: 9 | backoffLimit: {{ .Values.job.backoffLimit }} 10 | {{- if .Values.job.activeDeadlineSeconds }} 11 | activeDeadlineSeconds: {{ .Values.job.activeDeadlineSeconds }} 12 | {{- end }} 13 | {{- if .Values.job.ttlSecondsAfterFinished }} 14 | ttlSecondsAfterFinished: {{ .Values.job.ttlSecondsAfterFinished }} 15 | {{- end }} 16 | template: 17 | metadata: 18 | {{- with .Values.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | {{- include "oaf-odoo-data-migration.selectorLabels" . | nindent 8 }} 24 | spec: 25 | {{- with .Values.imagePullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 8 }} 28 | {{- end }} 29 | serviceAccountName: {{ include "oaf-odoo-data-migration.serviceAccountName" . }} 30 | securityContext: 31 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 32 | restartPolicy: {{ .Values.job.restartPolicy }} 33 | containers: 34 | - name: {{ .Chart.Name }} 35 | securityContext: 36 | {{- toYaml .Values.securityContext | nindent 12 }} 37 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 38 | imagePullPolicy: {{ .Values.image.pullPolicy }} 39 | env: 40 | {{- include "oaf-odoo-data-migration.odooEnvVars" . | nindent 12 }} 41 | {{- range .Values.env }} 42 | - name: {{ .name }} 43 | value: {{ .value | quote }} 44 | {{- end }} 45 | {{- with .Values.envFrom }} 46 | envFrom: 47 | {{- toYaml . | nindent 12 }} 48 | {{- end }} 49 | resources: 50 | {{- toYaml .Values.resources | nindent 12 }} 51 | volumeMounts: 52 | {{- if .Values.dataFiles.configMapName }} 53 | - name: data-files 54 | mountPath: {{ .Values.dataFiles.mountPath }} 55 | readOnly: true 56 | {{- end }} 57 | {{- if .Values.persistence.enabled }} 58 | - name: data-storage 59 | mountPath: /app/data 60 | {{- end }} 61 | volumes: 62 | {{- if .Values.dataFiles.configMapName }} 63 | - name: data-files 64 | configMap: 65 | name: {{ .Values.dataFiles.configMapName }} 66 | {{- end }} 67 | {{- if .Values.persistence.enabled }} 68 | - name: data-storage 69 | persistentVolumeClaim: 70 | claimName: {{ include "oaf-odoo-data-migration.fullname" . }}-pvc 71 | {{- end }} 72 | {{- with .Values.nodeSelector }} 73 | nodeSelector: 74 | {{- toYaml . | nindent 8 }} 75 | {{- end }} 76 | {{- with .Values.affinity }} 77 | affinity: 78 | {{- toYaml . | nindent 8 }} 79 | {{- end }} 80 | {{- with .Values.tolerations }} 81 | tolerations: 82 | {{- toYaml . | nindent 8 }} 83 | {{- end }} 84 | {{- end }} 85 | -------------------------------------------------------------------------------- /charts/oaf-odoo-data-migration/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for oaf-odoo-data-migration. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | image: 8 | repository: oaf-odoo-data-migration 9 | pullPolicy: IfNotPresent 10 | # Overrides the image tag whose default is the chart appVersion. 11 | tag: "latest" 12 | 13 | imagePullSecrets: [] 14 | nameOverride: "" 15 | fullnameOverride: "" 16 | 17 | # Odoo connection configuration 18 | odoo: 19 | url: "" 20 | database: "" 21 | username: "" 22 | password: "" 23 | 24 | # Whether to store sensitive data in the chart's secret (recommended) 25 | useSecret: true 26 | 27 | # Job configuration - since this is a one-time data migration 28 | job: 29 | enabled: true 30 | restartPolicy: Never 31 | backoffLimit: 3 32 | activeDeadlineSeconds: 3600 33 | ttlSecondsAfterFinished: 86400 34 | 35 | # CronJob configuration - for scheduled migrations 36 | cronJob: 37 | enabled: false 38 | schedule: "0 2 * * *" # Run daily at 2 AM 39 | suspend: false 40 | successfulJobsHistoryLimit: 3 41 | failedJobsHistoryLimit: 1 42 | 43 | # Service configuration (not typically needed for batch jobs) 44 | service: 45 | type: ClusterIP 46 | port: 80 47 | 48 | # Data volume configuration 49 | persistence: 50 | enabled: true 51 | # existingClaim: "" 52 | storageClass: "" 53 | accessMode: ReadWriteOnce 54 | size: 2Gi # Increased size for larger files 55 | # If you want to use an existing PVC 56 | # existingClaim: "my-data-pvc" 57 | 58 | # Data files configuration 59 | dataFiles: 60 | # ConfigMap name for small files (< 1MB) 61 | configMapName: "" 62 | mountPath: "/app/data" 63 | 64 | serviceAccount: 65 | # Specifies whether a service account should be created 66 | create: true 67 | # Annotations to add to the service account 68 | annotations: {} 69 | # The name of the service account to use. 70 | # If not set and create is true, a name is generated using the fullname template 71 | name: "" 72 | 73 | podAnnotations: {} 74 | 75 | podSecurityContext: 76 | {} 77 | # fsGroup: 2000 78 | 79 | securityContext: 80 | {} 81 | # capabilities: 82 | # drop: 83 | # - ALL 84 | # readOnlyRootFilesystem: true 85 | # runAsNonRoot: true 86 | # runAsUser: 1000 87 | 88 | resources: 89 | # We usually recommend not to specify default resources and to leave this as a conscious 90 | # choice for the user. This also increases chances charts run on environments with little 91 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 92 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 93 | limits: 94 | cpu: 500m 95 | memory: 512Mi 96 | requests: 97 | cpu: 100m 98 | memory: 128Mi 99 | 100 | nodeSelector: {} 101 | 102 | tolerations: [] 103 | 104 | affinity: {} 105 | 106 | # Environment variables 107 | env: 108 | - name: PYTHONUNBUFFERED 109 | value: "1" 110 | 111 | # Additional environment variables from secrets 112 | envFrom: 113 | [] 114 | # - secretRef: 115 | # name: odoo-credentials 116 | 117 | # Logging configuration 118 | logging: 119 | level: INFO 120 | -------------------------------------------------------------------------------- /charts/kobotoolbox/templates/enketo-deploy.yaml: -------------------------------------------------------------------------------- 1 | # Sync gateway pod 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ .Release.Name }}-enketo 6 | namespace: {{ .Release.Namespace }} 7 | spec: 8 | replicas: {{ .Values.enketo.replicas }} 9 | selector: 10 | matchLabels: 11 | org.kobotoolbox.instance: {{ .Release.Name }}-enketo 12 | template: 13 | metadata: 14 | annotations: 15 | # Add a checksum to force the re-creation of the pods on every config update 16 | checksum/config: {{ tpl .Values.enketo.config . | sha256sum }} 17 | labels: 18 | org.kobotoolbox.instance: {{ .Release.Name }}-enketo 19 | spec: 20 | initContainers: 21 | # Copy settings from configmap to a volume, since it needs to be writable by the container, which ConfigMaps cannot be 22 | - name: copy-config 23 | image: busybox 24 | command: 25 | - sh 26 | - -c 27 | - | 28 | cp /config-init/config.json /srv/src/enketo_express/config/ 29 | volumeMounts: 30 | - name: enketo-config 31 | mountPath: /config-init/config.json 32 | subPath: config.json 33 | readOnly: true 34 | - name: cache-volume 35 | subPath: config 36 | mountPath: /srv/src/enketo_express/config 37 | 38 | containers: 39 | # Enketo is the web-based form viewer 40 | - name: enketo 41 | image: "{{ .Values.enketo.image.name }}:{{ .Values.enketo.image.tag }}" 42 | terminationMessagePolicy: FallbackToLogsOnError 43 | volumeMounts: 44 | # Config 45 | - name: cache-volume 46 | subPath: config/config.json 47 | mountPath: /srv/src/enketo_express/config/config.json 48 | # Custom icons 49 | - name: kobo-assets 50 | mountPath: /srv/src/enketo_express/public/images/favicon.ico 51 | subPath: favicon.ico 52 | readOnly: true 53 | - name: kobo-assets 54 | mountPath: /srv/src/enketo_express/public/images/icon_180x180.png 55 | subPath: icon_180x180.png 56 | readOnly: true 57 | ports: 58 | - containerPort: 8005 59 | env: 60 | - name: ENKETO_BUILD_IE11 61 | value: 'true' 62 | # This one is REALLY slow to come up since we rebuild the entire webapp at startup... 63 | # It's probably best to not have a readiness probe, as this would delay the termination of older pods 64 | # readinessProbe: 65 | # tcpSocket: 66 | # port: 8005 67 | # initialDelaySeconds: 30 68 | # periodSeconds: 30 69 | # failureThreshold: 15 70 | livenessProbe: 71 | tcpSocket: 72 | port: 8005 73 | initialDelaySeconds: 600 74 | periodSeconds: 20 75 | 76 | volumes: 77 | - name: enketo-config 78 | secret: 79 | secretName: {{ .Release.Name }}-enketo 80 | - name: kobo-assets 81 | configMap: 82 | name: {{ .Release.Name }}-assets 83 | # Using an emptyDir to cache compiled statics... it will survive container crashes, but not pod restarts 84 | - name: cache-volume 85 | emptyDir: {} 86 | -------------------------------------------------------------------------------- /charts/apicurio/templates/apicurio-studio-api-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ .Release.Name }}-api 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | org.apicurio.instance: {{ .Release.Name }}-api 8 | spec: 9 | replicas: {{ .Values.api.replicas }} 10 | selector: 11 | matchLabels: 12 | org.apicurio.instance: {{ .Release.Name }}-api 13 | template: 14 | metadata: 15 | labels: 16 | org.apicurio.instance: {{ .Release.Name }}-api 17 | annotations: 18 | # Force a pod restart if secret values change 19 | checksum/secrets: {{ include "secrets_api" . | sha256sum }} 20 | spec: 21 | securityContext: 22 | {{- .Values.api.securityContext | toYaml | nindent 8 }} 23 | restartPolicy: Always 24 | 25 | initContainers: 26 | {{- if .Values.api.wait }} 27 | # Wait for db 28 | - name: wait-db 29 | image: jwilder/dockerize 30 | imagePullPolicy: IfNotPresent 31 | args: 32 | - -timeout=300s 33 | - -wait=tcp://{{ include "dbHost" . }}:{{ .Values.postgresql.service.port }} 34 | {{- end }} 35 | 36 | containers: 37 | - name: api 38 | image: "{{ .Values.api.image.name }}:{{ .Values.api.image.tag }}" 39 | imagePullPolicy: {{ .Values.api.imagePullPolicy }} 40 | terminationMessagePolicy: FallbackToLogsOnError 41 | env: 42 | # DB settings 43 | - name: APICURIO_DB_CONNECTION_URL 44 | value: {{ include "dbUrl" . | quote }} 45 | - name: APICURIO_DB_DRIVER_NAME 46 | value: {{ .Values.database.driver | quote }} 47 | - name: APICURIO_DB_INITIALIZE 48 | value: {{ .Values.database.initialize | quote }} 49 | - name: APICURIO_DB_TYPE 50 | value: {{ .Values.database.type | quote }} 51 | - name: APICURIO_DB_USER_NAME 52 | value: {{ .Values.postgresql.postgresqlUsername | quote }} 53 | 54 | # Microcks settings 55 | - name: APICURIO_MICROCKS_API_URL 56 | value: {{ .Values.microcks.api.url | quote }} 57 | - name: APICURIO_MICROCKS_CLIENT_ID 58 | value: {{ .Values.microcks.client.id | quote }} 59 | 60 | # Keycloak settings 61 | - name: APICURIO_KC_AUTH_URL 62 | value: {{ .Values.keycloak.url | quote }} 63 | - name: APICURIO_KC_REALM 64 | value: {{ .Values.keycloak.realm | quote }} 65 | - name: APICURIO_KC_CLIENT_ID 66 | value: {{ .Values.keycloak.client.id | quote }} 67 | 68 | # Others 69 | - name: APICURIO_SHARE_FOR_EVERYONE 70 | value: {{ .Values.general.shareForEveryone | quote }} 71 | 72 | {{- range $key, $value := .Values.api.extraEnvVars }} 73 | - name: {{ $key }} 74 | value: |- 75 | {{- tpl $value $ | nindent 16 }} 76 | {{- end }} 77 | 78 | envFrom: 79 | - secretRef: 80 | name: {{ .Release.Name }}-api 81 | 82 | ports: 83 | - containerPort: 8080 84 | 85 | readinessProbe: 86 | {{- include "httpProbe" "/system/ready" | nindent 12 }} 87 | livenessProbe: 88 | {{- include "httpProbe" "/system/ready" | nindent 12 }} 89 | --------------------------------------------------------------------------------