├── .gitpod.yml ├── charts ├── futtertrog │ ├── icon.png │ ├── Chart.lock │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── dbMigrate.yaml │ │ ├── createAdminAccount.yaml │ │ ├── secret.yaml │ │ ├── cron.yaml │ │ ├── ingress.yaml │ │ ├── NOTES.txt │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ └── _helpers.tpl │ ├── .helmignore │ ├── Chart.yaml │ └── values.yaml ├── kimai2 │ ├── templates │ │ ├── extra-list.yaml │ │ ├── serviceaccount.yaml │ │ ├── pdb.yaml │ │ ├── secrets.yaml │ │ ├── configmap.yaml │ │ ├── networkpolicy-backend-ingress.yaml │ │ ├── networkpolicy-egress.yaml │ │ ├── pvc.yaml │ │ ├── hpa.yaml │ │ ├── svc.yaml │ │ ├── ingress.yaml │ │ ├── NOTES.txt │ │ ├── networkpolicy-ingress.yaml │ │ └── _helpers.tpl │ ├── .helmignore │ ├── Chart.lock │ └── Chart.yaml └── nominatim │ ├── templates │ ├── extra-list.yaml │ ├── ui-configmap.yaml │ ├── nginx-configmap.yaml │ ├── serviceaccount.yaml │ ├── importfilter-configmap.yaml │ ├── pdb.yaml │ ├── networkpolicy-backend-ingress.yaml │ ├── networkpolicy-egress.yaml │ ├── pvc.yaml │ ├── NOTES.txt │ ├── pvc-data.yaml │ ├── hpa.yaml │ ├── svc.yaml │ ├── ingress.yaml │ ├── networkpolicy-ingress.yaml │ ├── _helpers.tpl │ └── updatesJob.yaml │ ├── Chart.lock │ ├── .helmignore │ └── Chart.yaml ├── archived ├── kirby3 │ ├── Chart.yaml │ ├── templates │ │ ├── network-policy.yaml │ │ ├── NOTES.txt │ │ ├── pvc.yaml │ │ ├── hpa.yaml │ │ ├── pdb.yaml │ │ ├── service.yaml │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ └── deployment.yaml │ ├── values.yaml │ └── README.md ├── unpubd │ ├── Chart.lock │ ├── Chart.yaml │ ├── .helmignore │ └── templates │ │ ├── externaldb-secrets.yaml │ │ ├── ingress.yaml │ │ ├── NOTES.txt │ │ ├── service.yaml │ │ ├── deployment.yaml │ │ └── _helpers.tpl └── shopware │ ├── .helmignore │ ├── jwt_public.pem │ ├── generate_jwt.php │ ├── Chart.lock │ ├── templates │ ├── config-custom.yaml │ ├── secrets-jwt.yaml │ ├── externaldb-secrets.yaml │ ├── pdb.yaml │ ├── secrets.yaml │ ├── pvc.yaml │ ├── consumer-hpa.yaml │ ├── metrics-svc.yaml │ ├── hpa.yaml │ ├── tls-secrets.yaml │ ├── servicemonitor.yaml │ ├── config.yaml │ ├── svc.yaml │ ├── jobInit.yaml │ ├── jobUpdate.yaml │ ├── config-minio.yaml │ ├── ingress.yaml │ ├── NOTES.txt │ ├── task-runner-deployment.yaml │ └── consumer-deployment.yaml │ ├── Chart.yaml │ ├── jwt_private.pem │ └── values.schema.json ├── renovate.json ├── README.md ├── .github └── workflows │ └── release.yaml └── .gitignore /.gitpod.yml: -------------------------------------------------------------------------------- 1 | image: quadeare/gitpod-kubectl:latest -------------------------------------------------------------------------------- /charts/futtertrog/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robjuz/helm-charts/HEAD/charts/futtertrog/icon.png -------------------------------------------------------------------------------- /archived/kirby3/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | description: A Helm chart for Kubernetes 3 | name: kirby3 4 | version: 1.0.0 5 | -------------------------------------------------------------------------------- /charts/kimai2/templates/extra-list.yaml: -------------------------------------------------------------------------------- 1 | {{- range .Values.extraDeploy }} 2 | --- 3 | {{ include "common.tplvalues.render" (dict "value" . "context" $) }} 4 | {{- end }} -------------------------------------------------------------------------------- /charts/nominatim/templates/extra-list.yaml: -------------------------------------------------------------------------------- 1 | {{- range .Values.extraDeploy }} 2 | --- 3 | {{ include "common.tplvalues.render" (dict "value" . "context" $) }} 4 | {{- end }} -------------------------------------------------------------------------------- /archived/kirby3/templates/network-policy.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.networkPolicy.enabled -}} 2 | apiVersion: networking.k8s.io/v1 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ template "fullname" . }} 6 | labels: 7 | {{ include "sharedlabels" . | indent 4}} 8 | spec: 9 | {{ toYaml .Values.networkPolicy.spec | indent 2 }} 10 | {{- end -}} 11 | -------------------------------------------------------------------------------- /archived/unpubd/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 1.17.1 5 | - name: mongodb 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 13.4.4 8 | digest: sha256:c94f2d70cdc98cea37aa820a5b44f535e5cadceaeb2c5efeae2145c2249ab443 9 | generated: "2022-11-17T08:51:48.133204429+01:00" 10 | -------------------------------------------------------------------------------- /charts/futtertrog/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 0.10.0 5 | - name: mariadb 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 9.4.4 8 | digest: sha256:5430036e3acb2432c8b98d4529d2a6196b1be7517e66f2deeba12fd3ce88d256 9 | generated: "2021-09-01T20:38:39.929459469+02:00" 10 | -------------------------------------------------------------------------------- /charts/nominatim/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: common 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 2.21.0 5 | - name: postgresql 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 15.5.38 8 | digest: sha256:90e326125f68111035d964fa0ad0b5df2f67c12923d42aa963711256174841bc 9 | generated: "2025-08-02T15:28:18.1068183+02:00" 10 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "futtertrog.serviceAccountName" . }} 6 | labels: 7 | {{- include "futtertrog.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /archived/unpubd/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: unpubd 3 | description: A Helm chart for Kubernetes 4 | type: application 5 | version: 1.0.1 6 | appVersion: "0.0.5" 7 | 8 | dependencies: 9 | - name: common 10 | version: 1.x.x 11 | repository: https://charts.bitnami.com/bitnami 12 | - name: mongodb 13 | repository: https://charts.bitnami.com/bitnami 14 | version: 13.x.x 15 | condition: mongodb.enabled 16 | -------------------------------------------------------------------------------- /archived/kirby3/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | {{- if and .Values.ingress.enabled .Values.service.enabled -}} 2 | Application should be accessible at 3 | 4 | {{ .Values.service.url }} 5 | {{- else -}} 6 | Application was deployed reusing the service at 7 | 8 | {{ .Values.service.url }} 9 | 10 | It will share a load balancer with the previous release (or be unavailable if 11 | no service or ingress was previously deployed). 12 | {{- end -}} 13 | -------------------------------------------------------------------------------- /archived/shopware/.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/futtertrog/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "futtertrog.fullname" . }} 5 | labels: 6 | {{- include "futtertrog.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 "futtertrog.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /archived/unpubd/.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/kimai2/.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/kimai2/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: mariadb 3 | repository: oci://registry-1.docker.io/bitnamicharts 4 | version: 11.5.7 5 | - name: redis 6 | repository: oci://registry-1.docker.io/bitnamicharts 7 | version: 19.5.0 8 | - name: common 9 | repository: oci://registry-1.docker.io/bitnamicharts 10 | version: 2.20.4 11 | digest: sha256:bc43e34549dc05f146545ab6ac105e7c44eddbc78a0f5ec847f91352c0f4cb54 12 | generated: "2024-07-15T12:25:04.7503347+02:00" 13 | -------------------------------------------------------------------------------- /charts/nominatim/.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/futtertrog/.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 | -------------------------------------------------------------------------------- /archived/kirby3/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | kind: PersistentVolumeClaim 2 | apiVersion: v1 3 | metadata: 4 | name: {{ template "fullname" . }} 5 | labels: 6 | app: {{ template "fullname" . }} 7 | chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" 8 | release: "{{ .Release.Name }}" 9 | heritage: "{{ .Release.Service }}" 10 | spec: 11 | accessModes: 12 | - "ReadWriteOnce" 13 | resources: 14 | requests: 15 | storage: "20Gi" 16 | storageClassName: "rook-ceph-block" 17 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "futtertrog.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "futtertrog.labels" . | nindent 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 "futtertrog.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /archived/shopware/jwt_public.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaSbPOeJSPqW3kthchZt 3 | rxIa/HYRMgATxqlsYjRUMjXLUX5pLOBU4QyNuzgTfCG/cgTTRM2uPUIRnGKcBbVK 4 | f6p9OIluqyPV/b3OXnOW06UEVyg2MpWaT6RJdzJrYB1nWoLmmmcjE/0Z2NV6y4hy 5 | AWLYbhIv3u46ymYRfTZA1LNWjY119WOm8lyAni9qovVebwbCYVwp43Qh1ag7sCUq 6 | yr0JMyXKFUEohWfHg82W+LQ3TleLebKW4WQLJICQaVPY9fgrdDss5hnYKnJY7k31 7 | 3Gjtxqvauu+4vMtfQxU6BHMV5mQwZHx2bwOTPdHr5DN9VrYY04g4xr7CSml8XUs5 8 | 9QIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /charts/futtertrog/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: futtertrog 3 | description: A Helm chart for Kubernetes 4 | type: application 5 | version: 1.7.0 6 | appVersion: 21.10.1 7 | home: https://github.com/robjuz/helm-charts/tree/master/charts/futtertrog 8 | sources: 9 | - https://github.com/robjuz/futtertrog/tree/21.10.1 10 | 11 | dependencies: 12 | - name: common 13 | version: 0.x.x 14 | repository: https://charts.bitnami.com/bitnami 15 | - name: mariadb 16 | repository: https://charts.bitnami.com/bitnami 17 | version: 9.x.x 18 | condition: mariadb.enabled 19 | -------------------------------------------------------------------------------- /archived/kirby3/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.hpa.enabled .Values.resources.requests -}} 2 | apiVersion: autoscaling/v1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ template "fullname" . }} 6 | labels: 7 | {{ include "sharedlabels" . | indent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | kind: Deployment 11 | name: {{ template "appname" . }} 12 | apiVersion: apps/v1 13 | minReplicas: {{ .Values.hpa.minReplicas }} 14 | maxReplicas: {{ .Values.hpa.maxReplicas }} 15 | targetCPUUtilizationPercentage: {{ .Values.hpa.targetCPUUtilizationPercentage }} 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /archived/shopware/generate_jwt.php: -------------------------------------------------------------------------------- 1 | 'aes256', 10 | 'private_key_type' => OPENSSL_KEYTYPE_RSA, 11 | 'encrypt_key' => 'shopware', 12 | 'encrypt_key_cipher' => OPENSSL_CIPHER_AES_256_CBC 13 | ]); 14 | 15 | openssl_pkey_export_to_file($key, __DIR__ . '/jwt_private.pem', 'shopware'); 16 | 17 | $keyData = openssl_pkey_get_details($key); 18 | file_put_contents(__DIR__ . '/jwt_public.pem', $keyData['key']); -------------------------------------------------------------------------------- /charts/kimai2/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kimai2 3 | description: A Helm chart for Kubernetes 4 | type: application 5 | version: 4.3.11 6 | appVersion: "apache-2.40.0" 7 | 8 | dependencies: 9 | - condition: mariadb.enabled 10 | name: mariadb 11 | repository: oci://registry-1.docker.io/bitnamicharts 12 | version: 11.5.7 13 | - condition: redis.enabled 14 | name: redis 15 | repository: oci://registry-1.docker.io/bitnamicharts 16 | version: 19.5.0 17 | - name: common 18 | repository: oci://registry-1.docker.io/bitnamicharts 19 | tags: 20 | - bitnami-common 21 | version: 2.x.x 22 | -------------------------------------------------------------------------------- /archived/shopware/Chart.lock: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - name: mariadb 3 | repository: https://charts.bitnami.com/bitnami 4 | version: 9.8.1 5 | - name: redis 6 | repository: https://charts.bitnami.com/bitnami 7 | version: 15.6.4 8 | - name: elasticsearch 9 | repository: https://charts.bitnami.com/bitnami 10 | version: 17.5.0 11 | - name: minio 12 | repository: https://charts.bitnami.com/bitnami 13 | version: 9.2.5 14 | - name: common 15 | repository: https://charts.bitnami.com/bitnami 16 | version: 1.10.3 17 | digest: sha256:7e0de68e41b3e64d716ec0c4c2c14c72f49a73ee79731a41ab2a8db79bc561b9 18 | generated: "2021-12-13T21:42:18.827447663+01:00" 19 | -------------------------------------------------------------------------------- /archived/kirby3/templates/pdb.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.podDisruptionBudget.enabled }} 2 | apiVersion: policy/v1beta1 3 | kind: PodDisruptionBudget 4 | metadata: 5 | name: {{ template "fullname" . }} 6 | labels: 7 | {{ include "sharedlabels" . | indent 4 }} 8 | spec: 9 | {{- if .Values.podDisruptionBudget.minAvailable }} 10 | minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} 11 | {{- end }} 12 | {{- if .Values.podDisruptionBudget.maxUnavailable }} 13 | maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} 14 | {{- end }} 15 | selector: 16 | matchLabels: 17 | app: {{ template "appname" . }} 18 | release: {{ .Release.Name }} 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /archived/shopware/templates/config-custom.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ printf "%s-custom" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | data: 14 | custom.yml: |- -------------------------------------------------------------------------------- /archived/shopware/templates/secrets-jwt.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | type: Opaque 14 | data: 15 | public.pem: "{{ b64enc (.Files.Get "jwt_public.pem" ) }}" 16 | private.pem: "{{ b64enc (.Files.Get "jwt_private.pem") }}" -------------------------------------------------------------------------------- /charts/nominatim/templates/ui-configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nominatimUi.enabled }} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ printf "%s-ui" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ include "common.names.namespace" . | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | data: 15 | config.theme.js: |- 16 | {{ .Values.nominatimUi.configuration | nindent 4 }} 17 | {{- end -}} 18 | -------------------------------------------------------------------------------- /archived/shopware/templates/externaldb-secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- if not (or .Values.mariadb.enabled .Values.externalDatabase.existingSecret) }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ printf "%s-externaldb" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | type: Opaque 15 | data: 16 | mariadb-password: {{ .Values.externalDatabase.password | b64enc | quote }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /archived/unpubd/templates/externaldb-secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- if not (or .Values.mongodb.enabled .Values.externalDatabase.existingSecret) }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ printf "%s-externaldb" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | type: Opaque 15 | data: 16 | mongodb-root-password: {{ .Values.externalDatabase.password | b64enc | quote }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /charts/nominatim/templates/nginx-configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.nominatimUi.enabled }} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ printf "%s-nginx" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ include "common.names.namespace" . | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | data: 15 | 000-default.conf: |- 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.nominatimUi.nginxConfiguration "context" $ ) | nindent 4 }} 17 | {{- end -}} -------------------------------------------------------------------------------- /charts/nominatim/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "nominatim.serviceAccountName" . }} 6 | namespace: {{ include "common.names.namespace" . | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | {{- if .Values.commonAnnotations }} 13 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.serviceAccount.annotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.serviceAccount.annotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended", 5 | "customManagers:helmChartYamlAppVersions" 6 | ], 7 | "ignorePaths": [ 8 | "**/node_modules/**", 9 | "**/bower_components/**", 10 | "archived/**" 11 | ], 12 | "packageRules": [ 13 | { 14 | "matchFileNames": ["charts/**"], 15 | "commitMessageTopic": "{{parentDir}} - {{depName}}", 16 | "bumpVersions": [ 17 | { 18 | "filePatterns": ["{{packageFileDir}}/Chart.{yaml,yml}"], 19 | "matchStrings": ["version:\\s(?[^\\s]+)"], 20 | "bumpType": "{{#if isPatch}}patch{{else}}minor{{/if}}" 21 | } 22 | ] 23 | }, 24 | { 25 | "matchPackageNames": "docker.io/kimai/kimai2", 26 | "versioning": "regex:apache-(?\\d+)(\\.(?\\d+))?(\\.(?\\d+))?$" 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # robjuz Helm charts library 2 | 3 | [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/robjuz)](https://artifacthub.io/packages/search?repo=robjuz) 4 | 5 | This repo is a collection of [Helm](https://helm.sh/) charts for software that I wanted to use and didn't found an existing chart. 6 | 7 | ## TL;DR 8 | 9 | ```bash 10 | $ helm repo add robjuz https://robjuz.github.io/helm-charts/ 11 | $ helm search repo robjuz 12 | $ helm install my-release robjuz/ 13 | ``` 14 | 15 | OCI artifacts of all robjuz Helm charts are available in ghcr.io and can be pulled via: 16 | 17 | ```bash 18 | helm install [RELEASE_NAME] oci://ghcr.io/robjuz/charts/ 19 | ``` 20 | 21 | ## Available charts 22 | 23 | * [Futtertrog](charts/futtertrog/README.md) 24 | * [Kimai 2](charts/kimai2/README.md) 25 | * [Nominatim](charts/nominatim/README.md) 26 | * [Shopware 6](charts/shopware/README.md) 27 | -------------------------------------------------------------------------------- /archived/kirby3/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.service.enabled -}} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ template "fullname" . }} 6 | annotations: 7 | {{- if .Values.service.annotations }} 8 | {{ toYaml .Values.service.annotations | indent 4 }} 9 | {{- end }} 10 | {{- if .Values.prometheus.metrics }} 11 | prometheus.io/scrape: "true" 12 | prometheus.io/port: "{{ .Values.service.internalPort }}" 13 | {{- end }} 14 | labels: 15 | track: "{{ .Values.application.track }}" 16 | {{ include "sharedlabels" . | indent 4 }} 17 | spec: 18 | type: {{ .Values.service.type }} 19 | ports: 20 | - port: {{ .Values.service.externalPort }} 21 | targetPort: {{ .Values.service.internalPort }} 22 | protocol: TCP 23 | name: {{ .Values.service.name }} 24 | selector: 25 | app: {{ template "appname" . }} 26 | tier: "{{ .Values.application.tier }}" 27 | track: "{{ .Values.application.track }}" 28 | {{- end -}} 29 | -------------------------------------------------------------------------------- /charts/nominatim/templates/importfilter-configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.initJob.enabled }} 2 | {{- if .Values.initJob.importFilterLua.enabled }} 3 | apiVersion: v1 4 | kind: ConfigMap 5 | metadata: 6 | name: {{ printf "%s-importfilterlua" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 7 | namespace: {{ include "common.names.namespace" . | quote }} 8 | labels: {{- include "common.labels.standard" . | nindent 4 }} 9 | {{- if .Values.commonLabels }} 10 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 11 | {{- end }} 12 | {{- if .Values.commonAnnotations }} 13 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 14 | {{- end }} 15 | data: 16 | importFilter.lua: |- 17 | {{- include "common.tplvalues.render" ( dict "value" .Values.initJob.importFilterLua.configuration "context" $ ) | nindent 4 }} 18 | {{- end -}} 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /charts/kimai2/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "kimai.serviceAccountName" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | {{- if .Values.serviceAccount.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.serviceAccount.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }} 17 | {{- end }} 18 | automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }} 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /archived/shopware/templates/pdb.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.pdb.create }} 2 | apiVersion: policy/v1beta1 3 | kind: PodDisruptionBudget 4 | metadata: 5 | name: {{ template "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | {{- if .Values.pdb.minAvailable }} 16 | minAvailable: {{ .Values.pdb.minAvailable }} 17 | {{- end }} 18 | {{- if .Values.pdb.maxUnavailable }} 19 | maxUnavailable: {{ .Values.pdb.maxUnavailable }} 20 | {{- end }} 21 | selector: 22 | matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/dbMigrate.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: {{ include "futtertrog.fullname" . }}-db-migrate 5 | namespace: {{ .Release.Namespace }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | app.kubernetes.io/component: primary 8 | annotations: 9 | "helm.sh/hook": post-install,post-upgrade 10 | "helm.sh/hook-weight": "10" 11 | spec: 12 | template: 13 | spec: 14 | containers: 15 | - name: {{ .Chart.Name }} 16 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 17 | imagePullPolicy: {{ .Values.image.pullPolicy }} 18 | envFrom: 19 | - configMapRef: 20 | name: {{ template "futtertrog.fullname" . }}-config 21 | - secretRef: 22 | name: {{ template "futtertrog.fullname" . }}-secret 23 | command: 24 | - php 25 | - artisan 26 | - migrate 27 | - --force 28 | restartPolicy: OnFailure -------------------------------------------------------------------------------- /charts/kimai2/templates/pdb.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.pdb.create }} 2 | apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} 3 | kind: PodDisruptionBudget 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | {{- if .Values.pdb.minAvailable }} 16 | minAvailable: {{ .Values.pdb.minAvailable }} 17 | {{- end }} 18 | {{- if .Values.pdb.maxUnavailable }} 19 | maxUnavailable: {{ .Values.pdb.maxUnavailable }} 20 | {{- end }} 21 | selector: 22 | matchLabels: {{ include "common.labels.matchLabels" . | nindent 6 }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /archived/unpubd/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: {{ include "unpubd.name" . }} 6 | labels: 7 | {{- include "unpubd.labels" . | nindent 4 }} 8 | annotations: 9 | {{- if .Values.ingress.certManager }} 10 | kubernetes.io/tls-acme: "true" 11 | {{- end }} 12 | {{- if .Values.ingress.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | spec: 16 | tls: 17 | {{- if .Values.ingress.tls }} 18 | - hosts: 19 | - {{ .Values.ingress.hostname | quote }} 20 | secretName: {{ printf "%s-tls" .Values.ingress.hostname }} 21 | {{- end }} 22 | rules: 23 | - host: {{ .Values.ingress.hostname | quote }} 24 | http: 25 | paths: 26 | - path: / 27 | pathType: Prefix 28 | backend: 29 | service: 30 | name: {{ include "unpubd.fullname" . }} 31 | port: 32 | name: http 33 | {{- end }} 34 | -------------------------------------------------------------------------------- /charts/kimai2/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.existingSecret }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | type: Opaque 15 | data: 16 | app-secret: {{ include "common.secrets.passwords.manage" (dict "secret" (include "common.names.fullname" .) "key" "app-secret" "providedValues" (list "kimaiAppSecret") "context" $) }} 17 | admin-password: {{ include "common.secrets.passwords.manage" (dict "secret" (include "common.names.fullname" .) "key" "admin-password" "providedValues" (list "kimaiAdminPassword") "context" $) }} 18 | mailer-url: {{ .Values.kimaiMailerUrl | b64enc | quote }} 19 | database-url: {{ include "kimai.databaseUrl" . | b64enc | quote }} 20 | {{- end -}} 21 | -------------------------------------------------------------------------------- /archived/shopware/templates/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ template "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | type: Opaque 14 | data: 15 | INSTANCE_ID: {{ default (include "shopware.randomSecret" .) .Values.shopwareInstanceId | b64enc | quote }} 16 | APP_SECRET: {{ default (include "shopware.randomSecret" .) .Values.shopwareAppSecret | b64enc | quote }} 17 | DATABASE_URL: {{ include "shopware.databaseUrl" . | b64enc | quote }} 18 | MAILER_URL: {{ .Values.mailerUrl | b64enc | quote }} 19 | 20 | {{- if .Values.shopwarePassword }} 21 | INSTALL_ADMIN_PASSWORD: {{ .Values.shopwarePassword | b64enc | quote }} 22 | {{- else }} 23 | INSTALL_ADMIN_PASSWORD: {{ randAlphaNum 10 | b64enc | quote }} 24 | {{- end }} -------------------------------------------------------------------------------- /archived/shopware/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if not (or .Values.persistence.existingClaim .Values.minio.enabled )}} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | accessModes: 16 | {{- range .Values.persistence.accessModes }} 17 | - {{ . | quote }} 18 | {{- end }} 19 | resources: 20 | requests: 21 | storage: {{ .Values.persistence.size | quote }} 22 | {{- include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 2 }} 23 | {{- if .Values.persistence.dataSource }} 24 | dataSource: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.dataSource "context" $) | nindent 4 }} 25 | {{- end }} 26 | {{- end }} 27 | -------------------------------------------------------------------------------- /archived/shopware/templates/consumer-hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.consumer.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ printf "%s-consumer" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | scaleTargetRef: 16 | apiVersion: apps/v1 17 | kind: Deployment 18 | name: {{ template "common.names.fullname" . }} 19 | minReplicas: {{ .Values.consumer.autoscaling.minReplicas }} 20 | maxReplicas: {{ .Values.consumer.autoscaling.maxReplicas }} 21 | metrics: 22 | {{- if .Values.consumer.autoscaling.targetCPU }} 23 | - type: Resource 24 | resource: 25 | name: cpu 26 | targetAverageUtilization: {{ .Values.consumer.autoscaling.targetCPU }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /archived/shopware/Chart.yaml: -------------------------------------------------------------------------------- 1 | annotations: 2 | category: CMS 3 | apiVersion: v2 4 | appVersion: 6.4.7 5 | dependencies: 6 | - name: mariadb 7 | condition: mariadb.enabled 8 | repository: https://charts.bitnami.com/bitnami 9 | version: 9.x.x 10 | - name: redis 11 | version: 15.x.x 12 | repository: https://charts.bitnami.com/bitnami 13 | condition: redis.enabled 14 | - name: elasticsearch 15 | version: 17.x.x 16 | repository: https://charts.bitnami.com/bitnami 17 | condition: elasticsearch.enabled 18 | - name: minio 19 | version: 9.x.x 20 | repository: https://charts.bitnami.com/bitnami 21 | condition: minio.enabled 22 | - name: common 23 | repository: https://charts.bitnami.com/bitnami 24 | tags: 25 | - bitnami-common 26 | version: 1.x.x 27 | description: Web publishing platform for building blogs and websites. 28 | engine: gotpl 29 | home: https://github.com/robjuz/helm-charts/tree/master/charts/shopware 30 | keywords: 31 | - application 32 | - cms 33 | - http 34 | - php 35 | - web 36 | - shopware 37 | maintainers: 38 | - email: robjuz@gmail.com 39 | name: robjuz 40 | name: shopware 41 | sources: 42 | - https://github.com/shyim/shopware 43 | - https://www.shopware.com 44 | version: 2.0.1 45 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/createAdminAccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.adminName .Values.adminEmail .Values.adminPassword }} 2 | apiVersion: batch/v1 3 | kind: Job 4 | metadata: 5 | name: {{ include "futtertrog.fullname" . }}-crate-admin 6 | namespace: {{ .Release.Namespace }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | app.kubernetes.io/component: primary 9 | annotations: 10 | "helm.sh/hook": post-install 11 | "helm.sh/hook-weight": "20" 12 | spec: 13 | template: 14 | spec: 15 | containers: 16 | - name: {{ .Chart.Name }} 17 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 18 | imagePullPolicy: {{ .Values.image.pullPolicy }} 19 | envFrom: 20 | - configMapRef: 21 | name: {{ template "futtertrog.fullname" . }}-config 22 | - secretRef: 23 | name: {{ template "futtertrog.fullname" . }}-secret 24 | command: 25 | - php 26 | - artisan 27 | - futtertrog:create-admin 28 | - -n 29 | - {{ .Values.adminName }} 30 | - {{ .Values.adminEmail }} 31 | - {{ .Values.adminPassword }} 32 | restartPolicy: OnFailure 33 | {{- end }} -------------------------------------------------------------------------------- /archived/shopware/templates/metrics-svc.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.metrics.enabled }} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ printf "%s-metrics" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | app.kubernetes.io/component: metrics 9 | {{- if .Values.commonLabels }} 10 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 11 | {{- end }} 12 | {{- if or .Values.metrics.service.annotations .Values.commonAnnotations }} 13 | annotations: 14 | {{- if .Values.metrics.service.annotations }} 15 | {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.service.annotations "context" $ ) | nindent 4 }} 16 | {{- end }} 17 | {{- if .Values.commonAnnotations }} 18 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 19 | {{- end }} 20 | {{- end }} 21 | spec: 22 | type: ClusterIP 23 | ports: 24 | - name: metrics 25 | port: {{ .Values.metrics.service.port }} 26 | protocol: TCP 27 | targetPort: metrics 28 | selector: {{- include "common.labels.matchLabels" . | nindent 4 }} 29 | {{- end }} 30 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ include "futtertrog.name" . }}-secret 5 | namespace: {{ .Release.Namespace }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | app.kubernetes.io/component: primary 8 | type: Opaque 9 | data: 10 | {{- if .Values.appKey }} 11 | APP_KEY: {{ .Values.appKey | b64enc | quote }} 12 | {{- else }} 13 | APP_KEY: {{ randAlphaNum 16 | b64enc | quote }} 14 | {{- end }} 15 | 16 | DATABASE_URL: {{ include "futtertrog.databaseUrl" . | b64enc | quote }} 17 | 18 | {{- if .Values.mealProviders.holzke.password }} 19 | HOLZKE_PASSWORD: {{ .Values.mealProviders.holzke.password | b64enc | quote }} 20 | {{- end }} 21 | 22 | {{- if .Values.services.nexmo.secret }} 23 | NEXMO_SECRET: {{ .Values.services.nexmo.secret | b64enc | quote }} 24 | {{- end }} 25 | 26 | {{- if .Values.services.gitlab.clientSecret }} 27 | GITLAB_CLIENT_SECRET: {{ .Values.services.gitlab.clientSecret | b64enc | quote }} 28 | {{- end }} 29 | 30 | {{- if .Values.mail.password }} 31 | MAIL_PASSWORD: {{ .Values.mail.password | b64enc | quote }} 32 | {{- end }} 33 | 34 | {{- if .Values.services.vapid.private_key }} 35 | VAPID_PRIVATE_KEY: {{ .Values.services.vapid.private_key | b64enc | quote }} 36 | {{- end }} -------------------------------------------------------------------------------- /charts/nominatim/templates/pdb.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.pdb.create }} 2 | apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} 3 | kind: PodDisruptionBudget 4 | metadata: 5 | name: {{ include "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 | {{- if .Values.pdb.minAvailable }} 13 | minAvailable: {{ .Values.pdb.minAvailable }} 14 | {{- end }} 15 | {{- if .Values.pdb.maxUnavailable }} 16 | maxUnavailable: {{ .Values.pdb.maxUnavailable }} 17 | {{- end }} 18 | {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }} 19 | selector: 20 | {{- if .Values.pdb.pdbMatchExpressions }} 21 | matchExpressions: 22 | {{- with (.Values.pdb.pdbMatchExpressions) }} 23 | {{- toYaml . | nindent 6 }} 24 | {{- end }} 25 | {{- end }} 26 | matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} 27 | {{- end }} 28 | -------------------------------------------------------------------------------- /charts/kimai2/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.configuration }} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ printf "%s-config" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | data: 15 | local.yaml: |- 16 | {{ .Values.configuration | nindent 4 }} 17 | {{- if .Values.kimaiRedisCache }} 18 | framework: 19 | cache: 20 | app: cache.adapter.redis 21 | system: cache.adapter.redis 22 | default_redis_provider: {{ include "kimai.redisUrl" . }} 23 | pools: 24 | app.cache.redis: 25 | adapter: cache.adapter.redis 26 | public: false 27 | default_lifetime: 120 28 | doctrine.result_cache_pool: 29 | adapter: app.cache.redis 30 | doctrine.system_cache_pool: 31 | adapter: app.cache.redis 32 | {{- end -}} 33 | {{- end -}} 34 | -------------------------------------------------------------------------------- /archived/shopware/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ template "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | scaleTargetRef: 16 | apiVersion: apps/v1 17 | kind: Deployment 18 | name: {{ template "common.names.fullname" . }} 19 | minReplicas: {{ .Values.autoscaling.minReplicas }} 20 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 21 | metrics: 22 | {{- if .Values.autoscaling.targetCPU }} 23 | - type: Resource 24 | resource: 25 | name: cpu 26 | targetAverageUtilization: {{ .Values.autoscaling.targetCPU }} 27 | {{- end }} 28 | {{- if .Values.autoscaling.targetMemory }} 29 | - type: Resource 30 | resource: 31 | name: memory 32 | targetAverageUtilization: {{ .Values.autoscaling.targetMemory }} 33 | {{- end }} 34 | {{- end }} 35 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/cron.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1beta1 2 | kind: CronJob 3 | metadata: 4 | name: {{ include "common.names.fullname" . }}-cron 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | app.kubernetes.io/component: primary 8 | spec: 9 | schedule: "* * * * *" 10 | concurrencyPolicy: Replace 11 | startingDeadlineSeconds: 30 12 | successfulJobsHistoryLimit: 1 13 | failedJobsHistoryLimit: 1 14 | jobTemplate: 15 | spec: 16 | activeDeadlineSeconds: 120 17 | backoffLimit: 1 18 | template: 19 | spec: 20 | containers: 21 | - name: {{ .Chart.Name }} 22 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 23 | imagePullPolicy: {{ .Values.image.pullPolicy }} 24 | args: 25 | - php 26 | - artisan 27 | - schedule:run 28 | envFrom: 29 | - configMapRef: 30 | name: {{ template "futtertrog.fullname" . }}-config 31 | - secretRef: 32 | name: {{ template "futtertrog.fullname" . }}-secret 33 | {{- if .Values.cron.resources }} 34 | resources: {{- toYaml .Values.cron.resources | nindent 16 }} 35 | {{- end }} 36 | restartPolicy: Never 37 | -------------------------------------------------------------------------------- /charts/kimai2/templates/networkpolicy-backend-ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled .Values.networkPolicy.ingressRules.backendOnlyAccessibleByFrontend }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-backend" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | {{- if .Values.networkPolicy.ingressRules.customBackendSelector }} 18 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.customBackendSelector "context" $) | nindent 6 }} 19 | {{- else }} 20 | app.kubernetes.io/name: mariadb 21 | app.kubernetes.io/instance: {{ .Release.Name }} 22 | {{- end }} 23 | ingress: 24 | - from: 25 | - podSelector: 26 | matchLabels: 27 | {{- include "common.labels.matchLabels" . | nindent 14 }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /charts/nominatim/templates/networkpolicy-backend-ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled .Values.networkPolicy.ingressRules.backendOnlyAccessibleByFrontend }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-backend" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | {{- if .Values.networkPolicy.ingressRules.customBackendSelector }} 18 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.customBackendSelector "context" $) | nindent 6 }} 19 | {{- else }} 20 | app.kubernetes.io/name: mariadb 21 | app.kubernetes.io/instance: {{ .Release.Name }} 22 | {{- end }} 23 | ingress: 24 | - from: 25 | - podSelector: 26 | matchLabels: 27 | {{- include "common.labels.matchLabels" . | nindent 14 }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /charts/kimai2/templates/networkpolicy-egress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.egressRules.denyConnectionsToExternal .Values.networkPolicy.egressRules.customRules) }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-egress" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | app.kubernetes.io/instance: {{ .Release.Name }} 18 | policyTypes: 19 | - Egress 20 | egress: 21 | {{- if .Values.networkPolicy.egressRules.denyConnectionsToExternal }} 22 | - ports: 23 | - port: 53 24 | protocol: UDP 25 | - port: 53 26 | protocol: TCP 27 | - to: 28 | - namespaceSelector: {} 29 | {{- end }} 30 | {{- if .Values.networkPolicy.egressRules.customRules }} 31 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.egressRules.customRules "context" $) | nindent 4 }} 32 | {{- end }} 33 | {{- end }} 34 | -------------------------------------------------------------------------------- /charts/nominatim/templates/networkpolicy-egress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.egressRules.denyConnectionsToExternal .Values.networkPolicy.egressRules.customRules) }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-egress" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | app.kubernetes.io/instance: {{ .Release.Name }} 18 | policyTypes: 19 | - Egress 20 | egress: 21 | {{- if .Values.networkPolicy.egressRules.denyConnectionsToExternal }} 22 | - ports: 23 | - port: 53 24 | protocol: UDP 25 | - port: 53 26 | protocol: TCP 27 | - to: 28 | - namespaceSelector: {} 29 | {{- end }} 30 | {{- if .Values.networkPolicy.egressRules.customRules }} 31 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.egressRules.customRules "context" $) | nindent 4 }} 32 | {{- end }} 33 | {{- end }} 34 | -------------------------------------------------------------------------------- /charts/nominatim/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: nominatim 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: 5.6.0 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: "5.1.0" 25 | 26 | dependencies: 27 | - name: common 28 | version: 2.21.0 29 | repository: https://charts.bitnami.com/bitnami 30 | - name: postgresql 31 | version: 15.5.38 32 | repository: https://charts.bitnami.com/bitnami 33 | condition: postgresql.enabled 34 | 35 | annotations: 36 | repository: robjuz/helm-charts 37 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: {{ include "futtertrog.name" . }} 6 | labels: 7 | {{- include "futtertrog.labels" . | nindent 4 }} 8 | annotations: 9 | {{- if .Values.ingress.certManager }} 10 | kubernetes.io/tls-acme: "true" 11 | {{- end }} 12 | {{- if .Values.ingress.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | spec: 16 | tls: 17 | {{- if .Values.ingress.tls }} 18 | - hosts: 19 | - {{ .Values.ingress.hostname | quote }} 20 | {{- if .Values.ingress.additionalHosts }} 21 | {{- range $host := .Values.ingress.additionalHosts }} 22 | - {{ template "hostname" $host }} 23 | {{- end -}} 24 | {{- end }} 25 | secretName: {{ printf "%s-tls" .Values.ingress.hostname }} 26 | {{- end }} 27 | rules: 28 | - host: {{ template "hostname" .Values.ingress.hostname }} 29 | http: 30 | &httpRule 31 | paths: 32 | - path: / 33 | pathType: Prefix 34 | backend: 35 | service: 36 | name: {{ include "futtertrog.fullname" . }} 37 | port: 38 | name: http 39 | {{- if .Values.ingress.additionalHosts }} 40 | {{- range $host := .Values.ingress.additionalHosts }} 41 | - host: {{ template "hostname" $host }} 42 | http: 43 | <<: *httpRule 44 | {{- end -}} 45 | {{- end -}} 46 | {{- end }} -------------------------------------------------------------------------------- /charts/nominatim/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.flatnode.enabled (not .Values.flatnode.existingClaim) }} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if or .Values.flatnode.annotations .Values.commonAnnotations }} 12 | annotations: 13 | {{- if .Values.flatnode.annotations }} 14 | {{- include "common.tplvalues.render" ( dict "value" .Values.flatnode.annotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | {{- if .Values.commonAnnotations }} 17 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 18 | {{- end }} 19 | {{- end }} 20 | spec: 21 | accessModes: 22 | {{- range .Values.flatnode.accessModes }} 23 | - {{ . | quote }} 24 | {{- end }} 25 | resources: 26 | requests: 27 | storage: {{ .Values.flatnode.size | quote }} 28 | {{- include "common.storage.class" (dict "persistence" .Values.flatnode "global" .Values.global) | nindent 2 }} 29 | {{- if .Values.flatnode.dataSource }} 30 | dataSource: {{- include "common.tplvalues.render" (dict "value" .Values.flatnode.dataSource "context" $) | nindent 4 }} 31 | {{- end }} 32 | {{- if .Values.flatnode.selector }} 33 | selector: {{- include "common.tplvalues.render" (dict "value" .Values.flatnode.selector "context" $) | nindent 4 }} 34 | {{- end -}} 35 | {{- end }} -------------------------------------------------------------------------------- /charts/kimai2/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if or .Values.persistence.annotations .Values.commonAnnotations }} 12 | annotations: 13 | {{- if .Values.persistence.annotations }} 14 | {{- include "common.tplvalues.render" ( dict "value" .Values.persistence.annotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | {{- if .Values.commonAnnotations }} 17 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 18 | {{- end }} 19 | {{- end }} 20 | spec: 21 | accessModes: 22 | {{- range .Values.persistence.accessModes }} 23 | - {{ . | quote }} 24 | {{- end }} 25 | resources: 26 | requests: 27 | storage: {{ .Values.persistence.size | quote }} 28 | {{- include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 2 }} 29 | {{- if .Values.persistence.dataSource }} 30 | dataSource: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.dataSource "context" $) | nindent 4 }} 31 | {{- end }} 32 | {{- if .Values.persistence.selector }} 33 | selector: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.selector "context" $) | nindent 4 }} 34 | {{- end -}} 35 | {{- end }} -------------------------------------------------------------------------------- /archived/unpubd/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }} 4 | {{- else if contains "NodePort" .Values.service.type }} 5 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "unpubd.fullname" . }}) 6 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 7 | echo http://$NODE_IP:$NODE_PORT 8 | {{- else if contains "LoadBalancer" .Values.service.type }} 9 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 10 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "unpubd.fullname" . }}' 11 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "unpubd.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 12 | echo http://$SERVICE_IP:{{ .Values.service.port }} 13 | {{- else if contains "ClusterIP" .Values.service.type }} 14 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "unpubd.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 15 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 16 | echo "Visit http://127.0.0.1:8080 to use your application" 17 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }} 4 | {{- else if contains "NodePort" .Values.service.type }} 5 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "futtertrog.fullname" . }}) 6 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 7 | echo http://$NODE_IP:$NODE_PORT 8 | {{- else if contains "LoadBalancer" .Values.service.type }} 9 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 10 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "futtertrog.fullname" . }}' 11 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "futtertrog.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 12 | echo http://$SERVICE_IP:{{ .Values.service.port }} 13 | {{- else if contains "ClusterIP" .Values.service.type }} 14 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "futtertrog.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 15 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 16 | echo "Visit http://127.0.0.1:8080 to use your application" 17 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /charts/nominatim/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }} 4 | {{- else if contains "NodePort" .Values.service.type }} 5 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }}) 6 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 7 | echo http://$NODE_IP:$NODE_PORT 8 | {{- else if contains "LoadBalancer" .Values.service.type }} 9 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 10 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "common.names.fullname" . }}' 11 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 12 | echo http://$SERVICE_IP:{{ .Values.service.port }} 13 | {{- else if contains "ClusterIP" .Values.service.type }} 14 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 15 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 16 | echo "Visit http://127.0.0.1:8080 to use your application" 17 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /archived/shopware/templates/tls-secrets.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled }} 2 | {{- if .Values.ingress.secrets }} 3 | {{- range .Values.ingress.secrets }} 4 | apiVersion: v1 5 | kind: Secret 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $.Release.Namespace | quote }} 9 | labels: {{- include "common.labels.standard" $ | nindent 4 }} 10 | {{- if $.Values.commonLabels }} 11 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | {{- if $.Values.commonAnnotations }} 14 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | type: kubernetes.io/tls 17 | data: 18 | tls.crt: {{ .certificate | b64enc }} 19 | tls.key: {{ .key | b64enc }} 20 | --- 21 | {{- end }} 22 | {{- end }} 23 | {{- if and .Values.ingress.tls (not .Values.ingress.certManager) }} 24 | {{- $ca := genCA "shopware-ca" 365 }} 25 | {{- $cert := genSignedCert .Values.ingress.hostname nil (list .Values.ingress.hostname) 365 $ca }} 26 | apiVersion: v1 27 | kind: Secret 28 | metadata: 29 | name: {{ printf "%s-tls" .Values.ingress.hostname }} 30 | namespace: {{ .Release.Namespace | quote }} 31 | labels: {{- include "common.labels.standard" . | nindent 4 }} 32 | {{- if .Values.commonLabels }} 33 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 34 | {{- end }} 35 | {{- if .Values.commonAnnotations }} 36 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 37 | {{- end }} 38 | type: kubernetes.io/tls 39 | data: 40 | tls.crt: {{ $cert.Cert | b64enc | quote }} 41 | tls.key: {{ $cert.Key | b64enc | quote }} 42 | ca.crt: {{ $ca.Cert | b64enc | quote }} 43 | {{- end }} 44 | {{- end }} 45 | -------------------------------------------------------------------------------- /charts/nominatim/templates/pvc-data.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.initJob.persistence.enabled (not .Values.initJob.persistence.existingClaim) }} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ printf "%s-data" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if or .Values.initJob.persistence.annotations .Values.commonAnnotations }} 12 | annotations: 13 | {{- if .Values.initJob.persistence.annotations }} 14 | {{- include "common.tplvalues.render" ( dict "value" .Values.initJob.persistence.annotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | {{- if .Values.commonAnnotations }} 17 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 18 | {{- end }} 19 | {{- end }} 20 | spec: 21 | accessModes: 22 | {{- range .Values.initJob.persistence.accessModes }} 23 | - {{ . | quote }} 24 | {{- end }} 25 | resources: 26 | requests: 27 | storage: {{ .Values.initJob.persistence.size | quote }} 28 | {{- include "common.storage.class" (dict "persistence" .Values.initJob.persistence "global" .Values.global) | nindent 2 }} 29 | {{- if .Values.initJob.persistence.dataSource }} 30 | dataSource: {{- include "common.tplvalues.render" (dict "value" .Values.initJob.persistence.dataSource "context" $) | nindent 4 }} 31 | {{- end }} 32 | {{- if .Values.initJob.persistence.selector }} 33 | selector: {{- include "common.tplvalues.render" (dict "value" .Values.initJob.persistence.selector "context" $) | nindent 4 }} 34 | {{- end -}} 35 | {{- end }} -------------------------------------------------------------------------------- /charts/nominatim/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }} 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "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: {{ include "common.capabilities.deployment.apiVersion" . }} 14 | kind: Deployment 15 | name: {{ include "common.names.fullname" . }} 16 | minReplicas: {{ .Values.autoscaling.minReplicas }} 17 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 18 | metrics: 19 | {{- if .Values.autoscaling.targetMemory }} 20 | - type: Resource 21 | resource: 22 | name: memory 23 | {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }} 24 | targetAverageUtilization: {{ .Values.autoscaling.targetMemory }} 25 | {{- else }} 26 | target: 27 | type: Utilization 28 | averageUtilization: {{ .Values.autoscaling.targetMemory }} 29 | {{- end }} 30 | {{- end }} 31 | {{- if .Values.autoscaling.targetCPU }} 32 | - type: Resource 33 | resource: 34 | name: cpu 35 | {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }} 36 | targetAverageUtilization: {{ .Values.autoscaling.targetCPU }} 37 | {{- else }} 38 | target: 39 | type: Utilization 40 | averageUtilization: {{ .Values.autoscaling.targetCPU }} 41 | {{- end }} 42 | {{- end }} 43 | {{- end }} -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Release Charts 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - 'charts/**' 9 | 10 | jobs: 11 | release: 12 | permissions: 13 | contents: write # to push chart release and create a release (helm/chart-releaser-action) 14 | packages: write # needed for ghcr access 15 | id-token: write # needed for keyless signing 16 | 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v6 21 | with: 22 | fetch-depth: 0 23 | 24 | - name: Configure Git 25 | run: | 26 | git config user.name "$GITHUB_ACTOR" 27 | git config user.email "$GITHUB_ACTOR@users.noreply.github.com" 28 | 29 | - name: Install Helm 30 | uses: azure/setup-helm@v4 31 | with: 32 | version: v3.8.1 33 | 34 | - name: Helm Deps 35 | run: | 36 | helm repo add bitnami https://charts.bitnami.com/bitnami 37 | 38 | - name: Run chart-releaser 39 | uses: helm/chart-releaser-action@v1.7.0 40 | with: 41 | skip_existing: true 42 | env: 43 | CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 44 | 45 | # see https://github.com/helm/chart-releaser/issues/183 46 | - name: Login to GitHub Container Registry 47 | uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 48 | with: 49 | registry: ghcr.io 50 | username: ${{ github.actor }} 51 | password: ${{ secrets.GITHUB_TOKEN }} 52 | 53 | - name: Push charts to GHCR 54 | run: | 55 | shopt -s nullglob 56 | for pkg in .cr-release-packages/*; do 57 | if [ -z "${pkg:-}" ]; then 58 | break 59 | fi 60 | helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/charts" 61 | done 62 | -------------------------------------------------------------------------------- /archived/shopware/templates/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} 2 | apiVersion: monitoring.coreos.com/v1 3 | kind: ServiceMonitor 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | {{- if .Values.metrics.serviceMonitor.namespace }} 7 | namespace: {{ .Values.metrics.serviceMonitor.namespace | quote }} 8 | {{- else }} 9 | namespace: {{ .Release.Namespace | quote }} 10 | {{- end }} 11 | labels: {{- include "common.labels.standard" . | nindent 4 }} 12 | app.kubernetes.io/component: metrics 13 | {{- if .Values.metrics.serviceMonitor.additionalLabels }} 14 | {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.additionalLabels "context" $) | nindent 4 }} 15 | {{- end }} 16 | {{- if .Values.commonLabels }} 17 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 18 | {{- end }} 19 | {{- if .Values.commonAnnotations }} 20 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 21 | {{- end }} 22 | spec: 23 | endpoints: 24 | - port: metrics 25 | interval: {{ .Values.metrics.serviceMonitor.interval }} 26 | {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} 27 | scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} 28 | {{- end }} 29 | honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }} 30 | {{- if .Values.metrics.serviceMonitor.relabellings }} 31 | metricRelabelings: {{- toYaml .Values.metrics.serviceMonitor.relabellings | nindent 8 }} 32 | {{- end }} 33 | namespaceSelector: 34 | matchNames: 35 | - {{ .Release.Namespace }} 36 | selector: 37 | matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} 38 | app.kubernetes.io/component: metrics 39 | {{- end }} 40 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "futtertrog.name" . }}-config 5 | namespace: {{ .Release.Namespace }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | app.kubernetes.io/component: primary 8 | data: 9 | 10 | {{- if .Values.services.gitlab.enabled}} 11 | LOGIN_WITH_GITLAB: {{ .Values.services.gitlab.enabled | quote }} 12 | GITLAB_URL: {{ .Values.services.gitlab.url | quote }} 13 | GITLAB_CLIENT_ID: {{ .Values.services.gitlab.clientId | quote }} 14 | {{- end }} 15 | 16 | {{- if .Values.mealProviders.holzke.enabled}} 17 | HOLZKE_LOGIN: {{ .Values.mealProviders.holzke.login | quote }} 18 | HOLZKE_SCHEDULE: {{ .Values.mealProviders.holzke.cronjob | quote }} 19 | HOLZKE_ORDER_INFO: {{ .Values.mealProviders.holzke.orderInfo | quote }} 20 | {{- end }} 21 | 22 | NEXMO_KEY: {{ .Values.services.nexmo.key | quote }} 23 | 24 | CALL_A_PIZZA_LOCATION: {{ .Values.mealProviders.call_a_pizza.location | quote }} 25 | CALL_A_PIZZA_CATEGORIES: {{ .Values.mealProviders.call_a_pizza.categories | toJson | quote }} 26 | 27 | FLASCHENPOST_ZIPCODE: {{ .Values.mealProviders.flaschenpost.zipcode | quote }} 28 | FLASCHENPOST_CATEGORIES: {{ .Values.mealProviders.flaschenpost.categories | toJson | quote }} 29 | 30 | MAIL_DRIVER: {{ .Values.mail.driver | quote }} 31 | 32 | {{- if .Values.mail.host }} 33 | MAIL_HOST: {{ .Values.mail.host | quote }} 34 | {{- end }} 35 | 36 | {{- if .Values.mail.port}} 37 | MAIL_PORT: {{ .Values.mail.port | quote }} 38 | {{- end }} 39 | 40 | {{- if .Values.mail.username}} 41 | MAIL_USERNAME: {{ .Values.mail.username | quote }} 42 | {{- end }} 43 | 44 | {{- if .Values.mail.encryption }} 45 | MAIL_ENCRYPTION: {{ .Values.mail.encryption | quote }} 46 | {{- end }} 47 | 48 | {{- if .Values.services.vapid.public_key }} 49 | VAPID_PUBLIC_KEY: {{ .Values.services.vapid.public_key | quote }} 50 | {{- end }} -------------------------------------------------------------------------------- /archived/shopware/jwt_private.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIOmSMnFhHsK0CAggA 3 | MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECLGUDkvXdPlPBIIEyMX3BpN08f2E 4 | TJW6jrfby8GRTPJkLT9EluDlQ8zfk1uyx9poGIQntJRrA+gMqKu9LyUOSwiUYomE 5 | cPHiktDUxk9BP2dzhVEPo5sQbDyKhBmgIomzauWF8sf//BCOMk8XCQ9/94318x3W 6 | 08J4q8kYdfdcuUN9TsLkDoAQ8+sLova3ZbknwsTTf8LddoHZETn6zX18xQfSVul1 7 | e6YHDkZ0wcFaduRJe3AChMXmxNiRmXz0UeCXq/ScSWmqFJGg15YcH7IserAT6Uur 8 | YiYbR8RUmtV4Ytd8RGnSOs3I9F0WdjGyVGiNJmjSz5owlm8TP65PV2m4siI2tBkj 9 | momTY2ARfDNASkwnvsZdPYmAomXnAlpZWkoYhz31OYWTQVMccZEfD1DlMxpELQx1 10 | GX24nj58o99WWbTde3NP/mHEaQSrRse6hjR5rRcPvapZpRo4SiVwWHqhYBez4/sI 11 | YrQdcsLIapAqtwSIP7q6G6kFc9afQ6A6osn+DiScoffrks1bZHI/oZ0D1oYVIpym 12 | 0fy3fwExhbhHqXMy0ayTwprYkQc9zV9aTLUnvpfAsUpFsJC266NY8bzdq2e7g90U 13 | u1IqFChW6CmY2S/hoiAsRR+SK/RXCkgxCFoqtayZMFxnrEhaKLOj10BDb1wxNrf0 14 | V2qChNq76PIXRjfA6j9pfdRfJkP6Lo8p/zTHXb+8nXajLWGn2qLPyYU4606r7xSm 15 | adlb5ViYFFZlZsiER1xumUnxDXqAEt6gBZp+41tkOzw8ESHd7lXfmn6rOJH5idwS 16 | otIcBtQXdPPtMAuPK9ciGxM37b6VHz31Szs4d5+pMOuZfY+eA1hsOF/NpXFwLpBU 17 | 6+dJsrcu4THO/yzD2/M7mOcebeW25e9Ff91TiVJgjrl6n2Z9j/cdCAcErcDytLI3 18 | mDitRGdELep3eAVanX2U05q7+2riyzgwMl5N4N8Oln6HIa5c2TswNdnwPRU5OB+x 19 | VN6zvFiZjFqBdJ2h0uArx09a8udapAeKbNODiB53xzv5RRf5ELuVrVM+Ur3hhuBA 20 | Fth4qg2DqhwTKOzgq0cDlWMuwusMzHESxrqW5XwihTq2CK6KHmYwi7+XyOLjdESh 21 | 2iRHDi1SfCt/6bmzhhBlRhf6iPt/W7Vn+2M2N39w10IcrzH4Sb0hnfI53ZlhV1ef 22 | UN3wMmgV06v2pnOoWB20PIEk/Q10hHDteCOGMVoKG6PwPveQskMXuA8m86Bj3+P5 23 | nrLyv+XTe42AiEGXb46fTsWIILzgZsZiok7VDFA0CDMlee/36c5TNVZSRzKkAAm9 24 | 7qI3PrBEYW4oWdBlxdE7VPDqzaXjL/cp5+UI9MgdlG+5EMNInCsFlrnXuKDEuNtl 25 | AsH4JS6JD8HVuYgrEtE/UR09uBsHImU0sP83EX4WdeC574/GhWV5etqUQ6bTqH+J 26 | uZlYJlgiCoDBLiwOv027kHfh6+/PYdU5bMYTMhlSFvMe+rkeHqJREf8ROvQn18Pq 27 | o0dFPmS+12XSaRVbzSocYd/vfzqfRZ/0w+nX5e6ms2wTs8+YweYVJz+Jbtfg5TNB 28 | zjs8rhg/2lAZ2usrRjy1TgoC2Rbf7yJOw4NkTWdjjBfwHSfW1AN0GMcEQnjxIiVn 29 | m9Qe47KOLXj6CgyCBgEgAw== 30 | -----END ENCRYPTED PRIVATE KEY----- 31 | -------------------------------------------------------------------------------- /charts/kimai2/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }} 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | scaleTargetRef: 16 | apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} 17 | kind: Deployment 18 | name: {{ include "common.names.fullname" . }} 19 | minReplicas: {{ .Values.autoscaling.minReplicas }} 20 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 21 | metrics: 22 | {{- if .Values.autoscaling.targetMemory }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }} 27 | targetAverageUtilization: {{ .Values.autoscaling.targetMemory }} 28 | {{- else }} 29 | target: 30 | type: Utilization 31 | averageUtilization: {{ .Values.autoscaling.targetMemory }} 32 | {{- end }} 33 | {{- end }} 34 | {{- if .Values.autoscaling.targetCPU }} 35 | - type: Resource 36 | resource: 37 | name: cpu 38 | {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }} 39 | targetAverageUtilization: {{ .Values.autoscaling.targetCPU }} 40 | {{- else }} 41 | target: 42 | type: Utilization 43 | averageUtilization: {{ .Values.autoscaling.targetCPU }} 44 | {{- end }} 45 | {{- end }} 46 | {{- end }} 47 | -------------------------------------------------------------------------------- /archived/shopware/templates/config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ template "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | data: 14 | APP_DEBUG: {{ .Values.image.debug | quote }} 15 | APP_ENV: {{ .Values.shopwareAppEnv | quote }} 16 | APP_URL: {{ .Values.shopwareAppUrl | quote }} 17 | 18 | DATABASE_HOST: {{ include "shopware.databaseHost" . | quote }} 19 | 20 | {{- if or .Values.elasticsearch.enabled .Values.externalElasticsearch.host }} 21 | SHOPWARE_ES_ENABLED: "true" 22 | SHOPWARE_ES_INDEXING_ENABLED: "true" 23 | SHOPWARE_ES_HOSTS: {{ template "shopware.elasticsearch.fullname" . }} 24 | {{- end }} 25 | SHOPWARE_HTTP_CACHE_ENABLED: {{ .Values.httpCache.enabled | quote }} 26 | SHOPWARE_HTTP_DEFAULT_TTL: {{ .Values.httpCache.defaultTtl | quote }} 27 | DISABLE_ADMIN_WORKER: {{ .Values.consumer.enabled | quote }} 28 | INSTALL_LOCALE: {{ .Values.shopwareLocale | quote }} 29 | INSTALL_CURRENCY: {{ .Values.shopwareCurrency | quote }} 30 | INSTALL_ADMIN_USERNAME: {{ .Values.shopwareUsername | quote }} 31 | CACHE_ADAPTER: {{ .Values.cache.adapter | quote }} 32 | REDIS_CACHE_HOST: {{ include "shopware.cacheHost" . }} 33 | REDIS_CACHE_PORT: {{ include "shopware.cachePort" . | quote }} 34 | REDIS_CACHE_DATABASE: {{ .Values.cache.database | quote }} 35 | SESSION_ADAPTER: {{ .Values.session.adapter | quote }} 36 | REDIS_SESSION_HOST: {{ include "shopware.cacheHost" . }} 37 | REDIS_SESSION_PORT: {{ include "shopware.cachePort" . | quote }} 38 | REDIS_SESSION_DATABASE: {{ .Values.session.database | quote }} 39 | {{- if .Values.activePlugins }} 40 | ACTIVE_PLUGINS: {{ .Values.activePlugins | quote }} 41 | {{- end }} 42 | -------------------------------------------------------------------------------- /archived/shopware/templates/svc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if or .Values.service.annotations .Values.commonAnnotations }} 11 | annotations: 12 | {{- if .Values.service.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.service.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | {{- end }} 19 | spec: 20 | type: {{ .Values.service.type }} 21 | {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} 22 | clusterIP: {{ .Values.service.clusterIP }} 23 | {{- end }} 24 | {{- if (or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort")) }} 25 | externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} 26 | {{- end }} 27 | {{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges) }} 28 | loadBalancerSourceRanges: {{- toYaml . | nindent 4 }} 29 | {{- end }} 30 | {{- if (and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP))) }} 31 | loadBalancerIP: {{ .Values.service.loadBalancerIP }} 32 | {{- end }} 33 | ports: 34 | - name: http 35 | port: {{ .Values.service.port }} 36 | protocol: TCP 37 | targetPort: http 38 | {{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePort))) }} 39 | nodePort: {{ .Values.service.nodePort }} 40 | {{- end }} 41 | {{- if .Values.service.extraPorts }} 42 | {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} 43 | {{- end }} 44 | selector: {{- include "common.labels.matchLabels" . | nindent 4 }} 45 | -------------------------------------------------------------------------------- /archived/unpubd/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if or .Values.service.annotations .Values.commonAnnotations }} 11 | annotations: 12 | {{- if .Values.service.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.service.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | {{- end }} 19 | spec: 20 | type: {{ .Values.service.type }} 21 | {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} 22 | clusterIP: {{ .Values.service.clusterIP }} 23 | {{- end }} 24 | {{- if (or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort")) }} 25 | externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} 26 | {{- end }} 27 | {{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges) }} 28 | loadBalancerSourceRanges: {{- toYaml . | nindent 4 }} 29 | {{- end }} 30 | {{- if (and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP))) }} 31 | loadBalancerIP: {{ .Values.service.loadBalancerIP }} 32 | {{- end }} 33 | ports: 34 | - name: http 35 | port: {{ .Values.service.port }} 36 | protocol: TCP 37 | targetPort: http 38 | {{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePort))) }} 39 | nodePort: {{ .Values.service.nodePort }} 40 | {{- end }} 41 | {{- if .Values.service.extraPorts }} 42 | {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} 43 | {{- end }} 44 | selector: {{- include "common.labels.matchLabels" . | nindent 4 }} 45 | -------------------------------------------------------------------------------- /archived/kirby3/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 24 | 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 | */}} 13 | {{- define "fullname" -}} 14 | {{- $name := default .Chart.Name .Values.nameOverride -}} 15 | {{- printf "%s-%s" .Release.Name $name | trimSuffix "-app" | trunc 63 | trimSuffix "-" -}} 16 | {{- end -}} 17 | 18 | {{- define "appname" -}} 19 | {{- $releaseName := default .Release.Name .Values.releaseOverride -}} 20 | {{- printf "%s" $releaseName | trunc 63 | trimSuffix "-" -}} 21 | {{- end -}} 22 | 23 | {{- define "imagename" -}} 24 | {{- if eq .Values.image.tag "" -}} 25 | {{- .Values.image.repository -}} 26 | {{- else -}} 27 | {{- printf "%s:%s" .Values.image.repository .Values.image.tag -}} 28 | {{- end -}} 29 | {{- end -}} 30 | 31 | {{- define "trackableappname" -}} 32 | {{- $trackableName := printf "%s-%s" (include "appname" .) .Values.application.track -}} 33 | {{- $trackableName | trimSuffix "-stable" | trunc 63 | trimSuffix "-" -}} 34 | {{- end -}} 35 | 36 | {{/* 37 | Get a hostname from URL 38 | */}} 39 | {{- define "hostname" -}} 40 | {{- . | trimPrefix "http://" | trimPrefix "https://" | trimSuffix "/" | trim | quote -}} 41 | {{- end -}} 42 | 43 | {{/* 44 | Get SecRule's arguments with unescaped single&double quotes 45 | */}} 46 | {{- define "secrule" -}} 47 | {{- $operator := .operator | quote | replace "\"" "\\\"" | replace "'" "\\'" -}} 48 | {{- $action := .action | quote | replace "\"" "\\\"" | replace "'" "\\'" -}} 49 | {{- printf "SecRule %s %s %s" .variable $operator $action -}} 50 | {{- end -}} 51 | 52 | {{- define "sharedlabels" -}} 53 | app: {{ template "appname" . }} 54 | chart: "{{ .Chart.Name }}-{{ .Chart.Version| replace "+" "_" }}" 55 | release: {{ .Release.Name }} 56 | heritage: {{ .Release.Service }} 57 | app.kubernetes.io/name: {{ template "appname" . }} 58 | helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version| replace "+" "_" }}" 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | app.kubernetes.io/instance: {{ .Release.Name }} 61 | {{- if .Values.extraLabels }} 62 | {{ toYaml $.Values.extraLabels }} 63 | {{- end }} 64 | {{- end -}} -------------------------------------------------------------------------------- /archived/kirby3/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | strategyType: Recreate 3 | serviceAccountName: 4 | image: 5 | repository: gitlab.example.com/group/project 6 | tag: stable 7 | pullPolicy: IfNotPresent 8 | secrets: 9 | - name: gitlab-registry 10 | extraLabels: {} 11 | podAnnotations: {} 12 | application: 13 | track: stable 14 | tier: web 15 | secretName: 16 | secretChecksum: 17 | hpa: 18 | enabled: false 19 | minReplicas: 1 20 | maxReplicas: 5 21 | targetCPUUtilizationPercentage: 80 22 | gitlab: 23 | app: 24 | env: 25 | envName: 26 | envURL: 27 | service: 28 | enabled: true 29 | annotations: {} 30 | name: web 31 | type: ClusterIP 32 | url: http://my.host.com/ 33 | additionalHosts: 34 | commonName: 35 | externalPort: 5000 36 | internalPort: 80 37 | ingress: 38 | enabled: true 39 | path: "/" 40 | tls: 41 | enabled: true 42 | acme: true 43 | secretName: "" 44 | useDefaultSecret: false 45 | annotations: 46 | kubernetes.io/ingress.class: "nginx" 47 | modSecurity: 48 | enabled: false 49 | secRuleEngine: "DetectionOnly" 50 | # secRules: 51 | # - variable: "" 52 | # operator: "" 53 | # action: "" 54 | canary: 55 | weight: 56 | prometheus: 57 | metrics: false 58 | livenessProbe: 59 | path: "/panel/login" 60 | initialDelaySeconds: 15 61 | timeoutSeconds: 15 62 | scheme: "HTTP" 63 | probeType: "httpGet" 64 | readinessProbe: 65 | path: "/panel/login" 66 | initialDelaySeconds: 5 67 | timeoutSeconds: 3 68 | scheme: "HTTP" 69 | probeType: "httpGet" 70 | 71 | resources: 72 | limits: 73 | # cpu: 100m 74 | memory: 128Mi 75 | requests: 76 | cpu: 100m 77 | memory: 128Mi 78 | 79 | ## Configure PodDisruptionBudget 80 | ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ 81 | # 82 | podDisruptionBudget: 83 | enabled: false 84 | # minAvailable: 1 85 | maxUnavailable: 1 86 | 87 | ## Configure NetworkPolicy 88 | ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/ 89 | # 90 | networkPolicy: 91 | enabled: false 92 | spec: 93 | podSelector: 94 | matchLabels: {} 95 | ingress: 96 | - from: 97 | - podSelector: 98 | matchLabels: {} 99 | - namespaceSelector: 100 | matchLabels: 101 | app.gitlab.com/managed_by: gitlab -------------------------------------------------------------------------------- /charts/kimai2/templates/svc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if or .Values.service.annotations .Values.commonAnnotations }} 11 | annotations: 12 | {{- if .Values.service.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.service.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | {{- end }} 19 | spec: 20 | type: {{ .Values.service.type }} 21 | {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} 22 | clusterIP: {{ .Values.service.clusterIP }} 23 | {{- end }} 24 | {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} 25 | externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} 26 | {{- end }} 27 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }} 28 | loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }} 29 | {{- end }} 30 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }} 31 | loadBalancerIP: {{ .Values.service.loadBalancerIP }} 32 | {{- end }} 33 | {{- if .Values.service.sessionAffinity }} 34 | sessionAffinity: {{ .Values.service.sessionAffinity }} 35 | {{- end }} 36 | {{- if .Values.service.sessionAffinityConfig }} 37 | sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }} 38 | {{- end }} 39 | ports: 40 | - name: http 41 | port: {{ .Values.service.ports.http }} 42 | protocol: TCP 43 | targetPort: http 44 | {{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.http))) }} 45 | nodePort: {{ .Values.service.nodePorts.http }} 46 | {{- else if eq .Values.service.type "ClusterIP" }} 47 | nodePort: null 48 | {{- end }} 49 | {{- if .Values.service.extraPorts }} 50 | {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} 51 | {{- end }} 52 | selector: {{- include "common.labels.matchLabels" . | nindent 4 }} 53 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: 7 | {{- include "futtertrog.labels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.replicaCount }} 10 | selector: 11 | matchLabels: 12 | {{- include "futtertrog.selectorLabels" . | nindent 6 }} 13 | 14 | {{- if .Values.updateStrategy }} 15 | strategy: {{- toYaml .Values.updateStrategy | nindent 4 }} 16 | {{- end }} 17 | template: 18 | metadata: 19 | {{- with .Values.podAnnotations }} 20 | annotations: 21 | {{- toYaml . | nindent 8 }} 22 | {{- end }} 23 | labels: 24 | {{- include "futtertrog.selectorLabels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | securityContext: 31 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.securityContext | nindent 12 }} 36 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 37 | imagePullPolicy: {{ .Values.image.pullPolicy }} 38 | env: 39 | {{- if .Values.extraEnvVars }} 40 | {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} 41 | {{- end }} 42 | envFrom: 43 | - configMapRef: 44 | name: {{ include "futtertrog.name" . }}-config 45 | - secretRef: 46 | name: {{ include "futtertrog.name" . }}-secret 47 | ports: 48 | - name: http 49 | containerPort: 80 50 | protocol: TCP 51 | livenessProbe: 52 | httpGet: 53 | path: / 54 | port: http 55 | periodSeconds: 10 56 | readinessProbe: 57 | httpGet: 58 | path: / 59 | port: http 60 | periodSeconds: 10 61 | {{- if .Values.resources }} 62 | resources: {{- toYaml .Values.resources | nindent 12 }} 63 | {{- end }} 64 | {{- with .Values.nodeSelector }} 65 | nodeSelector: 66 | {{- toYaml . | nindent 8 }} 67 | {{- end }} 68 | {{- with .Values.affinity }} 69 | affinity: 70 | {{- toYaml . | nindent 8 }} 71 | {{- end }} 72 | {{- with .Values.tolerations }} 73 | tolerations: 74 | {{- toYaml . | nindent 8 }} 75 | {{- end }} 76 | -------------------------------------------------------------------------------- /charts/nominatim/templates/svc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if or .Values.service.annotations .Values.commonAnnotations }} 11 | annotations: 12 | {{- if .Values.service.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.service.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | {{- end }} 19 | spec: 20 | type: {{ .Values.service.type }} 21 | {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} 22 | clusterIP: {{ .Values.service.clusterIP }} 23 | {{- end }} 24 | {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} 25 | externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} 26 | {{- end }} 27 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }} 28 | loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges | toYaml | nindent 4 }} 29 | {{- end }} 30 | {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }} 31 | loadBalancerIP: {{ .Values.service.loadBalancerIP }} 32 | {{- end }} 33 | {{- if .Values.service.sessionAffinity }} 34 | sessionAffinity: {{ .Values.service.sessionAffinity }} 35 | {{- end }} 36 | {{- if .Values.service.sessionAffinityConfig }} 37 | sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }} 38 | {{- end }} 39 | ports: 40 | - name: http 41 | port: {{ .Values.service.ports.http }} 42 | protocol: TCP 43 | targetPort: http 44 | {{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.http))) }} 45 | nodePort: {{ .Values.service.nodePorts.http }} 46 | {{- else if eq .Values.service.type "ClusterIP" }} 47 | nodePort: null 48 | {{- end }} 49 | {{- if .Values.service.extraPorts }} 50 | {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} 51 | {{- end }} 52 | selector: {{- include "common.labels.matchLabels" . | nindent 4 }} 53 | -------------------------------------------------------------------------------- /archived/kirby3/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and (.Values.service.enabled) (or (.Values.ingress.enabled) (not (hasKey .Values.ingress "enabled"))) -}} 2 | apiVersion: extensions/v1beta1 3 | kind: Ingress 4 | metadata: 5 | name: {{ template "fullname" . }} 6 | labels: 7 | {{ include "sharedlabels" . | indent 4 }} 8 | annotations: 9 | {{- if .Values.ingress.annotations }} 10 | {{ toYaml .Values.ingress.annotations | indent 4 }} 11 | {{- end }} 12 | {{- if .Values.ingress.tls.enabled }} 13 | kubernetes.io/tls-acme: {{ .Values.ingress.tls.acme | quote }} 14 | {{- end }} 15 | {{- if eq .Values.application.track "canary" }} 16 | nginx.ingress.kubernetes.io/canary: "true" 17 | nginx.ingress.kubernetes.io/canary-by-header: "canary" 18 | {{- if .Values.ingress.canary.weight }} 19 | nginx.ingress.kubernetes.io/canary-weight: {{ .Values.ingress.canary.weight | quote }} 20 | {{- end }} 21 | {{- end }} 22 | {{- with .Values.ingress.modSecurity }} 23 | {{- if .enabled }} 24 | nginx.ingress.kubernetes.io/modsecurity-transaction-id: "$server_name-$request_id" 25 | nginx.ingress.kubernetes.io/modsecurity-snippet: | 26 | SecRuleEngine {{ .secRuleEngine | default "DetectionOnly" | title }} 27 | {{- range $rule := .secRules }} 28 | {{ (include "secrule" $rule) | indent 6 }} 29 | {{- end }} 30 | {{- end }} 31 | {{- end }} 32 | {{- if .Values.prometheus.metrics }} 33 | nginx.ingress.kubernetes.io/server-snippet: |- 34 | location /metrics { 35 | deny all; 36 | } 37 | 38 | {{- end }} 39 | spec: 40 | {{- if .Values.ingress.tls.enabled }} 41 | tls: 42 | - hosts: 43 | {{- if .Values.service.commonName }} 44 | - {{ template "hostname" .Values.service.commonName }} 45 | {{- end }} 46 | - {{ template "hostname" .Values.service.url }} 47 | {{- if .Values.service.additionalHosts }} 48 | {{- range $host := .Values.service.additionalHosts }} 49 | - {{ template "hostname" $host }} 50 | {{- end -}} 51 | {{- end }} 52 | {{- if not .Values.ingress.tls.useDefaultSecret }} 53 | secretName: {{ .Values.ingress.tls.secretName | default (printf "%s-tls" (include "fullname" .)) }} 54 | {{- end }} 55 | {{- end }} 56 | rules: 57 | - host: {{ template "hostname" .Values.service.url }} 58 | http: 59 | &httpRule 60 | paths: 61 | - path: {{ .Values.ingress.path | default "/" | quote }} 62 | backend: 63 | serviceName: {{ template "fullname" . }} 64 | servicePort: {{ .Values.service.externalPort }} 65 | {{- if .Values.service.commonName }} 66 | - host: {{ template "hostname" .Values.service.commonName }} 67 | http: 68 | <<: *httpRule 69 | {{- end -}} 70 | {{- if .Values.service.additionalHosts }} 71 | {{- range $host := .Values.service.additionalHosts }} 72 | - host: {{ template "hostname" $host }} 73 | http: 74 | <<: *httpRule 75 | {{- end -}} 76 | {{- end -}} 77 | {{- end -}} 78 | -------------------------------------------------------------------------------- /archived/shopware/templates/jobInit.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: {{ printf "%s-init" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | annotations: 11 | "helm.sh/hook": post-install 12 | "helm.sh/hook-weight": "10" 13 | {{- if .Values.commonAnnotations }} 14 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | spec: 17 | template: 18 | spec: 19 | {{- include "shopware.imagePullSecrets" . | nindent 6 }} 20 | {{- if .Values.schedulerName }} 21 | schedulerName: {{ .Values.schedulerName | quote }} 22 | {{- end }} 23 | 24 | {{- if .Values.podSecurityContext.enabled }} 25 | securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }} 26 | {{- end }} 27 | containers: 28 | - name: init 29 | image: {{ template "shopware.image" . }} 30 | imagePullPolicy: {{ .Values.image.pullPolicy | quote }} 31 | args: [ "maintenance" ] 32 | {{- if .Values.containerSecurityContext.enabled }} 33 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 34 | {{- end }} 35 | envFrom: 36 | - configMapRef: 37 | name: {{ template "common.names.fullname" . }} 38 | - secretRef: 39 | name: {{ template "common.names.fullname" . }} 40 | volumeMounts: 41 | - mountPath: /var/www/html/config/jwt/ 42 | name: shopware-jwt 43 | - mountPath: /var/www/html/config/packages/ 44 | name: shopware-minio 45 | - mountPath: /var/www/html/custom/plugins 46 | name: shopware-plugins 47 | restartPolicy: OnFailure 48 | volumes: 49 | - name: shopware-jwt 50 | secret: 51 | secretName: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 52 | {{- if .Values.minio.enabled }} 53 | - name: shopware-minio 54 | configMap: 55 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 56 | {{- end }} 57 | - name: shopware-plugins 58 | {{- if .Values.persistence.enabled}} 59 | persistentVolumeClaim: 60 | claimName: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} 61 | {{- else }} 62 | emptyDir: {} 63 | {{- end }} 64 | {{- if .Values.extraVolumes }} 65 | {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }} 66 | {{- end }} 67 | -------------------------------------------------------------------------------- /archived/shopware/templates/jobUpdate.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: batch/v1 2 | kind: Job 3 | metadata: 4 | name: {{ printf "%s-update" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | annotations: 11 | "helm.sh/hook": post-upgrade 12 | "helm.sh/hook-weight": "10" 13 | {{- if .Values.commonAnnotations }} 14 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 15 | {{- end }} 16 | spec: 17 | template: 18 | spec: 19 | {{- include "shopware.imagePullSecrets" . | nindent 6 }} 20 | {{- if .Values.schedulerName }} 21 | schedulerName: {{ .Values.schedulerName | quote }} 22 | {{- end }} 23 | {{- if .Values.podSecurityContext.enabled }} 24 | securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }} 25 | {{- end }} 26 | containers: 27 | - name: update 28 | image: {{ template "shopware.image" . }} 29 | imagePullPolicy: {{ .Values.image.pullPolicy | quote }} 30 | args: [ "maintenance" ] 31 | {{- if .Values.containerSecurityContext.enabled }} 32 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 33 | {{- end }} 34 | env: 35 | - name: INSTALLED_SHOPWARE_VERSION 36 | value: "1" 37 | envFrom: 38 | - configMapRef: 39 | name: {{ template "common.names.fullname" . }} 40 | - secretRef: 41 | name: {{ template "common.names.fullname" . }} 42 | volumeMounts: 43 | - mountPath: /var/www/html/config/jwt/ 44 | name: shopware-jwt 45 | - mountPath: /var/www/html/config/packages/ 46 | name: shopware-minio 47 | - mountPath: /var/www/html/custom/plugins 48 | name: shopware-plugins 49 | restartPolicy: OnFailure 50 | volumes: 51 | - name: shopware-jwt 52 | secret: 53 | secretName: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 54 | {{- if .Values.minio.enabled }} 55 | - name: shopware-minio 56 | configMap: 57 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 58 | {{- end }} 59 | - name: shopware-plugins 60 | {{- if .Values.persistence.enabled}} 61 | persistentVolumeClaim: 62 | claimName: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} 63 | {{- else }} 64 | emptyDir: {} 65 | {{- end }} 66 | {{- if .Values.extraVolumes }} 67 | {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }} 68 | {{- end }} -------------------------------------------------------------------------------- /charts/kimai2/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} 3 | kind: Ingress 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | {{- if .Values.ingress.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | spec: 19 | {{- if and .Values.ingress.ingressClassName (eq "true" (include "common.ingress.supportsIngressClassname" .)) }} 20 | ingressClassName: {{ .Values.ingress.ingressClassName | quote }} 21 | {{- end }} 22 | rules: 23 | {{- if .Values.ingress.hostname }} 24 | - host: {{ tpl .Values.ingress.hostname $ | quote }} 25 | http: 26 | paths: 27 | {{- if .Values.ingress.extraPaths }} 28 | {{- toYaml .Values.ingress.extraPaths | nindent 10 }} 29 | {{- end }} 30 | - path: {{ .Values.ingress.path }} 31 | {{- if eq "true" (include "common.ingress.supportsPathType" .) }} 32 | pathType: {{ .Values.ingress.pathType }} 33 | {{- end }} 34 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }} 35 | {{- end }} 36 | {{- range .Values.ingress.extraHosts }} 37 | - host: {{ tpl .name $ | quote }} 38 | http: 39 | paths: 40 | - path: {{ default "/" .path }} 41 | {{- if eq "true" (include "common.ingress.supportsPathType" $) }} 42 | pathType: {{ default "ImplementationSpecific" .pathType }} 43 | {{- end }} 44 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }} 45 | {{- end }} 46 | {{- if .Values.ingress.extraRules }} 47 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraRules "context" $) | nindent 4 }} 48 | {{- end }} 49 | {{- if or (and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned)) .Values.ingress.extraTls }} 50 | tls: 51 | {{- if and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned) }} 52 | - hosts: 53 | - {{ tpl .Values.ingress.hostname $ | quote }} 54 | secretName: {{ printf "%s-tls" (tpl .Values.ingress.hostname $) }} 55 | {{- end }} 56 | {{- if .Values.ingress.extraTls }} 57 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraTls "context" $) | nindent 4 }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} -------------------------------------------------------------------------------- /charts/nominatim/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} 3 | kind: Ingress 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | {{- if .Values.ingress.annotations }} 13 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }} 14 | {{- end }} 15 | {{- if .Values.commonAnnotations }} 16 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 17 | {{- end }} 18 | spec: 19 | {{- if and .Values.ingress.ingressClassName (eq "true" (include "common.ingress.supportsIngressClassname" .)) }} 20 | ingressClassName: {{ .Values.ingress.ingressClassName | quote }} 21 | {{- end }} 22 | rules: 23 | {{- if .Values.ingress.hostname }} 24 | - host: {{ tpl .Values.ingress.hostname $ | quote }} 25 | http: 26 | paths: 27 | {{- if .Values.ingress.extraPaths }} 28 | {{- toYaml .Values.ingress.extraPaths | nindent 10 }} 29 | {{- end }} 30 | - path: {{ .Values.ingress.path }} 31 | {{- if eq "true" (include "common.ingress.supportsPathType" .) }} 32 | pathType: {{ .Values.ingress.pathType }} 33 | {{- end }} 34 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }} 35 | {{- end }} 36 | {{- range .Values.ingress.extraHosts }} 37 | - host: {{ tpl .name $ | quote }} 38 | http: 39 | paths: 40 | - path: {{ default "/" .path }} 41 | {{- if eq "true" (include "common.ingress.supportsPathType" $) }} 42 | pathType: {{ default "ImplementationSpecific" .pathType }} 43 | {{- end }} 44 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }} 45 | {{- end }} 46 | {{- if .Values.ingress.extraRules }} 47 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraRules "context" $) | nindent 4 }} 48 | {{- end }} 49 | {{- if or (and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned)) .Values.ingress.extraTls }} 50 | tls: 51 | {{- if and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned) }} 52 | - hosts: 53 | - {{ tpl .Values.ingress.hostname $ | quote }} 54 | secretName: {{ printf "%s-tls" (tpl .Values.ingress.hostname $) }} 55 | {{- end }} 56 | {{- if .Values.ingress.extraTls }} 57 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraTls "context" $) | nindent 4 }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} -------------------------------------------------------------------------------- /archived/shopware/templates/config-minio.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: {{- include "common.labels.standard" . | nindent 4 }} 7 | {{- if .Values.commonLabels }} 8 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 9 | {{- end }} 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | data: 14 | storage.yml: |- 15 | shopware: 16 | filesystem: 17 | private: 18 | type: "amazon-s3" 19 | config: 20 | bucket: "documents" 21 | endpoint: {{ include "shopware.minio.endpoint" . }} 22 | use_path_style_endpoint: true 23 | region: 'local' 24 | credentials: 25 | key: {{ .Values.minio.auth.rootUser }} 26 | secret: {{ .Values.minio.auth.rootPassword }} 27 | options: 28 | visibility: "private" 29 | public: 30 | type: "amazon-s3" 31 | url: {{ printf "%s/media" (include "shopware.minio.url" .) }} 32 | config: 33 | bucket: "media" 34 | endpoint: {{ include "shopware.minio.endpoint" . }} 35 | use_path_style_endpoint: true 36 | region: 'local' 37 | credentials: 38 | key: {{ .Values.minio.auth.rootUser }} 39 | secret: {{ .Values.minio.auth.rootPassword }} 40 | options: 41 | visibility: "public" 42 | theme: 43 | type: "amazon-s3" 44 | url: {{ printf "%s/theme" (include "shopware.minio.url" .) }} 45 | config: 46 | bucket: "theme" 47 | endpoint: {{ include "shopware.minio.endpoint" . }} 48 | use_path_style_endpoint: true 49 | region: 'local' 50 | credentials: 51 | key: {{ .Values.minio.auth.rootUser }} 52 | secret: {{ .Values.minio.auth.rootPassword }} 53 | options: 54 | visibility: "public" 55 | asset: 56 | type: "amazon-s3" 57 | url: {{ printf "%s/asset" (include "shopware.minio.url" .) }} 58 | config: 59 | bucket: "asset" 60 | endpoint: {{ include "shopware.minio.endpoint" . }} 61 | use_path_style_endpoint: true 62 | region: 'local' 63 | credentials: 64 | key: {{ .Values.minio.auth.rootUser }} 65 | secret: {{ .Values.minio.auth.rootPassword }} 66 | options: 67 | visibility: "public" 68 | sitemap: 69 | type: "amazon-s3" 70 | url: {{ printf "%s/sitemap" (include "shopware.minio.url" .) }} 71 | config: 72 | bucket: "sitemap" 73 | endpoint: {{ include "shopware.minio.endpoint" . }} 74 | use_path_style_endpoint: true 75 | region: 'local' 76 | credentials: 77 | key: {{ .Values.minio.auth.rootUser }} 78 | secret: {{ .Values.minio.auth.rootPassword }} 79 | options: 80 | visibility: "public" -------------------------------------------------------------------------------- /charts/kimai2/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | CHART NAME: {{ .Chart.Name }} 2 | CHART VERSION: {{ .Chart.Version }} 3 | APP VERSION: {{ .Chart.AppVersion }} 4 | 5 | ** Please be patient while the chart is being deployed ** 6 | 7 | {{- if .Values.diagnosticMode.enabled }} 8 | The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with: 9 | 10 | command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }} 11 | args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }} 12 | 13 | Get the list of pods by executing: 14 | 15 | kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} 16 | 17 | Access the pod you want to debug by executing 18 | 19 | kubectl exec --namespace {{ .Release.Namespace }} -ti -- bash 20 | 21 | 22 | {{- else }} 23 | 24 | Your Kimai instance can be accessed through the following DNS name from within your cluster: 25 | 26 | {{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} (port {{ .Values.service.ports.http }}) 27 | 28 | To access your Kimai instance from outside the cluster follow the steps below: 29 | 30 | {{- if .Values.ingress.enabled }} 31 | 32 | 1. Get the Kimai URL and associate Kimai hostname to your cluster external IP: 33 | 34 | export CLUSTER_IP=$(minikube ip) # On Minikube. Use: `kubectl cluster-info` on others K8s clusters 35 | echo "Kimai URL: http{{ if .Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }}/" 36 | echo "$CLUSTER_IP {{ .Values.ingress.hostname }}" | sudo tee -a /etc/hosts 37 | 38 | {{- else }} 39 | {{- $port := .Values.service.ports.http | toString }} 40 | 41 | 1. Get the Kimai URL by running these commands: 42 | 43 | {{- if contains "NodePort" .Values.service.type }} 44 | 45 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }}) 46 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 47 | echo "Kimai URL: http://$NODE_IP:$NODE_PORT/" 48 | 49 | {{- else if contains "LoadBalancer" .Values.service.type }} 50 | 51 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 52 | Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ include "common.names.fullname" . }}' 53 | 54 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}") 55 | echo "Kimai URL: http://$SERVICE_IP{{- if ne $port "80" }}:{{ .Values.service.ports.http }}{{ end }}/" 56 | 57 | {{- else if contains "ClusterIP" .Values.service.type }} 58 | 59 | kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} {{ .Values.service.ports.http }}:{{ .Values.service.ports.http }} & 60 | echo "Kimai URL: http://127.0.0.1{{- if ne $port "80" }}:{{ .Values.service.ports.http }}{{ end }}//" 61 | 62 | {{- end }} 63 | {{- end }} 64 | 65 | 2. Open a browser and access Kimai using the obtained URL. 66 | 67 | 3. Login with the following credentials below to see your blog: 68 | 69 | echo Username: {{ .Values.kimaiAdminEmail }} 70 | echo Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} -o jsonpath="{.data.admin-password}" | base64 -d) 71 | 72 | {{- end }} -------------------------------------------------------------------------------- /archived/shopware/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled }} 2 | apiVersion: networking.k8s.io/v1 3 | kind: Ingress 4 | metadata: 5 | name: {{ include "common.names.fullname" . }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | {{- if .Values.ingress.certManager }} 13 | kubernetes.io/tls-acme: "true" 14 | {{- end }} 15 | {{- if .Values.ingress.annotations }} 16 | {{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }} 17 | {{- end }} 18 | {{- if .Values.commonAnnotations }} 19 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 20 | {{- end }} 21 | spec: 22 | {{- if .Values.ingress.ingressClassName }} 23 | ingressClassName: {{ .Values.ingress.ingressClassName | quote }} 24 | {{- end }} 25 | rules: 26 | - host: {{ .Values.ingress.hostname | quote }} 27 | http: 28 | paths: 29 | {{- if .Values.ingress.extraPaths }} 30 | {{- toYaml .Values.ingress.extraPaths | nindent 10 }} 31 | {{- end }} 32 | - path: {{ .Values.ingress.path }} 33 | pathType: {{ .Values.ingress.pathType }} 34 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }} 35 | {{- if and .Values.minio.enabled (not .Values.minio.url) }} 36 | - path: /media 37 | pathType: Prefix 38 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "shopware.minio.fullname" .) "servicePort" "minio-api" "context" $) | nindent 14 }} 39 | - path: /theme 40 | pathType: Prefix 41 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "shopware.minio.fullname" .) "servicePort" "minio-api" "context" $) | nindent 14 }} 42 | - path: /asset 43 | pathType: Prefix 44 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "shopware.minio.fullname" .) "servicePort" "minio-api" "context" $) | nindent 14 }} 45 | - path: /sitemap 46 | pathType: Prefix 47 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "shopware.minio.fullname" .) "servicePort" "minio-api" "context" $) | nindent 14 }} 48 | {{- end }} 49 | {{- range .Values.ingress.extraHosts }} 50 | - host: {{ .name | quote }} 51 | http: 52 | paths: 53 | - path: {{ default "/" .path }} 54 | pathType: {{ default "ImplementationSpecific" .pathType }} 55 | backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }} 56 | {{- end }} 57 | {{- if or .Values.ingress.tls .Values.ingress.extraTls }} 58 | tls: 59 | {{- if .Values.ingress.tls }} 60 | - hosts: 61 | - {{ default .Values.shopwareAppUrl .Values.ingress.hostname | quote }} 62 | {{- range .Values.ingress.extraHosts }} 63 | - {{ .name | quote }} 64 | {{- end }} 65 | secretName: {{ printf "%s-tls" .Values.ingress.hostname }} 66 | {{- end }} 67 | {{- if .Values.ingress.extraTls }} 68 | {{- include "common.tplvalues.render" ( dict "value" .Values.ingress.extraTls "context" $ ) | nindent 4 }} 69 | {{- end }} 70 | {{- end }} 71 | {{- end }} 72 | -------------------------------------------------------------------------------- /charts/kimai2/templates/networkpolicy-ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.ingress.enabled .Values.networkPolicy.metrics.enabled .Values.networkPolicy.ingressRules.accessOnlyFrom.enabled) }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-ingress" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | {{- include "common.labels.standard" . | nindent 6 }} 18 | ingress: 19 | {{- if and .Values.ingress.enabled .Values.networkPolicy.ingress.enabled (or .Values.networkPolicy.ingress.namespaceSelector .Values.networkPolicy.ingress.podSelector) }} 20 | - from: 21 | {{- if .Values.networkPolicy.ingress.namespaceSelector }} 22 | - namespaceSelector: 23 | matchLabels: 24 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingress.namespaceSelector "context" $) | nindent 14 }} 25 | {{- end }} 26 | {{- if .Values.networkPolicy.ingress.podSelector }} 27 | - podSelector: 28 | matchLabels: 29 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingress.podSelector "context" $) | nindent 14 }} 30 | {{- end }} 31 | {{- end }} 32 | {{- if and .Values.metrics.enabled .Values.networkPolicy.metrics.enabled (or .Values.networkPolicy.metrics.namespaceSelector .Values.networkPolicy.metrics.podSelector) }} 33 | - from: 34 | {{- if .Values.networkPolicy.metrics.namespaceSelector }} 35 | - namespaceSelector: 36 | matchLabels: 37 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.namespaceSelector "context" $) | nindent 14 }} 38 | {{- end }} 39 | {{- if .Values.networkPolicy.metrics.podSelector }} 40 | - podSelector: 41 | matchLabels: 42 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.podSelector "context" $) | nindent 14 }} 43 | {{- end }} 44 | {{- end }} 45 | {{- if and .Values.networkPolicy.ingressRules.accessOnlyFrom.enabled (or .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector) }} 46 | - from: 47 | {{- if .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector }} 48 | - namespaceSelector: 49 | matchLabels: 50 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector "context" $) | nindent 14 }} 51 | {{- end }} 52 | {{- if .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector }} 53 | - podSelector: 54 | matchLabels: 55 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector "context" $) | nindent 14 }} 56 | {{- end }} 57 | {{- end }} 58 | {{- if .Values.networkPolicy.ingressRules.customRules }} 59 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.customRules "context" $) | nindent 4 }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/nominatim/templates/networkpolicy-ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.ingress.enabled .Values.networkPolicy.metrics.enabled .Values.networkPolicy.ingressRules.accessOnlyFrom.enabled) }} 2 | apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }} 3 | kind: NetworkPolicy 4 | metadata: 5 | name: {{ printf "%s-ingress" (include "common.names.fullname" .) }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | {{- if .Values.commonAnnotations }} 12 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 13 | {{- end }} 14 | spec: 15 | podSelector: 16 | matchLabels: 17 | {{- include "common.labels.standard" . | nindent 6 }} 18 | ingress: 19 | {{- if and .Values.ingress.enabled .Values.networkPolicy.ingress.enabled (or .Values.networkPolicy.ingress.namespaceSelector .Values.networkPolicy.ingress.podSelector) }} 20 | - from: 21 | {{- if .Values.networkPolicy.ingress.namespaceSelector }} 22 | - namespaceSelector: 23 | matchLabels: 24 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingress.namespaceSelector "context" $) | nindent 14 }} 25 | {{- end }} 26 | {{- if .Values.networkPolicy.ingress.podSelector }} 27 | - podSelector: 28 | matchLabels: 29 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingress.podSelector "context" $) | nindent 14 }} 30 | {{- end }} 31 | {{- end }} 32 | {{- if and .Values.metrics.enabled .Values.networkPolicy.metrics.enabled (or .Values.networkPolicy.metrics.namespaceSelector .Values.networkPolicy.metrics.podSelector) }} 33 | - from: 34 | {{- if .Values.networkPolicy.metrics.namespaceSelector }} 35 | - namespaceSelector: 36 | matchLabels: 37 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.namespaceSelector "context" $) | nindent 14 }} 38 | {{- end }} 39 | {{- if .Values.networkPolicy.metrics.podSelector }} 40 | - podSelector: 41 | matchLabels: 42 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.metrics.podSelector "context" $) | nindent 14 }} 43 | {{- end }} 44 | {{- end }} 45 | {{- if and .Values.networkPolicy.ingressRules.accessOnlyFrom.enabled (or .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector) }} 46 | - from: 47 | {{- if .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector }} 48 | - namespaceSelector: 49 | matchLabels: 50 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.accessOnlyFrom.namespaceSelector "context" $) | nindent 14 }} 51 | {{- end }} 52 | {{- if .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector }} 53 | - podSelector: 54 | matchLabels: 55 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.accessOnlyFrom.podSelector "context" $) | nindent 14 }} 56 | {{- end }} 57 | {{- end }} 58 | {{- if .Values.networkPolicy.ingressRules.customRules }} 59 | {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.customRules "context" $) | nindent 4 }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /archived/unpubd/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "common.names.fullname" . }} 5 | namespace: {{ .Release.Namespace | quote }} 6 | labels: 7 | {{- include "unpubd.labels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.replicaCount }} 10 | selector: 11 | matchLabels: 12 | {{- include "unpubd.selectorLabels" . | nindent 6 }} 13 | 14 | {{- if .Values.updateStrategy }} 15 | strategy: {{- toYaml .Values.updateStrategy | nindent 4 }} 16 | {{- end }} 17 | template: 18 | metadata: 19 | {{- with .Values.podAnnotations }} 20 | annotations: 21 | {{- toYaml . | nindent 8 }} 22 | {{- end }} 23 | labels: 24 | {{- include "unpubd.selectorLabels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | securityContext: 31 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.securityContext | nindent 12 }} 36 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 37 | imagePullPolicy: {{ .Values.image.pullPolicy }} 38 | env: 39 | - name: UNPUBD_PORT 40 | value: '8080' 41 | - name: MONGO_HOST 42 | value: {{ include "unpubd.databaseHost" . | quote }} 43 | - name: MONGO_PORT 44 | value: {{ include "unpubd.databasePort" . | quote }} 45 | - name: MONGO_DATABASE 46 | value: {{ include "unpubd.databaseName" . | quote }} 47 | - name: MONGO_ROOT_USERNAME 48 | value: {{ include "unpubd.databaseRootUser" . | quote }} 49 | - name: MONGO_ROOT_PASSWORD 50 | valueFrom: 51 | secretKeyRef: 52 | name: {{ include "unpubd.databaseSecretName" . }} 53 | key: mongodb-root-password 54 | - name: TZ 55 | value: {{ .Values.tz }} 56 | ports: 57 | - name: http 58 | containerPort: 8080 59 | protocol: TCP 60 | {{- if .Values.customLivenessProbe }} 61 | livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }} 62 | {{- else if .Values.livenessProbe.enabled }} 63 | livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }} 64 | {{- end }} 65 | {{- if .Values.customReadinessProbe }} 66 | readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }} 67 | {{- else if .Values.readinessProbe.enabled }} 68 | readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled") "context" $) | nindent 12 }} 69 | {{- end }} 70 | {{- if .Values.customStartupProbe }} 71 | startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }} 72 | {{- else if .Values.startupProbe.enabled }} 73 | startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.startupProbe "enabled") "context" $) | nindent 12 }} 74 | {{- end }} 75 | {{- if .Values.resources }} 76 | resources: {{- toYaml .Values.resources | nindent 12 }} 77 | {{- end }} 78 | {{- with .Values.nodeSelector }} 79 | nodeSelector: 80 | {{- toYaml . | nindent 8 }} 81 | {{- end }} 82 | {{- with .Values.affinity }} 83 | affinity: 84 | {{- toYaml . | nindent 8 }} 85 | {{- end }} 86 | {{- with .Values.tolerations }} 87 | tolerations: 88 | {{- toYaml . | nindent 8 }} 89 | {{- end }} 90 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/linux,osx 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=linux,osx 4 | 5 | ### Linux ### 6 | *~ 7 | 8 | # temporary files which can be created if a process still has a handle open of a deleted file 9 | .fuse_hidden* 10 | 11 | # KDE directory preferences 12 | .directory 13 | 14 | # Linux trash folder which might appear on any partition or disk 15 | .Trash-* 16 | 17 | # .nfs files are created when an open file is removed but is still being accessed 18 | .nfs* 19 | 20 | ### OSX ### 21 | # General 22 | .DS_Store 23 | .AppleDouble 24 | .LSOverride 25 | 26 | # Icon must end with two \r 27 | Icon 28 | 29 | # Thumbnails 30 | ._* 31 | 32 | # Files that might appear in the root of a volume 33 | .DocumentRevisions-V100 34 | .fseventsd 35 | .Spotlight-V100 36 | .TemporaryItems 37 | .Trashes 38 | .VolumeIcon.icns 39 | .com.apple.timemachine.donotpresent 40 | 41 | # Directories potentially created on remote AFP share 42 | .AppleDB 43 | .AppleDesktop 44 | Network Trash Folder 45 | Temporary Items 46 | .apdisk 47 | 48 | # End of https://www.toptal.com/developers/gitignore/api/linux,osx 49 | 50 | 51 | # Created by https://www.toptal.com/developers/gitignore/api/phpstorm+all 52 | # Edit at https://www.toptal.com/developers/gitignore?templates=phpstorm+all 53 | 54 | ### PhpStorm+all ### 55 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 56 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 57 | 58 | # User-specific stuff 59 | .idea/**/workspace.xml 60 | .idea/**/tasks.xml 61 | .idea/**/usage.statistics.xml 62 | .idea/**/dictionaries 63 | .idea/**/shelf 64 | 65 | # Generated files 66 | .idea/**/contentModel.xml 67 | 68 | # Sensitive or high-churn files 69 | .idea/**/dataSources/ 70 | .idea/**/dataSources.ids 71 | .idea/**/dataSources.local.xml 72 | .idea/**/sqlDataSources.xml 73 | .idea/**/dynamic.xml 74 | .idea/**/uiDesigner.xml 75 | .idea/**/dbnavigator.xml 76 | 77 | # Gradle 78 | .idea/**/gradle.xml 79 | .idea/**/libraries 80 | 81 | # Gradle and Maven with auto-import 82 | # When using Gradle or Maven with auto-import, you should exclude module files, 83 | # since they will be recreated, and may cause churn. Uncomment if using 84 | # auto-import. 85 | # .idea/artifacts 86 | # .idea/compiler.xml 87 | # .idea/jarRepositories.xml 88 | # .idea/modules.xml 89 | # .idea/*.iml 90 | # .idea/modules 91 | # *.iml 92 | # *.ipr 93 | 94 | # CMake 95 | cmake-build-*/ 96 | 97 | # Mongo Explorer plugin 98 | .idea/**/mongoSettings.xml 99 | 100 | # File-based project format 101 | *.iws 102 | 103 | # IntelliJ 104 | out/ 105 | 106 | # mpeltonen/sbt-idea plugin 107 | .idea_modules/ 108 | 109 | # JIRA plugin 110 | atlassian-ide-plugin.xml 111 | 112 | # Cursive Clojure plugin 113 | .idea/replstate.xml 114 | 115 | # Crashlytics plugin (for Android Studio and IntelliJ) 116 | com_crashlytics_export_strings.xml 117 | crashlytics.properties 118 | crashlytics-build.properties 119 | fabric.properties 120 | 121 | # Editor-based Rest Client 122 | .idea/httpRequests 123 | 124 | # Android studio 3.1+ serialized cache file 125 | .idea/caches/build_file_checksums.ser 126 | 127 | ### PhpStorm+all Patch ### 128 | # Ignores the whole .idea folder and all .iml files 129 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 130 | 131 | .idea/ 132 | 133 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 134 | 135 | *.iml 136 | modules.xml 137 | .idea/misc.xml 138 | *.ipr 139 | 140 | # Sonarlint plugin 141 | .idea/sonarlint 142 | 143 | # End of https://www.toptal.com/developers/gitignore/api/phpstorm+all 144 | 145 | 146 | # Created by https://www.toptal.com/developers/gitignore/api/helm 147 | # Edit at https://www.toptal.com/developers/gitignore?templates=helm 148 | 149 | ### Helm ### 150 | # Chart dependencies 151 | **/charts/*.tgz 152 | 153 | # End of https://www.toptal.com/developers/gitignore/api/helm 154 | -------------------------------------------------------------------------------- /charts/nominatim/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Return the proper Nominatim image name 3 | */}} 4 | {{- define "nominatim.image" -}} 5 | {{- include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) -}} 6 | {{- end -}} 7 | 8 | {{/* 9 | Return the proper image name (for the init container volume-permissions image) 10 | */}} 11 | {{- define "nominatim.volumePermissions.image" -}} 12 | {{- include "common.images.image" ( dict "imageRoot" .Values.volumePermissions.image "global" .Values.global ) -}} 13 | {{- end -}} 14 | 15 | {{/* 16 | Return the proper Docker Image Registry Secret Names 17 | */}} 18 | {{- define "nominatim.imagePullSecrets" -}} 19 | {{- include "common.images.pullSecrets" (dict "images" (list .Values.image) "global" .Values.global) -}} 20 | {{- end -}} 21 | 22 | {{/* 23 | Create the name of the service account to use 24 | */}} 25 | {{- define "nominatim.serviceAccountName" -}} 26 | {{- if .Values.serviceAccount.create -}} 27 | {{ default (include "common.names.fullname" .) .Values.serviceAccount.name }} 28 | {{- else -}} 29 | {{ default "default" .Values.serviceAccount.name }} 30 | {{- end -}} 31 | {{- end -}} 32 | 33 | {{/* 34 | Create a default fully qualified postgresql name. 35 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 36 | */}} 37 | {{- define "nominatim.postgresql.fullname" -}} 38 | {{- $name := default "postgresql" .Values.postgresql.nameOverride -}} 39 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 40 | {{- end -}} 41 | 42 | {{/* 43 | Add environment variables to configure database values 44 | */}} 45 | {{- define "nominatim.database" -}} 46 | {{- ternary (include "nominatim.postgresql.fullname" .) .Values.externalDatabase.host .Values.postgresql.enabled | quote -}} 47 | {{- end -}} 48 | 49 | {{- define "nominatim.databaseHost" -}} 50 | {{- if .Values.postgresql.enabled }} 51 | {{- printf "%s" (include "nominatim.postgresql.fullname" .) -}} 52 | {{- else -}} 53 | {{- printf "%s" .Values.externalDatabase.host -}} 54 | {{- end -}} 55 | {{- end -}} 56 | 57 | {{- define "nominatim.databasePort" -}} 58 | {{- if .Values.postgresql.enabled }} 59 | {{- printf "%d" (.Values.postgresql.primary.service.ports.postgresql | int ) -}} 60 | {{- else -}} 61 | {{- printf "%d" (.Values.externalDatabase.port | int ) -}} 62 | {{- end -}} 63 | {{- end -}} 64 | 65 | 66 | {{- define "nominatim.databaseName" -}} 67 | {{- if .Values.postgresql.enabled }} 68 | {{- "nominatim" -}} 69 | {{- else -}} 70 | {{- printf "%s" .Values.externalDatabase.databaseName -}} 71 | {{- end -}} 72 | {{- end -}} 73 | 74 | {{- define "nominatim.databaseUser" -}} 75 | {{- if .Values.postgresql.enabled }} 76 | {{- "postgres" -}} 77 | {{- else -}} 78 | {{- printf "%s" .Values.externalDatabase.user -}} 79 | {{- end -}} 80 | {{- end -}} 81 | 82 | {{- define "nominatim.databasePassword" -}} 83 | {{- if .Values.postgresql.enabled }} 84 | {{- printf "%s" .Values.postgresql.auth.postgresPassword -}} 85 | {{- else -}} 86 | {{- printf "%s" .Values.externalDatabase.password -}} 87 | {{- end -}} 88 | {{- end -}} 89 | 90 | 91 | {{/* 92 | Create the database DSN. 93 | */}} 94 | {{- define "nominatim.databaseDSN" -}} 95 | pgsql:dbname={{ include "nominatim.databaseName" . }};host={{ include "nominatim.databaseHost" . }};port={{ include "nominatim.databasePort" . }};user={{ include "nominatim.databaseUser" . }};password={{ include "nominatim.databasePassword" . }} 96 | {{- end }} 97 | 98 | {{- define "nominatim.containerPort" -}} 99 | {{- ternary 80 8080 .Values.nominatimUi.enabled -}} 100 | {{- end }} 101 | 102 | {{- define "nominatim.uiUrl" -}} 103 | {{- printf "https://github.com/osm-search/nominatim-ui/releases/download/v%s/nominatim-ui-%s.tar.gz" .Values.nominatimUi.version .Values.nominatimUi.version }} 104 | {{- end }} 105 | 106 | {{/* 107 | Create user agent string for curl 108 | */}} 109 | {{- define "chart.userAgent" -}} 110 | {{- printf "%s/%s:%s" .Chart.Annotations.Repository .Chart.Name .Chart.Version }} 111 | {{- end }} 112 | -------------------------------------------------------------------------------- /archived/unpubd/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "unpubd.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 "unpubd.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 a default fully qualified app name. 28 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 29 | */}} 30 | {{- define "unpubd.mongodb.fullname" -}} 31 | {{- include "common.names.dependency.fullname" (dict "chartName" "mongodb" "chartValues" .Values.mongodb "context" $) -}} 32 | {{- end -}} 33 | 34 | {{/* 35 | Create chart name and version as used by the chart label. 36 | */}} 37 | {{- define "unpubd.chart" -}} 38 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 39 | {{- end }} 40 | 41 | {{/* 42 | Common labels 43 | */}} 44 | {{- define "unpubd.labels" -}} 45 | helm.sh/chart: {{ include "unpubd.chart" . }} 46 | {{ include "unpubd.selectorLabels" . }} 47 | {{- if .Chart.AppVersion }} 48 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 49 | {{- end }} 50 | app.kubernetes.io/managed-by: {{ .Release.Service }} 51 | {{- end }} 52 | 53 | {{/* 54 | Selector labels 55 | */}} 56 | {{- define "unpubd.selectorLabels" -}} 57 | app.kubernetes.io/name: {{ include "unpubd.name" . }} 58 | app.kubernetes.io/instance: {{ .Release.Name }} 59 | {{- end }} 60 | 61 | 62 | 63 | {{/* 64 | Return the MongoDB Hostname 65 | */}} 66 | {{- define "unpubd.databaseHost" -}} 67 | {{- if .Values.mongodb.enabled }} 68 | {{- if eq .Values.mongodb.architecture "replication" }} 69 | {{- printf "%s-primary" (include "unpubd.mongodb.fullname" .) | trunc 63 | trimSuffix "-" -}} 70 | {{- else -}} 71 | {{- printf "%s" (include "unpubd.mongodb.fullname" .) -}} 72 | {{- end -}} 73 | {{- else -}} 74 | {{- printf "%s" .Values.externalDatabase.host -}} 75 | {{- end -}} 76 | {{- end -}} 77 | 78 | {{/* 79 | Return the MongoDB Port 80 | */}} 81 | {{- define "unpubd.databasePort" -}} 82 | {{- if .Values.mongodb.enabled }} 83 | {{- printf "27017" -}} 84 | {{- else -}} 85 | {{- printf "%d" (.Values.externalDatabase.port | int ) -}} 86 | {{- end -}} 87 | {{- end -}} 88 | 89 | {{/* 90 | Return the MongoDB Database Name 91 | */}} 92 | {{- define "unpubd.databaseName" -}} 93 | {{- if .Values.mongodb.enabled }} 94 | {{- printf "%s" .Values.mongodb.auth.database -}} 95 | {{- else -}} 96 | {{- printf "%s" .Values.externalDatabase.database -}} 97 | {{- end -}} 98 | {{- end -}} 99 | 100 | {{/* 101 | Return the MongoDB User 102 | */}} 103 | {{- define "unpubd.databaseUser" -}} 104 | {{- if .Values.mongodb.enabled }} 105 | {{- printf "%s" .Values.mongodb.auth.username -}} 106 | {{- else -}} 107 | {{- printf "%s" .Values.externalDatabase.user -}} 108 | {{- end -}} 109 | {{- end -}} 110 | {{/* 111 | Return the MongoDB User 112 | */}} 113 | {{- define "unpubd.databaseRootUser" -}} 114 | {{- if .Values.mongodb.enabled }} 115 | {{- printf "%s" .Values.mongodb.auth.rootUser -}} 116 | {{- else -}} 117 | {{- printf "%s" .Values.externalDatabase.rootUser -}} 118 | {{- end -}} 119 | {{- end -}} 120 | 121 | {{/* 122 | Return the MongoDB Secret Name 123 | */}} 124 | {{- define "unpubd.databaseSecretName" -}} 125 | {{- if .Values.mongodb.enabled }} 126 | {{- if .Values.mongodb.auth.existingSecret -}} 127 | {{- printf "%s" .Values.mongodb.auth.existingSecret -}} 128 | {{- else -}} 129 | {{- printf "%s" (include "unpubd.mongodb.fullname" .) -}} 130 | {{- end -}} 131 | {{- else if .Values.externalDatabase.existingSecret -}} 132 | {{- include "common.tplvalues.render" (dict "value" .Values.externalDatabase.existingSecret "context" $) -}} 133 | {{- else -}} 134 | {{- printf "%s-externaldb" (include "common.names.fullname" .) -}} 135 | {{- end -}} 136 | {{- end -}} 137 | -------------------------------------------------------------------------------- /archived/shopware/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | CHART NAME: {{ .Chart.Name }} 2 | CHART VERSION: {{ .Chart.Version }} 3 | APP VERSION: {{ .Chart.AppVersion }} 4 | 5 | ** Please be patient while the chart is being deployed ** 6 | 7 | Your Shopware site can be accessed through the following DNS name from within your cluster: 8 | 9 | {{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} (port {{ .Values.service.port }}) 10 | 11 | To access your Shopware site from outside the cluster follow the steps below: 12 | 13 | {{- if .Values.ingress.enabled }} 14 | 15 | 1. Get the Shopware URL and associate Shopware hostname to your cluster external IP: 16 | 17 | export CLUSTER_IP=$(minikube ip) # On Minikube. Use: `kubectl cluster-info` on others K8s clusters 18 | echo "Shopware URL: http{{ if .Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }}/" 19 | echo "$CLUSTER_IP {{ .Values.ingress.hostname }}" | sudo tee -a /etc/hosts 20 | 21 | {{- else }} 22 | {{- $port := .Values.service.port | toString }} 23 | 24 | 1. Get the Shopware URL by running these commands: 25 | 26 | {{- if contains "NodePort" .Values.service.type }} 27 | 28 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "common.names.fullname" . }}) 29 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 30 | echo "Shopware URL: http://$NODE_IP:$NODE_PORT/" 31 | echo "Shopware Admin URL: http://$NODE_IP:$NODE_PORT/admin" 32 | 33 | {{- else if contains "LoadBalancer" .Values.service.type }} 34 | 35 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 36 | Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "common.names.fullname" . }}' 37 | 38 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 39 | echo "Shopware URL: http://$SERVICE_IP{{- if ne $port "80" }}:{{ .Values.service.port }}{{ end }}/" 40 | echo "Shopware Admin URL: http://$SERVICE_IP{{- if ne $port "80" }}:{{ .Values.service.port }}{{ end }}/admin" 41 | 42 | {{- else if contains "ClusterIP" .Values.service.type }} 43 | 44 | kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "common.names.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }} & 45 | echo "Shopware URL: http://127.0.0.1{{- if ne $port "80" }}:{{ .Values.service.port }}{{ end }}//" 46 | echo "Shopware Admin URL: http://127.0.0.1{{- if ne $port "80" }}:{{ .Values.service.port }}{{ end }}//admin" 47 | 48 | {{- end }} 49 | {{- end }} 50 | 51 | 2. Open a browser and access Shopware using the obtained URL. 52 | 53 | 3. Login with the following credentials below to see your blog: 54 | 55 | echo Username: {{ .Values.shopwareUsername }} 56 | echo Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} -o jsonpath="{.data.INSTALL_ADMIN_PASSWORD}" | base64 --decode) 57 | 58 | {{- if .Values.metrics.enabled }} 59 | 60 | You can access Apache Prometheus metrics following the steps below: 61 | 62 | 1. Get the Apache Prometheus metrics URL by running: 63 | 64 | kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ printf "%s-metrics" (include "common.names.fullname" .) }} {{ .Values.metrics.service.port }}:{{ .Values.metrics.service.port }} & 65 | echo "Apache Prometheus metrics URL: http://127.0.0.1:{{ .Values.metrics.service.port }}/metrics" 66 | 67 | 2. Open a browser and access Apache Prometheus metrics using the obtained URL. 68 | 69 | {{- end }} 70 | 71 | {{- include "shopware.validateValues" . }} 72 | {{- include "common.warnings.rollingTag" .Values.image }} 73 | {{- include "common.warnings.rollingTag" .Values.metrics.image }} 74 | {{- include "common.warnings.rollingTag" .Values.volumePermissions.image }} 75 | {{- $passwordValidationErrors := list -}} 76 | {{- $secretName := include "shopware.secretName" . -}} 77 | {{- if .Values.mariadb.enabled }} 78 | {{- $mariadbSecretName := include "shopware.databaseSecretName" . -}} 79 | {{- $mariadbPasswordValidationErrors := include "common.validations.values.mariadb.passwords" (dict "secret" $mariadbSecretName "subchart" true "context" $) -}} 80 | {{- $passwordValidationErrors = append $passwordValidationErrors $mariadbPasswordValidationErrors -}} 81 | {{- end }} 82 | {{- include "common.errors.upgrade.passwords.empty" (dict "validationErrors" $passwordValidationErrors "context" $) -}} 83 | -------------------------------------------------------------------------------- /archived/kirby3/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ template "trackableappname" . }} 5 | annotations: 6 | {{ if .Values.gitlab.app }}app.gitlab.com/app: {{ .Values.gitlab.app | quote }}{{ end }} 7 | {{ if .Values.gitlab.env }}app.gitlab.com/env: {{ .Values.gitlab.env | quote }}{{ end }} 8 | labels: 9 | track: "{{ .Values.application.track }}" 10 | tier: "{{ .Values.application.tier }}" 11 | {{ include "sharedlabels" . | indent 4 }} 12 | spec: 13 | selector: 14 | matchLabels: 15 | app: {{ template "appname" . }} 16 | track: "{{ .Values.application.track }}" 17 | tier: "{{ .Values.application.tier }}" 18 | release: {{ .Release.Name }} 19 | replicas: {{ .Values.replicaCount }} 20 | {{- if .Values.strategyType }} 21 | strategy: 22 | type: {{ .Values.strategyType | quote }} 23 | {{- end }} 24 | template: 25 | metadata: 26 | annotations: 27 | checksum/application-secrets: "{{ .Values.application.secretChecksum }}" 28 | {{ if .Values.gitlab.app }}app.gitlab.com/app: {{ .Values.gitlab.app | quote }}{{ end }} 29 | {{ if .Values.gitlab.env }}app.gitlab.com/env: {{ .Values.gitlab.env | quote }}{{ end }} 30 | {{- if .Values.podAnnotations }} 31 | {{ toYaml .Values.podAnnotations | indent 8 }} 32 | {{- end }} 33 | labels: 34 | track: "{{ .Values.application.track }}" 35 | tier: "{{ .Values.application.tier }}" 36 | {{ include "sharedlabels" . | indent 8 }} 37 | spec: 38 | securityContext: 39 | fsGroup: 33 # www-data 40 | {{- if .Values.serviceAccountName }} 41 | serviceAccountName: {{ .Values.serviceAccountName | quote }} 42 | {{- end }} 43 | imagePullSecrets: 44 | {{ toYaml .Values.image.secrets | indent 10 }} 45 | containers: 46 | - name: {{ .Chart.Name }} 47 | image: {{ template "imagename" . }} 48 | imagePullPolicy: {{ .Values.image.pullPolicy }} 49 | {{- if .Values.application.secretName }} 50 | envFrom: 51 | - secretRef: 52 | name: {{ .Values.application.secretName }} 53 | {{- end }} 54 | env: 55 | - name: DATABASE_URL 56 | value: {{ .Values.application.database_url | quote }} 57 | - name: GITLAB_ENVIRONMENT_NAME 58 | value: {{ .Values.gitlab.envName | quote }} 59 | - name: GITLAB_ENVIRONMENT_URL 60 | value: {{ .Values.gitlab.envURL | quote }} 61 | ports: 62 | - name: "{{ .Values.service.name }}" 63 | containerPort: {{ .Values.service.internalPort }} 64 | livenessProbe: 65 | {{- if eq .Values.livenessProbe.probeType "httpGet" }} 66 | httpGet: 67 | path: {{ .Values.livenessProbe.path }} 68 | scheme: {{ .Values.livenessProbe.scheme }} 69 | port: {{ .Values.service.internalPort }} 70 | {{- else if eq .Values.livenessProbe.probeType "tcpSocket" }} 71 | tcpSocket: 72 | port: {{ .Values.service.internalPort }} 73 | {{- else if eq .Values.livenessProbe.probeType "exec" }} 74 | exec: 75 | command: 76 | {{ toYaml .Values.livenessProbe.command | indent 14 }} 77 | {{- end }} 78 | initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} 79 | timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} 80 | readinessProbe: 81 | {{- if eq .Values.readinessProbe.probeType "httpGet" }} 82 | httpGet: 83 | path: {{ .Values.readinessProbe.path }} 84 | scheme: {{ .Values.readinessProbe.scheme }} 85 | port: {{ .Values.service.internalPort }} 86 | {{- else if eq .Values.readinessProbe.probeType "tcpSocket" }} 87 | tcpSocket: 88 | port: {{ .Values.service.internalPort }} 89 | {{- else if eq .Values.readinessProbe.probeType "exec" }} 90 | exec: 91 | command: 92 | {{ toYaml .Values.readinessProbe.command | indent 14 }} 93 | {{- end }} 94 | initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} 95 | timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} 96 | resources: 97 | {{ toYaml .Values.resources | indent 12 }} 98 | volumeMounts: 99 | - name: data 100 | mountPath: /var/www/html/content 101 | subPath: content 102 | - name: data 103 | mountPath: /var/www/html/storage 104 | subPath: storage 105 | volumes: 106 | - name: data 107 | persistentVolumeClaim: 108 | claimName: {{ include "fullname" . }} 109 | -------------------------------------------------------------------------------- /charts/futtertrog/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "futtertrog.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 "futtertrog.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 a default fully qualified app name. 28 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 29 | */}} 30 | {{- define "futtertrog.mariadb.fullname" -}} 31 | {{- printf "%s-mariadb" .Release.Name | trunc 63 | trimSuffix "-" -}} 32 | {{- end -}} 33 | 34 | {{/* 35 | Create chart name and version as used by the chart label. 36 | */}} 37 | {{- define "futtertrog.chart" -}} 38 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 39 | {{- end }} 40 | 41 | {{/* 42 | Common labels 43 | */}} 44 | {{- define "futtertrog.labels" -}} 45 | helm.sh/chart: {{ include "futtertrog.chart" . }} 46 | {{ include "futtertrog.selectorLabels" . }} 47 | {{- if .Chart.AppVersion }} 48 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 49 | {{- end }} 50 | app.kubernetes.io/managed-by: {{ .Release.Service }} 51 | {{- end }} 52 | 53 | {{/* 54 | Selector labels 55 | */}} 56 | {{- define "futtertrog.selectorLabels" -}} 57 | app.kubernetes.io/name: {{ include "futtertrog.name" . }} 58 | app.kubernetes.io/instance: {{ .Release.Name }} 59 | {{- end }} 60 | 61 | {{/* 62 | Create the name of the service account to use 63 | */}} 64 | {{- define "futtertrog.serviceAccountName" -}} 65 | {{- if .Values.serviceAccount.create }} 66 | {{- default (include "futtertrog.fullname" .) .Values.serviceAccount.name }} 67 | {{- else }} 68 | {{- default "default" .Values.serviceAccount.name }} 69 | {{- end }} 70 | {{- end }} 71 | 72 | {{/* 73 | Return the MariaDB Hostname 74 | */}} 75 | {{- define "futtertrog.databaseHost" -}} 76 | {{- if .Values.mariadb.enabled }} 77 | {{- if eq .Values.mariadb.architecture "replication" }} 78 | {{- printf "%s-primary" (include "futtertrog.mariadb.fullname" .) | trunc 63 | trimSuffix "-" -}} 79 | {{- else -}} 80 | {{- printf "%s" (include "futtertrog.mariadb.fullname" .) -}} 81 | {{- end -}} 82 | {{- else -}} 83 | {{- printf "%s" .Values.externalDatabase.host -}} 84 | {{- end -}} 85 | {{- end -}} 86 | 87 | {{/* 88 | Return the MariaDB Port 89 | */}} 90 | {{- define "futtertrog.databasePort" -}} 91 | {{- if .Values.mariadb.enabled }} 92 | {{- printf "3306" -}} 93 | {{- else -}} 94 | {{- printf "%d" (.Values.externalDatabase.port | int ) -}} 95 | {{- end -}} 96 | {{- end -}} 97 | 98 | {{/* 99 | Return the MariaDB Database Name 100 | */}} 101 | {{- define "futtertrog.databaseName" -}} 102 | {{- if .Values.mariadb.enabled }} 103 | {{- printf "%s" .Values.mariadb.auth.database -}} 104 | {{- else -}} 105 | {{- printf "%s" .Values.externalDatabase.database -}} 106 | {{- end -}} 107 | {{- end -}} 108 | 109 | {{/* 110 | Return the MariaDB User 111 | */}} 112 | {{- define "futtertrog.databaseUser" -}} 113 | {{- if .Values.mariadb.enabled }} 114 | {{- printf "%s" .Values.mariadb.auth.username -}} 115 | {{- else -}} 116 | {{- printf "%s" .Values.externalDatabase.user -}} 117 | {{- end -}} 118 | {{- end -}} 119 | 120 | {{/* 121 | Return the MariaDB Password 122 | */}} 123 | {{- define "futtertrog.databasePassword" -}} 124 | {{- if .Values.mariadb.enabled }} 125 | {{- printf "%s" .Values.mariadb.auth.password -}} 126 | {{- else -}} 127 | {{- printf "%s" .Values.externalDatabase.password -}} 128 | {{- end -}} 129 | {{- end -}} 130 | 131 | {{/* 132 | Create the database URL. For the time being, this supports only an integrated MySQL 133 | */}} 134 | {{- define "futtertrog.databaseUrl" -}} 135 | mysql://{{ include "futtertrog.databaseUser" . }}:{{ include "futtertrog.databasePassword" . }}@{{ include "futtertrog.databaseHost" . }}/{{ include "futtertrog.databaseName" . }} 136 | {{- end }} 137 | 138 | {{/* 139 | Get a hostname from URL 140 | */}} 141 | {{- define "hostname" -}} 142 | {{- . | trimPrefix "http://" | trimPrefix "https://" | trimSuffix "/" | trim | quote -}} 143 | {{- end -}} -------------------------------------------------------------------------------- /archived/shopware/templates/task-runner-deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.taskRunner.enabled }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ printf "%s-task-runner" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | "helm.sh/hook": "post-install,post-upgrade" 13 | "helm.sh/hook-weight": "30" 14 | {{- if .Values.commonAnnotations }} 15 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 16 | {{- end }} 17 | spec: 18 | selector: 19 | matchLabels: 20 | {{- include "common.labels.matchLabels" . | nindent 6 }} 21 | role: task-runner 22 | replicas: {{ .Values.taskRunner.replicaCount }} 23 | template: 24 | metadata: 25 | labels: 26 | {{- include "common.labels.matchLabels" . | nindent 8 }} 27 | role: task-runner 28 | {{- if .Values.podLabels }} 29 | {{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }} 30 | {{- end }} 31 | {{- if .Values.podAnnotations }} 32 | annotations: 33 | {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }} 34 | {{- end }} 35 | spec: 36 | {{- include "shopware.imagePullSecrets" . | nindent 6 }} 37 | {{- if .Values.schedulerName }} 38 | schedulerName: {{ .Values.schedulerName | quote }} 39 | {{- end }} 40 | serviceAccountName: {{ .Values.serviceAccountName }} 41 | {{- if .Values.taskRunner.affinity }} 42 | affinity: {{- include "common.tplvalues.render" (dict "value" .Values.taskRunner.affinity "context" $) | nindent 8 }} 43 | {{- else }} 44 | affinity: 45 | podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.taskRunner.podAffinityPreset "context" $) | nindent 10 }} 46 | podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.taskRunner.podAntiAffinityPreset "context" $) | nindent 10 }} 47 | nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.taskRunner.nodeAffinityPreset.type "key" .Values.taskRunner.nodeAffinityPreset.key "values" .Values.taskRunner.nodeAffinityPreset.values) | nindent 10 }} 48 | {{- end }} 49 | {{- if .Values.taskRunner.nodeSelector }} 50 | nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.taskRunner.nodeSelector "context" $) | nindent 8 }} 51 | {{- end }} 52 | {{- if .Values.tolerations }} 53 | tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }} 54 | {{- end }} 55 | {{- if .Values.podSecurityContext.enabled }} 56 | securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }} 57 | {{- end }} 58 | restartPolicy: Always 59 | containers: 60 | - name: task-runner 61 | image: {{ template "shopware.image" . }} 62 | imagePullPolicy: {{ .Values.image.pullPolicy | quote }} 63 | command: [ "bin/console" ] 64 | args: {{- include "common.tplvalues.render" (dict "value" .Values.taskRunner.command "context" $) | nindent 12 }} 65 | {{- if .Values.containerSecurityContext.enabled }} 66 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 67 | {{- end }} 68 | {{- if .Values.containerSecurityContext.enabled }} 69 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 70 | {{- end }} 71 | {{- if .Values.extraEnvVars }} 72 | env: {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} 73 | {{- end }} 74 | envFrom: 75 | - configMapRef: 76 | name: {{ template "common.names.fullname" . }} 77 | - secretRef: 78 | name: {{ template "common.names.fullname" . }} 79 | {{- if .Values.taskRunner.resources }} 80 | resources: {{- toYaml .Values.taskRunner.resources | nindent 12 }} 81 | {{- end }} 82 | volumeMounts: 83 | - mountPath: /var/www/html/config/jwt/ 84 | name: shopware-jwt 85 | - mountPath: /var/www/html/config/packages/ 86 | name: shopware-minio 87 | - mountPath: /var/www/html/custom/plugins 88 | name: shopware-plugins 89 | volumes: 90 | - name: shopware-jwt 91 | secret: 92 | secretName: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 93 | {{- if .Values.minio.enabled }} 94 | - name: shopware-minio 95 | configMap: 96 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 97 | {{- end }} 98 | volumes: 99 | - name: shopware-jwt 100 | secret: 101 | secretName: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 102 | {{- if .Values.minio.enabled }} 103 | - name: shopware-minio 104 | configMap: 105 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 106 | {{- end }} 107 | - name: shopware-plugins 108 | {{- if .Values.persistence.enabled}} 109 | persistentVolumeClaim: 110 | claimName: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} 111 | {{- else }} 112 | emptyDir: {} 113 | {{- end }} 114 | {{- end }} 115 | -------------------------------------------------------------------------------- /archived/shopware/templates/consumer-deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.consumer.enabled }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ printf "%s-consumer" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace | quote }} 7 | labels: {{- include "common.labels.standard" . | nindent 4 }} 8 | {{- if .Values.commonLabels }} 9 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} 10 | {{- end }} 11 | annotations: 12 | "helm.sh/hook": "post-install,post-upgrade" 13 | "helm.sh/hook-weight": "30" 14 | {{- if .Values.commonAnnotations }} 15 | {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 16 | {{- end }} 17 | spec: 18 | selector: 19 | matchLabels: 20 | {{- include "common.labels.matchLabels" . | nindent 6 }} 21 | role: consumer 22 | {{- if .Values.updateStrategy }} 23 | strategy: {{- toYaml .Values.updateStrategy | nindent 4 }} 24 | {{- end }} 25 | {{- if not .Values.consumer.autoscaling.enabled }} 26 | replicas: {{ .Values.consumer.replicaCount }} 27 | {{- end }} 28 | template: 29 | metadata: 30 | labels: 31 | {{- include "common.labels.matchLabels" . | nindent 8 }} 32 | role: consumer 33 | {{- if .Values.podLabels }} 34 | {{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }} 35 | {{- end }} 36 | {{- if or .Values.podAnnotations .Values.metrics.enabled }} 37 | annotations: 38 | {{- if .Values.podAnnotations }} 39 | {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }} 40 | {{- end }} 41 | {{- if .Values.metrics.podAnnotations }} 42 | {{- include "common.tplvalues.render" (dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }} 43 | {{- end }} 44 | {{- end }} 45 | spec: 46 | {{- include "shopware.imagePullSecrets" . | nindent 6 }} 47 | {{- if .Values.schedulerName }} 48 | schedulerName: {{ .Values.schedulerName | quote }} 49 | {{- end }} 50 | serviceAccountName: {{ .Values.serviceAccountName }} 51 | {{- if .Values.consumer.affinity }} 52 | affinity: {{- include "common.tplvalues.render" (dict "value" .Values.consumer.affinity "context" $) | nindent 8 }} 53 | {{- else }} 54 | affinity: 55 | podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.consumer.podAffinityPreset "context" $) | nindent 10 }} 56 | podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.consumer.podAntiAffinityPreset "context" $) | nindent 10 }} 57 | nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.consumer.nodeAffinityPreset.type "key" .Values.consumer.nodeAffinityPreset.key "values" .Values.consumer.nodeAffinityPreset.values) | nindent 10 }} 58 | {{- end }} 59 | {{- if .Values.consumer.nodeSelector }} 60 | nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.consumer.nodeSelector "context" $) | nindent 8 }} 61 | {{- end }} 62 | {{- if .Values.tolerations }} 63 | tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }} 64 | {{- end }} 65 | {{- if .Values.podSecurityContext.enabled }} 66 | securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }} 67 | {{- end }} 68 | containers: 69 | - name: consumer 70 | image: {{ template "shopware.image" . }} 71 | imagePullPolicy: {{ .Values.image.pullPolicy | quote }} 72 | command: ["bin/console"] 73 | args: {{- include "common.tplvalues.render" (dict "value" .Values.consumer.command "context" $) | nindent 12 }} 74 | {{- if .Values.containerSecurityContext.enabled }} 75 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 76 | {{- end }} 77 | {{- if .Values.containerSecurityContext.enabled }} 78 | securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} 79 | {{- end }} 80 | {{- if .Values.extraEnvVars }} 81 | env:{{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} 82 | {{- end }} 83 | lifecycle: 84 | preStop: 85 | exec: 86 | command: 87 | - bin/console 88 | - messenger:stop-workers 89 | envFrom: 90 | - configMapRef: 91 | name: {{ template "common.names.fullname" . }} 92 | - secretRef: 93 | name: {{ template "common.names.fullname" . }} 94 | {{- if .Values.consumer.resources }} 95 | resources: {{- toYaml .Values.consumer.resources | nindent 12 }} 96 | {{- end }} 97 | volumeMounts: 98 | - mountPath: /var/www/html/config/jwt/ 99 | name: shopware-jwt 100 | - mountPath: /var/www/html/config/packages/ 101 | name: shopware-minio 102 | - mountPath: /var/www/html/custom/plugins 103 | name: shopware-plugins 104 | volumes: 105 | - name: shopware-jwt 106 | secret: 107 | secretName: {{ printf "%s-jwt" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 108 | {{- if .Values.minio.enabled }} 109 | - name: shopware-minio 110 | configMap: 111 | name: {{ printf "%s-minio" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 112 | {{- end }} 113 | - name: shopware-plugins 114 | {{- if .Values.persistence.enabled}} 115 | persistentVolumeClaim: 116 | claimName: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} 117 | {{- else }} 118 | emptyDir: {} 119 | {{- end }} 120 | {{- end }} 121 | -------------------------------------------------------------------------------- /archived/shopware/values.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/schema#", 3 | "type": "object", 4 | "properties": { 5 | "shopwareUsername": { 6 | "type": "string", 7 | "title": "Username", 8 | "form": true 9 | }, 10 | "shopwarePassword": { 11 | "type": "string", 12 | "title": "Password", 13 | "form": true, 14 | "description": "Defaults to a random 10-character alphanumeric string if not set" 15 | }, 16 | "shopwareLocale": { 17 | "type": "string", 18 | "title": "Default language", 19 | "form": true 20 | }, 21 | "shopwareCurrency": { 22 | "type": "string", 23 | "title": "Default currency", 24 | "form": true 25 | }, 26 | "shopwareInstanceId": { 27 | "type": "string", 28 | "title": "Instance ID", 29 | "form": true, 30 | "description": "Unique Identifier for the Store: Can be generated with `openssl rand -hex 32`" 31 | }, 32 | "shopwareAppSecret": { 33 | "type": "string", 34 | "title": "Secret", 35 | "form": true, 36 | "description": "Can be generated with `openssl rand -hex 32`" 37 | }, 38 | "mailerUrl": { 39 | "type": "string", 40 | "title": "Mailer URL", 41 | "form": true 42 | }, 43 | "persistence": { 44 | "type": "object", 45 | "properties": { 46 | "size": { 47 | "type": "string", 48 | "title": "Persistent Volume Size", 49 | "form": true, 50 | "render": "slider", 51 | "sliderMin": 1, 52 | "sliderMax": 100, 53 | "sliderUnit": "Gi" 54 | } 55 | } 56 | }, 57 | "mariadb": { 58 | "type": "object", 59 | "title": "MariaDB Details", 60 | "form": true, 61 | "properties": { 62 | "enabled": { 63 | "type": "boolean", 64 | "title": "Use a new MariaDB database hosted in the cluster", 65 | "form": true, 66 | "description": "Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database switch this off and configure the external database details" 67 | }, 68 | "primary": { 69 | "type": "object", 70 | "properties": { 71 | "persistence": { 72 | "type": "object", 73 | "properties": { 74 | "size": { 75 | "type": "string", 76 | "title": "Volume Size", 77 | "form": true, 78 | "hidden": { 79 | "value": false, 80 | "path": "mariadb/enabled" 81 | }, 82 | "render": "slider", 83 | "sliderMin": 1, 84 | "sliderMax": 100, 85 | "sliderUnit": "Gi" 86 | } 87 | } 88 | } 89 | } 90 | } 91 | } 92 | }, 93 | "externalDatabase": { 94 | "type": "object", 95 | "title": "External Database Details", 96 | "description": "If MariaDB is disabled. Use this section to specify the external database details", 97 | "form": true, 98 | "properties": { 99 | "host": { 100 | "type": "string", 101 | "form": true, 102 | "title": "Database Host", 103 | "hidden": "mariadb/enabled" 104 | }, 105 | "user": { 106 | "type": "string", 107 | "form": true, 108 | "title": "Database Username", 109 | "hidden": "mariadb/enabled" 110 | }, 111 | "password": { 112 | "type": "string", 113 | "form": true, 114 | "title": "Database Password", 115 | "hidden": "mariadb/enabled" 116 | }, 117 | "database": { 118 | "type": "string", 119 | "form": true, 120 | "title": "Database Name", 121 | "hidden": "mariadb/enabled" 122 | }, 123 | "port": { 124 | "type": "integer", 125 | "form": true, 126 | "title": "Database Port", 127 | "hidden": "mariadb/enabled" 128 | } 129 | } 130 | }, 131 | "ingress": { 132 | "type": "object", 133 | "form": true, 134 | "title": "Ingress Configuration", 135 | "properties": { 136 | "enabled": { 137 | "type": "boolean", 138 | "form": true, 139 | "title": "Use a custom hostname", 140 | "description": "Enable the ingress resource that allows you to access the Shopware installation." 141 | }, 142 | "hostname": { 143 | "type": "string", 144 | "form": true, 145 | "title": "Hostname", 146 | "hidden": { 147 | "value": false, 148 | "path": "ingress/enabled" 149 | } 150 | }, 151 | "tls": { 152 | "type": "boolean", 153 | "form": true, 154 | "title": "Create a TLS secret", 155 | "hidden": { 156 | "value": false, 157 | "path": "ingress/enabled" 158 | } 159 | } 160 | } 161 | }, 162 | "service": { 163 | "type": "object", 164 | "form": true, 165 | "title": "Service Configuration", 166 | "properties": { 167 | "type": { 168 | "type": "string", 169 | "form": true, 170 | "title": "Service Type", 171 | "description": "Allowed values: \"ClusterIP\", \"NodePort\" and \"LoadBalancer\"" 172 | } 173 | } 174 | }, 175 | "resources": { 176 | "type": "object", 177 | "title": "Required Resources", 178 | "description": "Configure resource requests", 179 | "form": true, 180 | "properties": { 181 | "requests": { 182 | "type": "object", 183 | "properties": { 184 | "memory": { 185 | "type": "string", 186 | "form": true, 187 | "render": "slider", 188 | "title": "Memory Request", 189 | "sliderMin": 10, 190 | "sliderMax": 2048, 191 | "sliderUnit": "Mi" 192 | }, 193 | "cpu": { 194 | "type": "string", 195 | "form": true, 196 | "render": "slider", 197 | "title": "CPU Request", 198 | "sliderMin": 10, 199 | "sliderMax": 2000, 200 | "sliderUnit": "m" 201 | } 202 | } 203 | } 204 | } 205 | }, 206 | "volumePermissions": { 207 | "type": "object", 208 | "properties": { 209 | "enabled": { 210 | "type": "boolean", 211 | "form": true, 212 | "title": "Enable Init Containers", 213 | "description": "Use an init container to set required folder permissions on the data volume before mounting it in the final destination" 214 | } 215 | } 216 | }, 217 | "metrics": { 218 | "type": "object", 219 | "properties": { 220 | "enabled": { 221 | "type": "boolean", 222 | "title": "Enable Metrics", 223 | "description": "Prometheus Exporter / Metrics", 224 | "form": true 225 | } 226 | } 227 | } 228 | } 229 | } 230 | -------------------------------------------------------------------------------- /charts/futtertrog/values.yaml: -------------------------------------------------------------------------------- 1 | ## @param replicaCount Number of Futtertrog replicas to deploy 2 | ## NOTE: ReadWriteMany PVC(s) are required if replicaCount > 1 3 | ## 4 | replicaCount: 1 5 | ## @param updateStrategy.type Futtertrog deployment strategy type 6 | ## @param updateStrategy.rollingUpdate Futtertrog deployment rolling update configuration parameters 7 | ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy 8 | ## updateStrategy: 9 | ## type: RollingUpdate 10 | ## rollingUpdate: 11 | ## maxSurge: 25% 12 | ## maxUnavailable: 25% 13 | ## 14 | updateStrategy: 15 | type: Recreate 16 | 17 | image: 18 | repository: robjuz/futtertrog 19 | pullPolicy: IfNotPresent 20 | # Overrides the image tag whose default is the chart appVersion. 21 | tag: "" 22 | 23 | imagePullSecrets: [] 24 | ## @param nameOverride String to partially override common.names.fullname 25 | ## 26 | nameOverride: 27 | ## @param fullnameOverride String to fully override common.names.fullname 28 | ## 29 | fullnameOverride: 30 | 31 | ## @param appKey The application key 32 | ## 33 | appKey: '' 34 | adminName: Admin 35 | adminEmail: admin@futtertrog.local 36 | adminPassword: changemeplease 37 | 38 | services: 39 | gitlab: 40 | enabled: false 41 | url: '' 42 | clientId: '' 43 | clientSecret: '' 44 | nexmo: 45 | key: '' 46 | secret: '' 47 | vapid: 48 | public_key: '' 49 | private_key: '' 50 | 51 | mealProviders: 52 | holzke: 53 | enabled: false 54 | login: '' 55 | password: '' 56 | cronjob: false 57 | orderInfo: '' 58 | call_a_pizza: 59 | enabled: false 60 | location: '' 61 | categories: 62 | - pizza/pizza-klassiker 63 | - burger 64 | flaschenpost: 65 | enabled: false 66 | zipcode: '' 67 | categories: 68 | - limonade/cola 69 | 70 | mail: 71 | driver: log 72 | host: 73 | port: 74 | username: 75 | password: 76 | encryption: 77 | 78 | ## An array to add extra environment variables on Futtertrog primary containers 79 | extraEnvVars: 80 | - name: APP_NAME 81 | value: "Futtertrog" 82 | 83 | serviceAccount: 84 | # Specifies whether a service account should be created 85 | create: true 86 | # Annotations to add to the service account 87 | annotations: {} 88 | # The name of the service account to use. 89 | # If not set and create is true, a name is generated using the fullname template 90 | name: "" 91 | 92 | podAnnotations: {} 93 | 94 | podSecurityContext: 95 | fsGroup: 33 96 | 97 | securityContext: {} 98 | # capabilities: 99 | # drop: 100 | # - ALL 101 | # readOnlyRootFilesystem: true 102 | # runAsNonRoot: true 103 | # runAsUser: 1000 104 | 105 | service: 106 | type: ClusterIP 107 | port: 80 108 | 109 | ingress: 110 | ## @param ingress.enabled Enable ingress record generation for WordPress 111 | ## 112 | enabled: false 113 | ## @param ingress.certManager Add the corresponding annotations for cert-manager integration 114 | ## 115 | certManager: false 116 | ## @param ingress.annotations Additional custom annotations for the ingress record 117 | ## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added 118 | ## 119 | annotations: {} 120 | ## @param ingress.hostname Default host for the ingress record 121 | ## 122 | hostname: futtertrog.local 123 | ## @param ingress.additionalHosts List of additional hosts for the ingress record 124 | ## 125 | additionalHosts: [] 126 | ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter 127 | ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}` 128 | ## You can: 129 | ## - Use the `ingress.secrets` parameter to create this TLS secret 130 | ## - Relay on cert-manager to create it by setting `ingress.certManager=true` 131 | ## - Relay on Helm to create self-signed certificates by setting `ingress.tls=true` and `ingress.certManager=false` 132 | ## 133 | tls: false 134 | ## @param ingress.secrets Custom TLS certificates as secrets 135 | ## NOTE: 'key' and 'certificate' are expected in PEM format 136 | ## NOTE: 'name' should line up with a 'secretName' set further up 137 | ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates 138 | ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days 139 | ## It is also possible to create and manage the certificates outside of this helm chart 140 | ## Please see README.md for more information 141 | ## e.g: 142 | ## secrets: 143 | ## - name: futtertrog.local-tls 144 | ## key: |- 145 | ## -----BEGIN RSA PRIVATE KEY----- 146 | ## ... 147 | ## -----END RSA PRIVATE KEY----- 148 | ## certificate: |- 149 | ## -----BEGIN CERTIFICATE----- 150 | ## ... 151 | ## -----END CERTIFICATE----- 152 | ## 153 | secrets: [ ] 154 | 155 | resources: 156 | limits: 157 | memory: 150Mi 158 | cpu: 100m 159 | 160 | cron: 161 | resources: 162 | limits: 163 | memory: 150Mi 164 | cpu: 30m 165 | 166 | nodeSelector: {} 167 | 168 | tolerations: [] 169 | 170 | affinity: {} 171 | 172 | ## MariaDB chart configuration 173 | ## ref: https://github.com/bitnami/charts/blob/master/bitnami/mariadb/values.yaml 174 | ## 175 | mariadb: 176 | ## @param mariadb.enabled Deploy a MariaDB server to satisfy the applications database requirements 177 | ## To use an external database set this to false and configure the `externalDatabase.*` parameters 178 | ## 179 | enabled: true 180 | ## @param mariadb.architecture MariaDB architecture. Allowed values: `standalone` or `replication` 181 | ## 182 | architecture: standalone 183 | ## MariaDB Authentication parameters 184 | ## @param mariadb.auth.rootPassword MariaDB root password 185 | ## @param mariadb.auth.database MariaDB custom database 186 | ## @param mariadb.auth.username MariaDB custom user name 187 | ## @param mariadb.auth.password MariaDB custom user password 188 | ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-the-root-password-on-first-run 189 | ## https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run 190 | ## https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run 191 | auth: 192 | rootPassword: changeme 193 | database: futtertrog 194 | username: futtertrog 195 | password: futtertrog 196 | ## MariaDB Primary configuration 197 | ## 198 | primary: 199 | ## MariaDB Primary Persistence parameters 200 | ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ 201 | ## @param mariadb.primary.persistence.enabled Enable persistence on MariaDB using PVC(s) 202 | ## @param mariadb.primary.persistence.storageClass Persistent Volume storage class 203 | ## @param mariadb.primary.persistence.accessModes [array] Persistent Volume access modes 204 | ## @param mariadb.primary.persistence.size Persistent Volume size 205 | ## 206 | persistence: 207 | enabled: true 208 | storageClass: 209 | accessModes: 210 | - ReadWriteOnce 211 | size: 4Gi 212 | ## External Database Configuration 213 | ## All of these values are only used if `mariadb.enabled=false` 214 | ## 215 | externalDatabase: 216 | enabled: false 217 | 218 | ## @param externalDatabase.host External Database server host 219 | ## 220 | host: localhost 221 | ## @param externalDatabase.port External Database server port 222 | ## 223 | port: 3306 224 | ## @param externalDatabase.user External Database username 225 | ## 226 | user: futtertrog 227 | ## @param externalDatabase.password External Database user password 228 | ## 229 | password: "" 230 | ## @param externalDatabase.database External Database database name 231 | ## 232 | database: futtertrog 233 | -------------------------------------------------------------------------------- /charts/kimai2/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | 3 | {{/* 4 | Create a default fully qualified app name. 5 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 6 | */}} 7 | {{- define "kimai.mariadb.fullname" -}} 8 | {{- include "common.names.dependency.fullname" (dict "chartName" "mariadb" "chartValues" .Values.mariadb "context" $) -}} 9 | {{- end -}} 10 | 11 | {{/* 12 | Return the proper Kimai image name 13 | */}} 14 | {{- define "kimai.image" -}} 15 | {{- include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) -}} 16 | {{- end -}} 17 | 18 | {{/* 19 | Return the proper image name (for the init container volume-permissions image) 20 | */}} 21 | {{- define "kimai.volumePermissions.image" -}} 22 | {{- include "common.images.image" ( dict "imageRoot" .Values.volumePermissions.image "global" .Values.global ) -}} 23 | {{- end -}} 24 | 25 | {{/* 26 | Return the proper Docker Image Registry Secret Names 27 | */}} 28 | {{- define "kimai.imagePullSecrets" -}} 29 | {{- include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.volumePermissions.image) "global" .Values.global) -}} 30 | {{- end -}} 31 | 32 | {{/* 33 | Create the name of the service account to use 34 | */}} 35 | {{- define "kimai.serviceAccountName" -}} 36 | {{- if .Values.serviceAccount.create -}} 37 | {{ default (include "common.names.fullname" .) .Values.serviceAccount.name }} 38 | {{- else -}} 39 | {{ default "default" .Values.serviceAccount.name }} 40 | {{- end -}} 41 | {{- end -}} 42 | 43 | 44 | {{/* 45 | Return the kimai Secret Name 46 | */}} 47 | {{- define "kimai.secretName" -}} 48 | {{- if .Values.existingSecret }} 49 | {{- printf "%s" .Values.existingSecret -}} 50 | {{- else -}} 51 | {{- printf "%s" (include "common.names.fullname" .) -}} 52 | {{- end -}} 53 | {{- end -}} 54 | 55 | {{/* 56 | Return the Kimai configuration secret 57 | */}} 58 | {{- define "kimai.configSecretName" -}} 59 | {{- if .Values.configurationFromSecret.secretName -}} 60 | {{- printf "%s" (tpl .Values.configurationFromSecret.secretName $) -}} 61 | {{- else -}} 62 | {{- printf "%s-config" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}} 63 | {{- end -}} 64 | {{- end -}} 65 | 66 | {{/* 67 | Return the Database Hostname 68 | */}} 69 | {{- define "kimai.databaseHost" -}} 70 | {{- if .Values.mariadb.enabled }} 71 | {{- if eq .Values.mariadb.architecture "replication" }} 72 | {{- printf "%s-primary" (include "kimai.mariadb.fullname" .) | trunc 63 | trimSuffix "-" -}} 73 | {{- else -}} 74 | {{- printf "%s" (include "kimai.mariadb.fullname" .) -}} 75 | {{- end -}} 76 | {{- else -}} 77 | {{- printf "%s" .Values.externalDatabase.host -}} 78 | {{- end -}} 79 | {{- end -}} 80 | {{/* 81 | 82 | {{/* 83 | Return the Database Port 84 | */}} 85 | {{- define "kimai.databasePort" -}} 86 | {{- if .Values.mariadb.enabled }} 87 | {{- printf "3306" -}} 88 | {{- else -}} 89 | {{- printf "%d" (.Values.externalDatabase.port | int ) -}} 90 | {{- end -}} 91 | {{- end -}} 92 | 93 | {{/* 94 | Return the Database ServerVersion 95 | */}} 96 | {{- define "kimai.databaseServerVersion" -}} 97 | {{- if .Values.mariadb.enabled }} 98 | {{- printf "%s" (regexReplaceAll "-.*$" .Values.mariadb.image.tag "") -}} 99 | {{- else -}} 100 | {{- .Values.externalDatabase.serverVersion -}} 101 | {{- end -}} 102 | {{- end -}} 103 | 104 | {{/* 105 | Return the Database Name 106 | */}} 107 | {{- define "kimai.databaseName" -}} 108 | {{- if .Values.mariadb.enabled }} 109 | {{- printf "%s" .Values.mariadb.auth.database -}} 110 | {{- else -}} 111 | {{- printf "%s" .Values.externalDatabase.database -}} 112 | {{- end -}} 113 | {{- end -}} 114 | 115 | {{/* 116 | Return the Database User 117 | */}} 118 | {{- define "kimai.databaseUser" -}} 119 | {{- if .Values.mariadb.enabled }} 120 | {{- printf "%s" .Values.mariadb.auth.username -}} 121 | {{- else -}} 122 | {{- printf "%s" .Values.externalDatabase.user -}} 123 | {{- end -}} 124 | {{- end -}} 125 | 126 | {{/* 127 | Return the Database Password 128 | */}} 129 | {{- define "kimai.databasePassword" -}} 130 | {{- if .Values.mariadb.enabled }} 131 | {{- printf "%s" .Values.mariadb.auth.password -}} 132 | {{- else -}} 133 | {{- printf "%s" .Values.externalDatabase.password -}} 134 | {{- end -}} 135 | {{- end -}} 136 | 137 | {{/* 138 | Create the Database URL. For the time being, this supports only an integrated MySQL 139 | */}} 140 | {{- define "kimai.databaseUrl" -}} 141 | mysql://{{ include "kimai.databaseUser" . }}:{{ include "kimai.databasePassword" . }}@{{ include "kimai.databaseHost" . }}/{{ include "kimai.databaseName" . }}?charset=utf8&serverVersion={{ include "kimai.databaseServerVersion" . }} 142 | {{- end }} 143 | 144 | {{/* 145 | Create a default fully qualified app name 146 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 147 | */}} 148 | {{- define "kimai.redis.fullname" -}} 149 | {{- include "common.names.dependency.fullname" (dict "chartName" "redis" "chartValues" .Values.redis "context" $) -}} 150 | {{- end -}} 151 | 152 | {{- define "kimai.redis.host" -}} 153 | {{- ternary (ternary (printf "%s-headless" (include "kimai.redis.fullname" .)) (printf "%s-master" (include "kimai.redis.fullname" .)) .Values.redis.sentinel.enabled) (ternary (printf "%s" .Values.externalRedis.sentinel.hosts) .Values.externalRedis.host .Values.externalRedis.sentinel.enabled) .Values.redis.enabled -}} 154 | {{- end -}} 155 | 156 | {{- define "kimai.redis.port" -}} 157 | {{- ternary (ternary (int64 .Values.redis.sentinel.service.ports.sentinel) "6379" .Values.redis.sentinel.enabled) .Values.externalRedis.port .Values.redis.enabled -}} 158 | {{- end -}} 159 | 160 | {{- define "kimai.redis.sentinel.masterSet" -}} 161 | {{- ternary (ternary (printf "%s" .Values.redis.sentinel.masterSet) ("") .Values.redis.sentinel.enabled) (ternary (printf "%s" .Values.externalRedis.sentinel.masterSet) ("") .Values.externalRedis.sentinel.enabled) .Values.redis.enabled -}} 162 | {{- end -}} 163 | 164 | {{- define "kimai.redis.coreDatabaseIndex" -}} 165 | {{- ternary "0" .Values.externalRedis.coreDatabaseIndex .Values.redis.enabled -}} 166 | {{- end -}} 167 | 168 | {{- define "kimai.redis.jobserviceDatabaseIndex" -}} 169 | {{- ternary "1" .Values.externalRedis.jobserviceDatabaseIndex .Values.redis.enabled -}} 170 | {{- end -}} 171 | 172 | {{- define "kimai.redis.registryDatabaseIndex" -}} 173 | {{- ternary "2" .Values.externalRedis.registryDatabaseIndex .Values.redis.enabled -}} 174 | {{- end -}} 175 | 176 | {{- define "kimai.redis.trivyAdapterDatabaseIndex" -}} 177 | {{- ternary "5" .Values.externalRedis.trivyAdapterDatabaseIndex .Values.redis.enabled -}} 178 | {{- end -}} 179 | 180 | {{/* 181 | Return whether Redis® uses password authentication or not 182 | */}} 183 | {{- define "kimai.redis.auth.enabled" -}} 184 | {{- if or .Values.redis.auth.enabled (and (not .Values.redis.enabled) .Values.externalRedis.password) }} 185 | {{- true -}} 186 | {{- end -}} 187 | {{- end -}} 188 | 189 | {{- define "kimai.redis.rawPassword" -}} 190 | {{- if and (not .Values.redis.enabled) .Values.externalRedis.password -}} 191 | {{- .Values.externalRedis.password -}} 192 | {{- end -}} 193 | {{- if and .Values.redis.enabled .Values.redis.auth.password .Values.redis.auth.enabled -}} 194 | {{- .Values.redis.auth.password -}} 195 | {{- end -}} 196 | {{- end -}} 197 | 198 | {{- define "kimai.redis.escapedRawPassword" -}} 199 | {{- if (include "kimai.redis.rawPassword" . ) -}} 200 | {{- include "kimai.redis.rawPassword" . | urlquery | replace "+" "%20" -}} 201 | {{- end -}} 202 | {{- end -}} 203 | 204 | {{/*the username redis is used for a placeholder as no username needed in redis*/}} 205 | {{- define "kimai.redisUrl" -}} 206 | {{- if and (eq .Values.externalRedis.sentinel.enabled false) (eq .Values.redis.sentinel.enabled false) -}} 207 | {{- if (include "kimai.redis.escapedRawPassword" . ) -}} 208 | {{- printf "redis://default:%s@%s:%s/%s" (include "kimai.redis.escapedRawPassword" . ) (include "kimai.redis.host" . ) (include "kimai.redis.port" . ) (include "kimai.redis.jobserviceDatabaseIndex" . ) -}} 209 | {{- else -}} 210 | {{- printf "redis://%s:%s/%s" (include "kimai.redis.host" .) (include "kimai.redis.port" .) (include "kimai.redis.jobserviceDatabaseIndex" .) -}} 211 | {{- end -}} 212 | {{- else -}} 213 | {{- if (include "kimai.redis.escapedRawPassword" . ) -}} 214 | {{- printf "redis+sentinel://default:%s@%s:%s/%s/%s" (include "kimai.redis.escapedRawPassword" . ) (include "kimai.redis.host" . ) (include "kimai.redis.port" . ) (include "kimai.redis.sentinel.masterSet" . ) (include "kimai.redis.jobserviceDatabaseIndex" . ) -}} 215 | {{- else -}} 216 | {{- printf "redis+sentinel://%s:%s/%s/%s" (include "kimai.redis.host" . ) (include "kimai.redis.port" . ) (include "kimai.redis.sentinel.masterSet" . ) (include "kimai.redis.jobserviceDatabaseIndex" . ) -}} 217 | {{- end -}} 218 | {{- end -}} 219 | {{- end -}} 220 | -------------------------------------------------------------------------------- /charts/nominatim/templates/updatesJob.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.updates.enabled (not .Values.initJob.enabled) }} 2 | apiVersion: {{ include "common.capabilities.cronjob.apiVersion" . }} 3 | kind: CronJob 4 | metadata: 5 | name: {{ printf "%s-updates" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} 8 | app.kubernetes.io/part-of: nominatim 9 | app.kubernetes.io/component: updates 10 | {{- if .Values.commonAnnotations }} 11 | annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} 12 | {{- end }} 13 | spec: 14 | schedule: "{{ .Values.updates.schedule }}" 15 | {{- if .Values.updates.timeZone }} 16 | timeZone: {{ .Values.updates.timeZone }} 17 | {{- end }} 18 | {{- if .Values.updates.startingDeadlineSeconds }} 19 | startingDeadlineSeconds: {{ .Values.updates.startingDeadlineSeconds }} 20 | {{- end }} 21 | {{- if .Values.updates.concurrencyPolicy }} 22 | concurrencyPolicy: {{ .Values.updates.concurrencyPolicy }} 23 | {{- end }} 24 | {{- if .Values.updates.suspend }} 25 | suspend: {{ .Values.updates.suspend }} 26 | {{- end }} 27 | {{- if .Values.updates.successfulJobsHistoryLimit }} 28 | successfulJobsHistoryLimit: {{ .Values.updates.successfulJobsHistoryLimit }} 29 | {{- end }} 30 | {{- if .Values.updates.failedJobsHistoryLimit }} 31 | failedJobsHistoryLimit: {{ .Values.updates.failedJobsHistoryLimit }} 32 | {{- end }} 33 | jobTemplate: 34 | spec: 35 | {{- if .Values.updates.backoffLimit }} 36 | backoffLimit: {{ .Values.updates.backoffLimit }} 37 | {{- end }} 38 | {{- if .Values.updates.activeDeadlineSeconds }} 39 | activeDeadlineSeconds: {{ .Values.updates.activeDeadlineSeconds }} 40 | {{- end }} 41 | {{- if .Values.updates.ttlSecondsAfterFinished }} 42 | ttlSecondsAfterFinished: {{ .Values.updates.ttlSecondsAfterFinished }} 43 | {{- end }} 44 | template: 45 | metadata: 46 | labels: {{- include "common.labels.standard" . | nindent 12 }} 47 | {{- if .Values.updates.podLabels }} 48 | {{- include "common.tplvalues.render" (dict "value" .Values.updates.podLabels "context" $) | nindent 12 }} 49 | {{- end }} 50 | app.kubernetes.io/part-of: nominatim 51 | app.kubernetes.io/component: updates 52 | annotations: 53 | {{- if .Values.updates.podAnnotations }} 54 | {{- include "common.tplvalues.render" (dict "value" .Values.updates.podAnnotations "context" $) | nindent 12 }} 55 | {{- end }} 56 | spec: 57 | {{- include "nominatim.imagePullSecrets" . | nindent 10 }} 58 | {{- if .Values.updates.affinity }} 59 | affinity: {{- include "common.tplvalues.render" (dict "value" .Values.updates.affinity "context" $) | nindent 12 }} 60 | {{- else }} 61 | affinity: 62 | podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.updates.podAffinityPreset "context" $) | nindent 14 }} 63 | podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.updates.podAntiAffinityPreset "context" $) | nindent 14 }} 64 | nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.updates.nodeAffinityPreset.type "key" .Values.updates.nodeAffinityPreset.key "values" .Values.updates.nodeAffinityPreset.values) | nindent 14 }} 65 | {{- end }} 66 | {{- if .Values.updates.nodeSelector }} 67 | nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.updates.nodeSelector "context" $) | nindent 12 }} 68 | {{- end }} 69 | {{- if .Values.updates.tolerations }} 70 | tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.updates.tolerations "context" $) | nindent 12 }} 71 | {{- end }} 72 | {{- if .Values.updates.priorityClassName }} 73 | priorityClassName: {{ .Values.updates.priorityClassName }} 74 | {{- end }} 75 | {{- if .Values.updates.schedulerName }} 76 | schedulerName: {{ .Values.updates.schedulerName | quote }} 77 | {{- end }} 78 | {{- if .Values.updates.podSecurityContext.enabled }} 79 | securityContext: {{- omit .Values.updates.podSecurityContext "enabled" | toYaml | nindent 12 }} 80 | {{- end }} 81 | serviceAccountName: {{ include "nominatim.serviceAccountName" .}} 82 | {{- if .Values.updates.terminationGracePeriodSeconds }} 83 | terminationGracePeriodSeconds: {{ .Values.updates.terminationGracePeriodSeconds }} 84 | {{- end }} 85 | {{- if .Values.updates.topologySpreadConstraints }} 86 | topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.updates.topologySpreadConstraints "context" .) | nindent 12 }} 87 | {{- end }} 88 | restartPolicy: Never 89 | {{- if .Values.updates.initContainers }} 90 | initContainers: 91 | {{- include "common.tplvalues.render" (dict "value" .Values.updates.initContainers "context" $) | nindent 8 }} 92 | {{- end }} 93 | containers: 94 | - name: nominatim-updates 95 | image: {{ include "nominatim.image" . }} 96 | imagePullPolicy: {{ .Values.image.pullPolicy }} 97 | workingDir: /nominatim 98 | {{- if .Values.diagnosticMode.enabled }} 99 | command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 16 }} 100 | {{- else if .Values.updates.command }} 101 | command: {{- include "common.tplvalues.render" ( dict "value" .Values.updates.command "context" $) | nindent 16 }} 102 | {{- end }} 103 | {{- if .Values.diagnosticMode.enabled }} 104 | args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 16 }} 105 | {{- else if .Values.updates.args }} 106 | args: {{- include "common.tplvalues.render" ( dict "value" .Values.updates.args "context" $) | nindent 16 }} 107 | {{- end }} 108 | {{- if .Values.updates.containerSecurityContext.enabled }} 109 | securityContext: {{- omit .Values.updates.containerSecurityContext "enabled" | toYaml | nindent 16 }} 110 | {{- end }} 111 | env: 112 | - name: NOMINATIM_DATABASE_DSN 113 | {{- if .Values.externalDatabase.existingSecretDsn }} 114 | valueFrom: 115 | secretKeyRef: 116 | name: {{ .Values.externalDatabase.existingSecretDsn }} 117 | key: {{ .Values.externalDatabase.existingSecretDsnKey }} 118 | {{- end }} 119 | {{- if not .Values.externalDatabase.existingSecretDsn }} 120 | value: {{ include "nominatim.databaseDSN" . }} 121 | {{- end }} 122 | - name: NOMINATIM_REPLICATION_URL 123 | value: {{ .Values.updates.replicationUrl }} 124 | - name: NOMINATIM_IMPORT_STYLE 125 | value: {{ .Values.initJob.importStyle }} 126 | {{- if .Values.flatnode.enabled }} 127 | - name: NOMINATIM_FLATNODE_FILE 128 | value: /nominatim/flatnode/flatnode.file 129 | {{- end }} 130 | {{- if .Values.updates.extraEnvVars }} 131 | {{- include "common.tplvalues.render" (dict "value" .Values.updates.extraEnvVars "context" $) | nindent 16 }} 132 | {{- end }} 133 | envFrom: 134 | {{- if .Values.updates.extraEnvVarsCM }} 135 | - configMapRef: 136 | name: {{ include "common.tplvalues.render" (dict "value" .Values.updates.extraEnvVarsCM "context" $) }} 137 | {{- end }} 138 | {{- if .Values.updates.extraEnvVarsSecret }} 139 | - secretRef: 140 | name: {{ include "common.tplvalues.render" (dict "value" .Values.updates.extraEnvVarsSecret "context" $) }} 141 | {{- end }} 142 | volumeMounts: 143 | - mountPath: /dev/shm 144 | name: dshm 145 | {{- if .Values.flatnode.enabled }} 146 | - mountPath: /nominatim/flatnode 147 | name: nominatim 148 | subPath: flatnode 149 | {{- end }} 150 | {{- if .Values.updates.resources }} 151 | resources: 152 | {{- toYaml .Values.updates.resources | nindent 16 }} 153 | {{- end }} 154 | volumes: 155 | {{- if .Values.flatnode.enabled }} 156 | - name: nominatim 157 | persistentVolumeClaim: 158 | claimName: {{ .Values.flatnode.existingClaim | default (include "common.names.fullname" .) }} 159 | {{- end }} 160 | - name: dshm 161 | emptyDir: 162 | medium: Memory 163 | {{- end }} 164 | -------------------------------------------------------------------------------- /archived/kirby3/README.md: -------------------------------------------------------------------------------- 1 | # GitLab's Auto-deploy Helm Chart 2 | 3 | ## Requirements 4 | 5 | - Helm `2.9.0` and above is required in order support `"helm.sh/hook-delete-policy": before-hook-creation` for migrations 6 | 7 | ## Configuration 8 | 9 | | Parameter | Description | Default | 10 | | --- | --- | --- | 11 | | replicaCount | | `1` | 12 | | strategyType | Pod deployment [strategy](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy) | `nil` | 13 | | serviceAccountName | Pod service account name override | `nil` | 14 | | image.repository | | `gitlab.example.com/group/project` | 15 | | image.tag | | `stable` | 16 | | image.pullPolicy | | `Always` | 17 | | image.secrets | | `[name: gitlab-registry]` | 18 | | extraLabels | Allow labelling resources with custom key/value pairs | `{}` | 19 | | podAnnotations | Pod annotations | `{}` | 20 | | application.track | | `stable` | 21 | | application.tier | | `web` | 22 | | application.migrateCommand | If present, this variable will run as a shell command within an application Container as a Helm pre-upgrade Hook. Intended to run migration commands. | `nil` | 23 | | application.initializeCommand | If present, this variable will run as shell command within an application Container as a Helm post-install Hook. Intended to run database initialization commands. When set, the Deployment resource will be skipped.| `nil` | 24 | | application.secretName | Pass in the name of a Secret which the deployment will [load all key-value pairs from the Secret as environment variables](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables) in the application container. | `nil` | 25 | | application.secretChecksum | Pass in the checksum of the secrets referenced by `application.secretName`. | `nil` | 26 | | hpa.enabled | If true, enables horizontal pod autoscaler. A resource request is also required to be set, such as `resources.requests.cpu: 200m`.| `false` | 27 | | hpa.minReplicas | | `1` | 28 | | hpa.maxReplicas | | `5` | 29 | | hpa.targetCPUUtilizationPercentage | Percentage threshold when HPA begins scaling out pods | `80` | 30 | | gitlab.app | GitLab project slug. | `nil` | 31 | | gitlab.env | GitLab environment slug. | `nil` | 32 | | gitlab.envName | GitLab environment name. | `nil` | 33 | | gitlab.envURL | GitLab environment URL. | `nil` | 34 | | service.enabled | | `true` | 35 | | service.annotations | Service annotations | `{}` | 36 | | service.name | | `web` | 37 | | service.type | | `ClusterIP` | 38 | | service.url | | `http://my.host.com/` | 39 | | service.additionalHosts | If present, this list will add additional hostnames to the server configuration. | `nil` | 40 | | service.commonName | If present, this will define the ssl certificate common name to be used by CertManager. `service.url` and `service.additionalHosts` will be added as Subject Alternative Names (SANs) | `nil` | 41 | | service.externalPort | | `5000` | 42 | | service.internalPort | | `5000` | 43 | | ingress.enabled | If true, enables ingress | `true` | 44 | | ingress.path | Default path for the ingress | `/` | 45 | | ingress.tls.enabled | If true, enables SSL | `true` | 46 | | ingress.tls.acme | Controls `kubernetes.io/tls-acme` annotation | `true` | 47 | | ingress.tls.secretName | Name of the secret used to terminate SSL traffic | `""` | 48 | | ingress.tls.useDefaultSecret | If set to `true`, the `secretName` is not used, which makes Ingress fall back to the default secret (certificate). This requires [configuration of the default secret](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#default-ssl-certificate). | `false` | 49 | | ingress.modSecurity.enabled | Enable custom configuration for modsecurity, defaulting to [the Core Rule Set](https://coreruleset.org) | `false` | 50 | | ingress.modSecurity.secRuleEngine | Configuration for [ModSecurity's rule engine](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#SecRuleEngine) | `DetectionOnly` | 51 | | ingress.modSecurity.secRules | Configuration for custom [ModSecurity's rules](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#secrule) | `nil` | 52 | | ingress.annotations | Ingress annotations | `{kubernetes.io/ingress.class: "nginx"}` | 53 | | livenessProbe.path | Path to access on the HTTP server on periodic probe of container liveness. | `/` | 54 | | livenessProbe.scheme | Scheme to access the HTTP server (HTTP or HTTPS). | `HTTP` | 55 | | livenessProbe.initialDelaySeconds | # of seconds after the container has started before liveness probes are initiated. | `15` | 56 | | livenessProbe.timeoutSeconds | # of seconds after which the liveness probe times out. | `15` | 57 | | livenessProbe.probeType | Type of [liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes) to use. | `httpGet` 58 | | livenessProbe.command | Commands for use with probe type 'exec'. | `{}` 59 | | readinessProbe.path | Path to access on the HTTP server on periodic probe of container readiness. | `/` | 60 | | readinessProbe.scheme | Scheme to access the HTTP server (HTTP or HTTPS). | `HTTP` | 61 | | readinessProbe.initialDelaySeconds | # of seconds after the container has started before readiness probes are initiated. | `5` | 62 | | readinessProbe.timeoutSeconds | # of seconds after which the readiness probe times out. | `3` | 63 | | readinessProbe.probeType | Type of [readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes) to use. | `httpGet` 64 | | readinessProbe.command | Commands for use with probe type 'exec'. | `{}` 65 | | postgresql.managed | If true, this will provision a managed Postgres instance via crossplane. | `false` | 66 | | postgresql.managedClassSelector | This will allow provisioning a Postgres instance based on label selectors via Crossplane, eg: `managedClassSelector.matchLabels.stack: gitlab`. The `postgresql.managed` value should be true as well for this to be honoured. [Crossplane Configuration](https://docs.gitlab.com/ee/user/clusters/applications.html#crossplane) | `{}` | 67 | | podDisruptionBudget.enabled | | `false` | 68 | | podDisruptionBudget.maxUnavailable | | `1` | 69 | | podDisruptionBudget.minAvailable | If present, this variable will configure minAvailable in the PodDisruptionBudget. :warning: if you have `replicaCount: 1` and `podDisruptionBudget.minAvailable: 1` `kubectl drain` will be blocked. | `nil` | 70 | | prometheus.metrics | Annotates the service for prometheus auto-discovery. Also denies access to the `/metrics` endpoint from external addresses with Ingress. | `false` | 71 | | networkPolicy.enabled | Enable container network policy | `false` | 72 | | networkPolicy.spec | [Network policy](https://kubernetes.io/docs/concepts/services-networking/network-policies/) definition | `{ podSelector: { matchLabels: {} }, ingress: [{ from: [{ podSelector: { matchLabels: {} } }, { namespaceSelector: { matchLabels: { app.gitlab.com/managed_by: gitlab } } }] }] }` | 73 | | persistence.enabled | Allow a [persistent volume claim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) (PVC) to be mounted as a volume. | `false` | 74 | | persistence.existingClaim | Name of an existing PVC to use. If unspecified, a PVC is automatically created. **Warning:** Auto-created PVCs are deleted any time `persistence.enabled` is set to `false`. Manually managed PVCs are left alone. | `nil` | 75 | | persistence.storageClass | Storage class of the PVC. | `default` | 76 | | persistence.accessMode | Access mode to use for the PVC. | `ReadWriteOnce` | 77 | | persistence.size | Size of the PVC. | `8Gi` | 78 | | persistence.mountPath | Path on which the PVC is mounted in the container. | `/pvc-mount` | 79 | 80 | --------------------------------------------------------------------------------