├── charts ├── salt │ ├── templates │ │ ├── NOTES.txt │ │ ├── serviceaccount.yaml │ │ ├── configmap.yaml │ │ ├── service.yaml │ │ ├── ingress.yaml │ │ ├── _helpers.tpl │ │ └── statefulset.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── librenms │ ├── .gitignore │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── configmap-rrdcached.yaml │ │ ├── service-app.yaml │ │ ├── service-rrdcached.yaml │ │ ├── service-smokeping.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── secret-env.yaml │ │ ├── configmap-env.yaml │ │ ├── service-syslog.yaml │ │ ├── NOTES.txt │ │ ├── ingress.yaml │ │ ├── deployment-syslog.yaml │ │ ├── configmap-app.yaml │ │ ├── _helpers.tpl │ │ ├── configmap-smokeping.yaml │ │ └── deployment-poller.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── values.schema.json │ └── values.yaml ├── sshportal │ ├── .gitignore │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── secret.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ └── statefulset.yaml │ ├── .helmignore │ ├── Chart.yaml │ └── values.yaml ├── webhook-site │ ├── .gitignore │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── webhook-service.yaml │ │ ├── echo-service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── ingress.yaml │ │ ├── webhook-deployment.yaml │ │ └── echo-deployment.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── errbot │ ├── .gitignore │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── config.yaml │ │ ├── NOTES.txt │ │ ├── ingress.yaml │ │ └── _helpers.tpl │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── nginx-static │ ├── .gitignore │ ├── Chart.yaml │ ├── templates │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── basic-auth.yaml │ │ ├── pvc.yaml │ │ ├── nginx-configmap.yaml │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ └── ingress.yaml │ ├── .helmignore │ ├── README.md │ └── values.yaml ├── allure │ ├── Chart.yaml │ ├── templates │ │ ├── configmap-ui.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── service-ui.yaml │ │ ├── volume-api.yaml │ │ ├── service-api.yaml │ │ ├── configmap-api.yaml │ │ ├── ingress.yaml │ │ ├── deployment-ui.yaml │ │ ├── deployment-api.yaml │ │ └── _helpers.tpl │ ├── .helmignore │ ├── README.md │ └── values.yaml ├── static-page │ ├── Chart.yaml │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── imagerepository-docker.yaml │ │ ├── imagepolicy-docker.yaml │ │ ├── hpa.yaml │ │ ├── imageupdateautomation-docker.yaml │ │ ├── NOTES.txt │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ └── _helpers.tpl │ ├── .helmignore │ ├── README.md │ └── values.yaml ├── folding-at-home │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── config.yaml │ │ ├── _helpers.tpl │ │ └── application.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── unifi-controller │ ├── templates │ │ ├── serviceaccount.yaml │ │ ├── service.yaml │ │ ├── tests │ │ │ └── test-connection.yaml │ │ ├── NOTES.txt │ │ ├── ingress.yaml │ │ ├── _helpers.tpl │ │ └── statefulset.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml └── fossology │ ├── templates │ ├── serviceaccount.yaml │ ├── service.yaml │ ├── config.yaml │ ├── pvc.yaml │ ├── ingress.yaml │ ├── _helpers.tpl │ └── statefulset.yaml │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ └── values.yaml ├── .gitignore ├── .github └── workflows │ ├── release.yml │ └── check.yaml ├── renovate.json └── README.md /charts/salt/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /charts/librenms/.gitignore: -------------------------------------------------------------------------------- 1 | /*.yaml 2 | !values.yaml 3 | 4 | charts/* 5 | -------------------------------------------------------------------------------- /charts/sshportal/.gitignore: -------------------------------------------------------------------------------- 1 | *-values.yaml 2 | Chart.lock 3 | charts/ 4 | -------------------------------------------------------------------------------- /charts/webhook-site/.gitignore: -------------------------------------------------------------------------------- 1 | /values* 2 | !/values.yaml 3 | 4 | /charts/* 5 | -------------------------------------------------------------------------------- /charts/errbot/.gitignore: -------------------------------------------------------------------------------- 1 | /*.yaml 2 | !values.yaml 3 | !Chart.yaml 4 | 5 | charts/* 6 | -------------------------------------------------------------------------------- /charts/nginx-static/.gitignore: -------------------------------------------------------------------------------- 1 | Chart.lock 2 | charts/* 3 | /values-* 4 | 5 | *.pem 6 | *.pub 7 | *.key 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | charts/*/*.yaml 2 | !charts/*/Chart.yaml 3 | !charts/*/values.yaml 4 | **/values-*.yaml 5 | **/Chart.lock 6 | charts/**/charts/ 7 | -------------------------------------------------------------------------------- /charts/allure/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: allure 3 | type: application 4 | description: A Helm chart for Allure Report 5 | 6 | version: 0.1.3 7 | appVersion: "2.19.0" 8 | kubeVersion: ">= 1.19.0-0" 9 | -------------------------------------------------------------------------------- /charts/nginx-static/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: nginx-static 3 | description: Deploy nginx with static pages 4 | type: application 5 | version: 0.1.6 6 | # renovate: datasource=docker depName=nginx 7 | appVersion: 1.27.2 8 | -------------------------------------------------------------------------------- /charts/allure/templates/configmap-ui.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "allure.fullname" . }}-ui 5 | labels: 6 | {{- include "allure-ui.labels" . | nindent 4 }} 7 | data: 8 | {{- with .Values.ingress }} 9 | ALLURE_DOCKER_PUBLIC_API_URL: {{ .tls | ternary "https" "http" }}://{{ .hostname }} 10 | {{- end }} 11 | -------------------------------------------------------------------------------- /charts/static-page/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: static-page 3 | description: Deploy a simple Docker image as static page. 4 | type: application 5 | 6 | version: 0.1.2 7 | 8 | appVersion: "0.0.0" 9 | 10 | kubeVersion: ">= 1.25.0" 11 | keywords: 12 | - "docs" 13 | - "midokura" 14 | 15 | maintainers: 16 | - name: Midokura DevOps 17 | email: team-devops@midokura.com 18 | -------------------------------------------------------------------------------- /charts/salt/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "salt.serviceAccountName" . }} 6 | labels: 7 | {{- include "salt.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/errbot/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "errbot.serviceAccountName" . }} 6 | labels: 7 | {{- include "errbot.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/static-page/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "docs.serviceAccountName" . }} 6 | labels: 7 | {{- include "docs.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/folding-at-home/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "fah.serviceAccountName" . }} 6 | labels: 7 | {{- include "fah.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/librenms/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "librenms.serviceAccountName" . }} 6 | labels: 7 | {{- include "librenms.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/sshportal/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "sshportal.serviceAccountName" . }} 6 | labels: 7 | {{- include "sshportal.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "unifi.serviceAccountName" . }} 6 | labels: 7 | {{- include "unifi.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/fossology/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "fossology.serviceAccountName" . }} 6 | labels: 7 | {{- include "fossology.base.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "webhook-site.serviceAccountName" . }} 6 | labels: 7 | {{- include "webhook-site.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /charts/librenms/templates/configmap-rrdcached.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-rrdcached 5 | labels: 6 | {{- include "librenms.rrdcached.labels" . | nindent 4 }} 7 | data: 8 | TZ: {{ .Values.timezone | default "Etc/UTC" }} 9 | LOG_LEVEL: "LOG_INFO" 10 | WRITE_TIMEOUT: "1800" 11 | WRITE_JITTER: "900" 12 | WRITE_THREADS: "4" 13 | FLUSH_DEAD_DATA_INTERVAL: "3600" 14 | -------------------------------------------------------------------------------- /charts/folding-at-home/templates/config.yaml: -------------------------------------------------------------------------------- 1 | {{- $fullName := include "fah.fullname" . }} 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ printf "%s-config" $fullName }} 6 | labels: 7 | {{- include "fah.labels" . | nindent 4 }} 8 | stringData: 9 | config.xml: | 10 | 11 | {{- range $name, $value := .Values.config }} 12 | <{{ $name }} value={{ $value | quote }} /> 13 | {{- end }} 14 | 15 | -------------------------------------------------------------------------------- /charts/static-page/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "docs.fullname" . }} 5 | labels: 6 | {{- include "docs.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 "docs.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "unifi.fullname" . }} 5 | labels: 6 | {{- include "unifi.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 "unifi.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/salt/.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/allure/.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/errbot/.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/fossology/.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/librenms/.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/sshportal/.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/librenms/templates/service-app.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "librenms.fullname" . }} 5 | labels: 6 | {{- include "librenms.app.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.app.service.type }} 9 | ports: 10 | - name: http 11 | port: {{ .Values.app.service.port }} 12 | targetPort: http 13 | protocol: TCP 14 | selector: 15 | {{- include "librenms.app.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "nginx-static.fullname" . }} 5 | labels: 6 | {{- include "nginx-static.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 "nginx-static.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/static-page/.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/webhook-site/.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/errbot/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "errbot.fullname" . }} 5 | labels: 6 | {{- include "errbot.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - name: http 11 | port: {{ .Values.service.port }} 12 | targetPort: http 13 | protocol: TCP 14 | appProtocol: http 15 | selector: 16 | {{- include "errbot.selectorLabels" . | nindent 4 }} 17 | -------------------------------------------------------------------------------- /charts/folding-at-home/.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/allure/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "allure.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "allure.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "allure.fullname" . }}-ui:{{ .Values.ui.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/sshportal/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "sshportal.fullname" . }} 5 | labels: 6 | {{- include "sshportal.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: ssh 12 | nodePort: 32222 13 | protocol: TCP 14 | name: ssh 15 | selector: 16 | {{- include "sshportal.selectorLabels" . | nindent 4 }} 17 | -------------------------------------------------------------------------------- /charts/fossology/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "fossology.fullname" . }} 5 | labels: 6 | {{- include "fossology.web.labels" . | nindent 4 }} 7 | spec: 8 | selector: 9 | {{- include "fossology.web.selectorLabels" . | nindent 4 }} 10 | {{- with .Values.web.service }} 11 | type: {{ .type }} 12 | ports: 13 | - port: {{ .port }} 14 | targetPort: http 15 | protocol: TCP 16 | name: http 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "unifi.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "unifi.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "unifi.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/sshportal/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "sshportal.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "sshportal.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "sshportal.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/webhook-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "webhook-site.fullname" . }} 5 | labels: 6 | {{- include "webhook-site.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.app.service.type }} 9 | ports: 10 | - port: {{ .Values.app.service.port }} 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "webhook-site.app.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "nginx-static.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "nginx-static.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "nginx-static.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /charts/unifi-controller/.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 | 25 | values-*.yaml 26 | -------------------------------------------------------------------------------- /charts/sshportal/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: sshportal 3 | description: simple, fun and transparent SSH (and telnet) bastion server 4 | 5 | type: application 6 | version: 0.1.4 7 | # renovate: datasource=docker depName=moul/sshportal 8 | appVersion: 1.19.3 9 | home: https://github.com/moul/sshportal 10 | sources: 11 | - https://github.com/moul/sshportal 12 | 13 | dependencies: 14 | - name: mariadb 15 | alias: mysql 16 | version: 11.5.7 17 | repository: https://charts.bitnami.com/bitnami 18 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/echo-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | # enforced by image nginx.conf 5 | name: laravel-echo-server 6 | labels: 7 | {{- include "webhook-site.labels" . | nindent 4 }} 8 | spec: 9 | type: {{ .Values.echo.service.type }} 10 | ports: 11 | - port: {{ .Values.echo.service.port }} 12 | targetPort: http 13 | protocol: TCP 14 | name: http 15 | selector: 16 | {{- include "webhook-site.echo.selectorLabels" . | nindent 4 }} 17 | -------------------------------------------------------------------------------- /charts/salt/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "salt.fullname" . }}-config 5 | labels: 6 | {{- include "salt.master.labels" . | nindent 4 }} 7 | data: 8 | master.conf: | 9 | color: False 10 | auto_accept: False 11 | file_roots: 12 | base: 13 | {{- if .Values.master.file_root }} 14 | - {{ .Values.master.file_root }} 15 | {{- else }} 16 | - /srv/salt 17 | {{- end }} 18 | #env_order: ["base"] 19 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/basic-auth.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.ingress.auth.enabled .Values.ingress.auth.users }} 2 | apiVersion: v1 3 | kind: Secret 4 | type: Opaque 5 | # type: kubernetes.io/basic-auth 6 | metadata: 7 | name: {{ printf "%s-auth" .Release.Name }} 8 | labels: 9 | {{- include "nginx-static.labels" . | nindent 4 }} 10 | stringData: 11 | auth: | 12 | {{- range .Values.ingress.auth.users }} 13 | {{ htpasswd (.username | toString) (.password | toString) }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | {{- $fullName := include "webhook-site.fullname" . }} 2 | apiVersion: v1 3 | kind: Pod 4 | metadata: 5 | name: {{ $fullName }}-test-connection 6 | labels: 7 | {{- include "webhook-site.labels" . | nindent 4 }} 8 | annotations: 9 | "helm.sh/hook": test 10 | spec: 11 | containers: 12 | - name: wget 13 | image: busybox 14 | command: ['wget'] 15 | args: ['{{ printf "%s:%s" $fullName .Values.app.service.port }}'] 16 | restartPolicy: Never 17 | -------------------------------------------------------------------------------- /charts/nginx-static/.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 | 25 | values-*.yaml 26 | 27 | *.key 28 | *.pub 29 | -------------------------------------------------------------------------------- /charts/librenms/templates/service-rrdcached.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-rrdcached 5 | labels: 6 | {{- include "librenms.app.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.app.service.type }} 9 | {{- if eq .Values.app.service.type "ClusterIP" }} 10 | clusterIP: None 11 | {{- end }} 12 | ports: 13 | - name: rrd 14 | port: 42217 15 | protocol: TCP 16 | selector: 17 | {{- include "librenms.app.selectorLabels" . | nindent 4 }} 18 | -------------------------------------------------------------------------------- /charts/errbot/templates/config.yaml: -------------------------------------------------------------------------------- 1 | {{- if (and (not .Values.config.existingName) (.Values.config.values)) }} 2 | apiVersion: v1 3 | kind: {{ .Values.config.type }} 4 | metadata: 5 | name: {{ include "errbot.fullname" . }}-config 6 | labels: 7 | {{- include "errbot.labels" . | nindent 4 }} 8 | data: 9 | {{- with .Values.config }} 10 | config.py: | 11 | {{- if eq .type "Secret" }} 12 | {{ .values | b64enc }} 13 | {{- else if eq .type "ConfigMap" }} 14 | {{ .values | nindent 4 }} 15 | {{- end }} 16 | {{- end }} 17 | {{- end }} 18 | -------------------------------------------------------------------------------- /charts/allure/templates/service-ui.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "allure.fullname" . }}-ui 5 | labels: 6 | {{- include "allure-ui.labels" . | nindent 4 }} 7 | {{- with .Values.ui.service.annotations }} 8 | annotations: 9 | {{- toYaml . | nindent 8 }} 10 | {{- end }} 11 | spec: 12 | type: {{ .Values.ui.service.type }} 13 | ports: 14 | - port: {{ .Values.ui.service.port }} 15 | targetPort: ui 16 | protocol: TCP 17 | name: ui 18 | selector: 19 | {{- include "allure-ui.selectorLabels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /charts/allure/templates/volume-api.yaml: -------------------------------------------------------------------------------- 1 | {{- if and (.Values.volume.enabled) (not .Values.volume.existingClaim) }} 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: {{ include "allure.fullname" . }}-data 6 | labels: 7 | {{- include "allure-api.selectorLabels" . | nindent 4 }} 8 | spec: 9 | {{- with .Values.volume }} 10 | accessModes: 11 | {{- toYaml .accessModes | nindent 4 }} 12 | volumeMode: Filesystem 13 | storageClassName: {{ .storageClassName }} 14 | resources: 15 | requests: 16 | storage: {{ .size }} 17 | {{- end }} 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /charts/fossology/templates/config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | type: Opaque 4 | metadata: 5 | name: {{ include "fossology.fullname" . }}-config 6 | labels: 7 | {{- include "fossology.base.labels" . | nindent 4 }} 8 | stringData: 9 | FOSSOLOGY_DB_HOST: {{ include "fossology.fullname" . }}-postgresql 10 | FOSSOLOGY_DB_NAME: {{ default "fossology" .Values.postgresql.auth.database | quote }} 11 | FOSSOLOGY_DB_USER: {{ default "fossy" .Values.postgresql.auth.username | quote }} 12 | FOSSOLOGY_DB_PASSWORD: {{ default "fossy" .Values.postgresql.auth.password | quote }} 13 | -------------------------------------------------------------------------------- /charts/allure/templates/service-api.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "allure.fullname" . }}-api 5 | labels: 6 | {{- include "allure-api.labels" . | nindent 4 }} 7 | {{- with .Values.api.service.annotations }} 8 | annotations: 9 | {{- toYaml . | nindent 8 }} 10 | {{- end }} 11 | spec: 12 | type: {{ .Values.api.service.type }} 13 | ports: 14 | - port: {{ .Values.api.service.port }} 15 | targetPort: api 16 | protocol: TCP 17 | name: api 18 | selector: 19 | {{- include "allure-api.selectorLabels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /charts/librenms/templates/service-smokeping.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.smokeping.enabled }} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: {{ include "librenms.fullname" . }}-smokeping 6 | labels: 7 | {{- include "librenms.app.labels" . | nindent 4 }} 8 | spec: 9 | type: {{ .Values.app.service.type }} 10 | {{- if eq .Values.app.service.type "ClusterIP" }} 11 | clusterIP: None 12 | {{- end }} 13 | ports: 14 | - name: smokeping 15 | port: 80 16 | protocol: TCP 17 | selector: 18 | {{- include "librenms.app.selectorLabels" . | nindent 4 }} 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /charts/fossology/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "fossology.pvcName" . }} 6 | labels: 7 | {{- include "fossology.web.labels" . | nindent 4 }} 8 | spec: 9 | {{- with .Values.persistence }} 10 | {{- with .accessModes }} 11 | accessModes: 12 | {{- toYaml . | nindent 6 }} 13 | {{- end }} 14 | resources: 15 | requests: 16 | storage: {{ .size }} 17 | storageClassName: {{ .storageClass | quote }} 18 | {{- end }} 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /charts/allure/templates/configmap-api.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "allure.fullname" . }}-api 5 | labels: 6 | {{- include "allure-api.labels" . | nindent 4 }} 7 | data: 8 | CHECK_RESULTS_EVERY_SECONDS: {{ .Values.updateFrequency | quote }} 9 | KEEP_HISTORY: {{ .Values.keepHistory | int | quote }} 10 | TLS: {{ .Values.securityEnabled | int | quote }} 11 | SECURITY_ENABLED: {{ .Values.securityEnabled | int | quote }} 12 | MAKE_VIEWER_ENDPOINTS_PUBLIC: {{ .Values.publicViewerEndpoint | int | quote }} 13 | DEV_MODE: {{ .Values.api.devMode | int | quote }} 14 | -------------------------------------------------------------------------------- /charts/unifi-controller/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: unifi 3 | description: Manage all your Unifi devices through a central site. 4 | keywords: 5 | - nms 6 | - network 7 | - monitoring 8 | home: https://github.com/midokura/helm-charts-community/tree/main/unifi-controller 9 | icon: https://avatars.githubusercontent.com/u/3934889?s=200 10 | sources: 11 | - https://hub.docker.com/r/linuxserver/unifi-controller 12 | maintainers: 13 | - name: David Girón 14 | url: https://github.com/duhow 15 | 16 | version: 0.0.6 17 | # renovate: datasource=docker depName=linuxserver/unifi-controller 18 | appVersion: 7.3.83 19 | -------------------------------------------------------------------------------- /charts/webhook-site/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: webhook-site 3 | type: application 4 | description: Easily test HTTP webhooks 5 | keywords: 6 | - webhook 7 | - rest 8 | - http 9 | home: https://github.com/midokura/helm-charts-community/tree/main/webhook-site 10 | sources: 11 | - https://github.com/webhooksite/webhook.site 12 | maintainers: 13 | - name: David Girón 14 | url: https://github.com/duhow 15 | 16 | version: 0.0.5 17 | appVersion: "1.2" 18 | 19 | dependencies: 20 | - name: redis 21 | repository: https://charts.bitnami.com/bitnami 22 | version: 16.13.2 23 | condition: redis.install 24 | -------------------------------------------------------------------------------- /charts/static-page/templates/imagerepository-docker.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.updateAutomation.docker.enabled }} 2 | # Declaration of an image repository 3 | apiVersion: image.toolkit.fluxcd.io/v1beta2 4 | kind: ImageRepository 5 | metadata: 6 | name: {{ include "docs.fullname" . }}-docker 7 | labels: 8 | {{- include "docs.labels" . | nindent 4 }} 9 | spec: 10 | # We get this value from the image's repo directly 11 | image: {{ .Values.image.repository }} 12 | interval: 5m 13 | # Use the first imagePullSecrets as ref to fetch the image 14 | {{- with (first .Values.imagePullSecrets) }} 15 | secretRef: 16 | name: {{ .name }} 17 | {{- end }} 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /charts/static-page/README.md: -------------------------------------------------------------------------------- 1 | # static-page 2 | 3 | This Helm Chart installs a manual-specified Docker image which exposes a web server (like `nginx`) and optionally enables auto-updating with Flux `ImageUpdatePolicy`. 4 | 5 | Main purpose of this Helm Chart is to serve a static page, with your own custom image with content already bundled. 6 | 7 | ## Auto-update 8 | 9 | By using Flux [Image Update Automations](https://fluxcd.io/flux/components/image/imageupdateautomations/), you can pull new versions for your Docker image, 10 | and automatically update your git repository with the latest value. 11 | 12 | ## Persistence 13 | 14 | No persistence is expected or enabled at the moment. 15 | -------------------------------------------------------------------------------- /charts/folding-at-home/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: folding-at-home 3 | type: application 4 | description: A distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. 5 | 6 | home: https://github.com/midokura/helm-charts-community/tree/main/folding-at-home 7 | icon: https://avatars.githubusercontent.com/u/4166223?s=200&v=4 8 | sources: 9 | - https://hub.docker.com/r/linuxserver/foldingathome 10 | - https://hub.docker.com/r/foldingathome/fah-gpu 11 | maintainers: 12 | - name: David Girón 13 | url: https://github.com/duhow 14 | 15 | version: 0.0.3 16 | # renovate: datasource=docker depName=linuxserver/foldingathome 17 | appVersion: 7.6.21 18 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release Charts 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | release: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v3 14 | with: 15 | fetch-depth: 0 16 | 17 | - name: Configure Git 18 | run: | 19 | git config user.name "$GITHUB_ACTOR" 20 | git config user.email "$GITHUB_ACTOR@users.noreply.github.com" 21 | 22 | - name: Install Helm 23 | uses: azure/setup-helm@v3 24 | with: 25 | version: v3.11.2 26 | 27 | - name: Run chart-releaser 28 | uses: helm/chart-releaser-action@v1.5.0 29 | env: 30 | CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 31 | -------------------------------------------------------------------------------- /charts/static-page/templates/imagepolicy-docker.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.updateAutomation.docker.enabled }} 2 | # Checks for image updates in a remote repository given a semver range 3 | apiVersion: image.toolkit.fluxcd.io/v1beta2 4 | kind: ImagePolicy 5 | metadata: 6 | name: {{ include "docs.fullname" . }}-docker 7 | labels: 8 | {{- include "docs.labels" . | nindent 4 }} 9 | spec: 10 | imageRepositoryRef: 11 | name: {{ include "docs.fullname" . }}-docker 12 | namespace: {{ .Release.Namespace }} 13 | {{- with .Values.updateAutomation.docker.policy }} 14 | policy: 15 | {{- toYaml . | nindent 4 }} 16 | {{- end }} 17 | {{- with .Values.updateAutomation.docker.filterTags }} 18 | filterTags: 19 | {{- toYaml . | nindent 4 }} 20 | {{- end }} 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} 2 | kind: PersistentVolumeClaim 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "nginx-static.fullname" . }} 6 | labels: 7 | app: {{ include "nginx-static.fullname" . }} 8 | release: {{ .Release.Name | quote }} 9 | spec: 10 | accessModes: 11 | - {{ .Values.persistence.accessMode | quote }} 12 | resources: 13 | requests: 14 | storage: {{ .Values.persistence.size | quote }} 15 | {{- if .Values.persistence.storageClass }} 16 | {{- if (eq "-" .Values.persistence.storageClass) }} 17 | storageClassName: "" 18 | {{- else }} 19 | storageClassName: "{{ .Values.persistence.storageClass }}" 20 | {{- end }} 21 | {{- end }} 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/errbot/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: errbot 3 | type: application 4 | description: A daemon that connects to your favorite chat service and brings your tools into the conversation. 5 | keywords: 6 | - gitops 7 | - bot 8 | - chatbot 9 | home: https://github.com/midokura/helm-charts-community/tree/main/errbot 10 | icon: https://errbot.readthedocs.io/en/latest/_static/errbot.png 11 | sources: 12 | - https://github.com/errbotio/errbot 13 | maintainers: 14 | - name: David Girón 15 | url: https://github.com/duhow 16 | 17 | version: 0.0.5 18 | # renovate: datasource=docker depName=errbotio/errbot 19 | appVersion: 6.1.9 20 | 21 | dependencies: 22 | - name: redis 23 | repository: https://charts.bitnami.com/bitnami 24 | version: 17.x.x 25 | condition: redis.install 26 | -------------------------------------------------------------------------------- /charts/salt/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: salt 3 | type: application 4 | description: Software to automate the management and configuration of any infrastructure or application at scale. 5 | keywords: 6 | - configuration-management 7 | - infrastructure-management 8 | - cloud-management 9 | - event-management 10 | - remote-execution 11 | - infrastructure-automation 12 | home: https://github.com/midokura/helm-charts-community/tree/main/salt 13 | icon: https://saltproject.io/images/logo.svg 14 | sources: 15 | - https://github.com/saltstack/salt 16 | - https://gitlab.com/saltstack/open/saltdocker 17 | maintainers: 18 | - name: David Girón 19 | url: https://github.com/duhow 20 | 21 | version: 0.0.3 22 | # renovate: datasource=docker depName=saltstack/salt 23 | appVersion: "3006.3" 24 | -------------------------------------------------------------------------------- /charts/librenms/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "librenms.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "librenms.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['-O', '/dev/null', '{{ include "librenms.fullname" . }}:{{ .Values.app.service.port }}'] 15 | securityContext: 16 | runAsUser: 1000 17 | runAsNonRoot: true 18 | readOnlyRootFilesystem: true 19 | resources: 20 | limits: 21 | memory: 60Mi 22 | cpu: 200m 23 | requests: 24 | memory: 10Mi 25 | cpu: 10m 26 | restartPolicy: Never 27 | -------------------------------------------------------------------------------- /charts/fossology/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: fossology 3 | type: application 4 | description: Open source license compliance software system and toolkit 5 | keywords: 6 | - nms 7 | - network 8 | - snmp 9 | - monitoring 10 | home: https://github.com/midokura/helm-charts-community/tree/main/fossology 11 | icon: https://www.fossology.org/wp-content/uploads/sites/39/2017/08/logo_fossology.png 12 | sources: 13 | - https://github.com/fossology/fossology 14 | maintainers: 15 | - name: David Girón 16 | url: https://github.com/duhow 17 | 18 | version: 0.2.2 19 | # renovate: datasource=docker depName=fossology/fossology 20 | appVersion: 4.2.1 21 | 22 | dependencies: 23 | - name: postgresql 24 | repository: https://charts.bitnami.com/bitnami 25 | version: 12.2.3 26 | condition: postgresql.install 27 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ], 5 | "dependencyDashboard": false, 6 | "timezone": "Europe/Madrid", 7 | "schedule": ["on monday"], 8 | "enabledManagers": ["helmv3", "helm-values", "regex"], 9 | "regexManagers": [ 10 | { 11 | "fileMatch": [".+\/Chart.yaml$"], 12 | "matchStrings": ["# renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?\\n.*?appVersion:\\s*(?[\\w\\d\\.]+)"], 13 | "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver-coerced{{/if}}" 14 | } 15 | ], 16 | "packageRules": [ 17 | { 18 | "matchPackageNames": ["librenms/librenms", "nginx"], 19 | "versioning": "semver" 20 | }, 21 | { 22 | "matchPackageNames": ["moul/sshportal"], 23 | "extractVersion": "^v(?\\d+\\.\\d+\\.\\d+)$" 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/nginx-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "nginx-static.fullname" . }}-config 5 | labels: 6 | {{- include "nginx-static.labels" . | nindent 4 }} 7 | data: 8 | default.conf: | 9 | server { 10 | listen 80; 11 | listen [::]:80; 12 | server_name localhost; 13 | 14 | location / { 15 | root /usr/share/nginx/html; 16 | index index.html index.htm; 17 | } 18 | 19 | error_page 500 502 503 504 /50x.html; 20 | location = /50x.html { 21 | root /usr/share/nginx/html; 22 | } 23 | 24 | # block git and htaccess files 25 | location ~ /\.(git|ht) { 26 | deny all; 27 | } 28 | 29 | {{- if and (.Values.configNginx) (kindIs "string" .Values.configNginx) }} 30 | {{ .Values.configNginx | nindent 6 }} 31 | {{- end }} 32 | } 33 | -------------------------------------------------------------------------------- /charts/salt/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "salt.fullname" . }}-master 5 | labels: 6 | {{- include "salt.master.labels" . | nindent 4 }} 7 | spec: 8 | {{- with .Values.master.service }} 9 | type: {{ .type }} 10 | {{- if .loadBalancerIP }} 11 | loadBalancerIP: {{ .loadBalancerIP }} 12 | {{- end }} 13 | # add source IP address 14 | externalTrafficPolicy: Local 15 | {{- if .loadBalancerSourceRanges }} 16 | loadBalancerSourceRanges: 17 | {{ .loadBalancerSourceRanges | toYaml | nindent 4 }} 18 | {{- end }} 19 | {{- end }} 20 | ports: 21 | {{- range $name, $port := .Values.master.service.ports }} 22 | {{- if $port.expose }} 23 | - port: {{ $port.port }} 24 | targetPort: {{ $name }} 25 | protocol: TCP 26 | name: {{ $name }} 27 | {{- end }} 28 | {{- end }} 29 | selector: 30 | {{- include "salt.master.selectorLabels" . | nindent 4 }} 31 | -------------------------------------------------------------------------------- /charts/librenms/templates/secret-env.yaml: -------------------------------------------------------------------------------- 1 | {{- $fullName := include "librenms.fullname" . }} 2 | {{- $secretName := printf "%s-env" $fullName }} 3 | {{- $oldSecret := (lookup "v1" "Secret" .Release.Namespace $secretName) -}} 4 | apiVersion: v1 5 | kind: Secret 6 | type: Opaque 7 | metadata: 8 | name: {{ $secretName }} 9 | labels: 10 | {{- include "librenms.labels" . | nindent 4 }} 11 | data: 12 | DB_PASSWORD: {{ .Values.mysql.auth.password | default "librenms" | b64enc }} 13 | {{- if and .Values.redis.install .Values.redis.auth.enabled }} 14 | REDIS_PASSWORD: {{ required "Missing .Values.redis.auth.password" .Values.redis.auth.password | b64enc }} 15 | {{- end }} 16 | {{- if $oldSecret }} 17 | {{- with $oldSecret.data }} 18 | APP_KEY: {{ .APP_KEY }} 19 | {{- end }} 20 | {{- else if .Values.app.key }} 21 | APP_KEY: {{ .Values.app.key | b64enc }} 22 | {{- else }} 23 | APP_KEY: {{ printf "base64:%s" (randAscii 32 | b64enc) | b64enc }} 24 | {{- end }} 25 | -------------------------------------------------------------------------------- /charts/sshportal/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | {{- $secretName := printf "%s-%s" (include "sshportal.fullname" .) "secrets" }} 2 | apiVersion: v1 3 | kind: Secret 4 | type: Opaque 5 | metadata: 6 | name: {{ $secretName }} 7 | labels: 8 | {{- include "sshportal.labels" . | nindent 4 }} 9 | 10 | {{- $secret := lookup "v1" "Secret" .Release.Namespace $secretName -}} 11 | {{- if $secret }} 12 | {{- with $secret.data }} 13 | data: 14 | {{- toYaml . | nindent 2 }} 15 | {{- end }} 16 | {{- else }} 17 | stringData: 18 | {{- if .Values.inviteToken }} 19 | invite-token: {{ .Values.inviteToken | quote }} 20 | {{- else }} 21 | invite-token: {{ randAlphaNum 16 | quote }} 22 | {{- end }} 23 | 24 | {{- if .Values.mysql.enabled }} 25 | mysql-connection: {{ .Values.mysql.auth.username }}:{{ .Values.mysql.auth.password }}@tcp({{ .Values.mysql.hostname }}:{{ .Values.mysql.port }})/{{ .Values.mysql.auth.database }}?charset=utf8&parseTime=true&loc=Local 26 | {{- else }} 27 | mysql-connection: "" 28 | {{- end }} 29 | {{- end }} 30 | -------------------------------------------------------------------------------- /charts/webhook-site/README.md: -------------------------------------------------------------------------------- 1 | # Webhook.site 2 | 3 | [Webhook.site](https://webhook.site/) generates unique, random URL that you can use to test and debug Webhooks and HTTP requests. 4 | 5 | ## Components 6 | 7 | This chart installs the following required components: 8 | 9 | - [Redis](https://artifacthub.io/packages/helm/bitnami/redis) 10 | 11 | ## Installing the Chart 12 | 13 | To install the chart with the release name `my-release`: 14 | 15 | ```bash 16 | $ helm install my-release . 17 | ``` 18 | 19 | The command deploys Webhook.site and required components on the Kubernetes cluster in the default configuration. 20 | 21 | > **Tip**: List all releases using `helm list` 22 | 23 | ## Uninstalling the Chart 24 | 25 | To uninstall/delete the `my-release` deployment: 26 | 27 | ```bash 28 | $ helm delete my-release 29 | ``` 30 | 31 | The command removes all the Kubernetes components associated with the chart and deletes the release. 32 | 33 | ## Persistence 34 | 35 | As this chart is for debug or testing purposes, Persistence is disabled by default (at Redis component). 36 | -------------------------------------------------------------------------------- /charts/librenms/templates/configmap-env.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-env 5 | labels: 6 | {{- include "librenms.labels" . | nindent 4 }} 7 | data: 8 | TZ: {{ .Values.timezone | default "Etc/UTC" }} 9 | PUID: {{ default 1000 .Values.app.podSecurityContext.fsGroup | quote }} 10 | PGID: {{ default 1000 .Values.app.podSecurityContext.runAsGroup | quote }} 11 | DB_HOST: {{ include "librenms.name" . }}-mysql 12 | DB_USER: {{ .Values.mysql.auth.username | default "librenms" }} 13 | DB_NAME: {{ .Values.mysql.auth.database | default "librenms" }} 14 | {{- if .Values.redis.install }} 15 | REDIS_HOST: {{ include "librenms.name" . }}-redis-headless 16 | REDIS_PORT: "6379" 17 | REDIS_DB: {{ default "0" .Values.redis.database | quote }} 18 | {{- end }} 19 | {{- if .Values.memcached.install }} 20 | MEMCACHED_HOST: {{ include "librenms.name" . }}-memcached 21 | MEMCACHED_PORT: "11211" 22 | {{- end }} 23 | RRDCACHED_SERVER: {{ include "librenms.name" . }}-rrdcached:{{ .Values.rrdcached.service.port }} 24 | -------------------------------------------------------------------------------- /charts/static-page/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "docs.fullname" . }} 6 | labels: 7 | {{- include "docs.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "docs.fullname" . }} 13 | {{- with .Values.autoscaling }} 14 | minReplicas: {{ .minReplicas }} 15 | maxReplicas: {{ .maxReplicas }} 16 | metrics: 17 | {{- if .targetCPUUtilizationPercentage }} 18 | - type: Resource 19 | resource: 20 | name: cpu 21 | target: 22 | type: Utilization 23 | averageUtilization: {{ .targetCPUUtilizationPercentage }} 24 | {{- end }} 25 | {{- if .targetMemoryUtilizationPercentage }} 26 | - type: Resource 27 | resource: 28 | name: memory 29 | target: 30 | type: Utilization 31 | averageUtilization: {{ .targetMemoryUtilizationPercentage }} 32 | {{- end }} 33 | {{- end }} 34 | {{- end }} 35 | -------------------------------------------------------------------------------- /charts/fossology/README.md: -------------------------------------------------------------------------------- 1 | # FOSSology 2 | 3 | [FOSSology](https://www.fossology.org/) is a open source license compliance software system and toolkit. As a toolkit you can run license, copyright and export control scans from the command line. As a system, a database and web ui are provided to give you a compliance workflow. License, copyright and export scanners are tools available to help with your compliance activities. 4 | 5 | ## Components 6 | 7 | This chart installs the following required components: 8 | 9 | - [PostgreSQL](https://artifacthub.io/packages/helm/bitnami/postgresql) 10 | 11 | ## Installing the Chart 12 | 13 | To install the chart with the release name `my-release`: 14 | 15 | ```bash 16 | $ helm install my-release . 17 | ``` 18 | 19 | The command deploys FOSSology and required components on the Kubernetes cluster in the default configuration. 20 | 21 | > **Tip**: List all releases using `helm list` 22 | 23 | ## Uninstalling the Chart 24 | 25 | To uninstall/delete the `my-release` deployment: 26 | 27 | ```bash 28 | $ helm delete my-release 29 | ``` 30 | 31 | The command removes all the Kubernetes components associated with the chart and deletes the release. 32 | -------------------------------------------------------------------------------- /charts/librenms/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: librenms 3 | type: application 4 | description: SNMP monitoring for network devices 5 | keywords: 6 | - nms 7 | - network 8 | - snmp 9 | - monitoring 10 | home: https://github.com/midokura/helm-charts-community/tree/main/librenms 11 | icon: https://www.librenms.org/images/android-chrome-192x192.png 12 | sources: 13 | - https://github.com/librenms/docker 14 | - https://github.com/crazy-max/docker-rrdcached 15 | maintainers: 16 | - name: David Girón 17 | url: https://github.com/duhow 18 | 19 | version: 0.3.2 20 | # renovate: datasource=docker depName=librenms/librenms 21 | appVersion: 22.4.1 22 | 23 | dependencies: 24 | - name: mariadb 25 | alias: mysql 26 | repository: https://charts.bitnami.com/bitnami 27 | version: 11.5.7 28 | condition: mysql.install 29 | - name: memcached 30 | repository: https://charts.bitnami.com/bitnami 31 | version: 6.14.0 32 | condition: memcached.install 33 | tags: 34 | - distributed-poller 35 | - name: redis 36 | repository: https://charts.bitnami.com/bitnami 37 | version: 16.13.2 38 | condition: redis.install 39 | tags: 40 | - distributed-poller 41 | -------------------------------------------------------------------------------- /charts/allure/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled }} 2 | {{- $fullName := include "allure.fullname" . }} 3 | apiVersion: networking.k8s.io/v1 4 | kind: Ingress 5 | metadata: 6 | name: {{ $fullName }} 7 | labels: 8 | {{- include "allure.labels" . | nindent 4 }} 9 | annotations: 10 | {{- with .Values.ingress.annotations }} 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | spec: 14 | {{- with .Values.ingress }} 15 | ingressClassName: {{ default "nginx" .ingressClassName }} 16 | {{- if .tls }} 17 | tls: 18 | - hosts: 19 | - {{ .hostname | quote }} 20 | secretName: {{ default (printf "%s-tls" $fullName) .existingSecret }} 21 | {{- end }} 22 | rules: 23 | - host: {{ .hostname | quote }} 24 | http: 25 | paths: 26 | - path: /allure-docker-service 27 | pathType: Prefix 28 | backend: 29 | service: 30 | name: {{ $fullName }}-api 31 | port: 32 | name: api 33 | - path: / 34 | pathType: Prefix 35 | backend: 36 | service: 37 | name: {{ $fullName }}-ui 38 | port: 39 | name: ui 40 | {{- end }} 41 | {{- end }} 42 | -------------------------------------------------------------------------------- /charts/nginx-static/README.md: -------------------------------------------------------------------------------- 1 | # Nginx static 2 | 3 | This Helm Chart installs [nginx](https://nginx.org/) web server and optionally enables pulling content from Git servers using SSH-keys. 4 | 5 | Main purpose of this Helm Chart is to serve a static page, by using upstream base image, or your own custom image with content already bundled. 6 | 7 | Please note that default values are enforcing a `digest` to ensure you deploy the same Docker image version. 8 | You can override this by providing another valid digest or removing the value: 9 | 10 | ```yaml 11 | image: 12 | digest: null 13 | ``` 14 | 15 | ## Persistence 16 | 17 | Optionally, you can use `persistence` to store permanent data (suitable for custom images). 18 | Note that this will still use `Deployment` type, so it requires to run as a **single replica**, unless you provide a StorageClass with `ReadWriteMany` support. 19 | 20 | ## nginx configuration 21 | 22 | If you have your own customized image including `server` settings definition, you can disable the mount of default configuration. 23 | 24 | ```yaml 25 | configNginx: false 26 | ``` 27 | 28 | If you want to keep using default `nginx` application, you can expand the `default.conf` with your own settings - for example, redirect a location to somewhere else. 29 | -------------------------------------------------------------------------------- /charts/librenms/templates/service-syslog.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-syslog 5 | labels: 6 | {{- include "librenms.syslog.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.syslog.service.type }} 9 | # add source IP address 10 | externalTrafficPolicy: Local 11 | ports: 12 | {{- if (.Values.syslog.service.ports.tcp) }} 13 | - name: syslog-tcp 14 | port: {{ .Values.syslog.service.ports.tcp }} 15 | targetPort: syslog-tcp 16 | protocol: TCP 17 | {{- if (eq .Values.syslog.service.type "ClusterIP") }} 18 | nodePort: null 19 | {{- else if (eq .Values.syslog.service.type "NodePort") }} 20 | nodePort: {{ .Values.syslog.service.ports.tcp }} 21 | {{- end }} 22 | {{- end }} 23 | {{- if (.Values.syslog.service.ports.udp) }} 24 | - name: syslog 25 | port: {{ .Values.syslog.service.ports.udp }} 26 | targetPort: syslog-udp 27 | protocol: UDP 28 | {{- if (eq .Values.syslog.service.type "ClusterIP") }} 29 | nodePort: null 30 | {{- else if (eq .Values.syslog.service.type "NodePort") }} 31 | nodePort: {{ .Values.syslog.service.ports.udp }} 32 | {{- end }} 33 | {{- end }} 34 | selector: 35 | {{- include "librenms.syslog.selectorLabels" . | nindent 4 }} 36 | -------------------------------------------------------------------------------- /charts/unifi-controller/README.md: -------------------------------------------------------------------------------- 1 | # Unifi Controller 2 | 3 | The [Unifi-controller](https://ui.com/consoles) software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. 4 | 5 | ## Installing the Chart 6 | 7 | To install the chart with the release name `my-release`: 8 | 9 | ```bash 10 | $ helm install my-release . 11 | ``` 12 | 13 | The command deploys Unifi-controller and required components on the Kubernetes cluster in the default configuration. 14 | 15 | **NOTE:** It is recommended to use `nodeSelector` (or `nodeName`) to deploy to a specific node. 16 | By default the option `hostNetwork` is enabled to expose ports directly from node. 17 | 18 | > **Tip**: List all releases using `helm list` 19 | 20 | ## Uninstalling the Chart 21 | 22 | To uninstall/delete the `my-release` deployment: 23 | 24 | ```bash 25 | $ helm delete my-release 26 | ``` 27 | 28 | The command removes all the Kubernetes components associated with the chart and deletes the release. 29 | 30 | ## Persistence 31 | 32 | The image stores all configuration at the `/config` path of the container. 33 | 34 | The chart mounts a [Persistent Volume](https://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning, by default. An existing PersistentVolumeClaim can also be defined. 35 | -------------------------------------------------------------------------------- /charts/folding-at-home/README.md: -------------------------------------------------------------------------------- 1 | # Folding@Home 2 | 3 | [Folding@Home](https://foldingathome.org/) (FAH or F@h) is a volunteer computing project aimed to help scientists develop new therapeutics for a variety of diseases by the means of simulating protein dynamics. 4 | This includes the process of protein folding and the movements of proteins, and is reliant on simulations run on volunteers' personal computers. 5 | 6 | ## Components 7 | 8 | This chart does not need any other component. 9 | 10 | ## Installing the Chart 11 | 12 | To install the chart with the release name `my-release`: 13 | 14 | ```bash 15 | $ helm install my-release . 16 | ``` 17 | 18 | The command deploys Folding@Home on the Kubernetes cluster in the default configuration. 19 | 20 | You may want to define `resources` to limit the maximum resources used for processing. 21 | 22 | **NOTE:**: If you want to perform processing with **GPU**, define the following options in `values`: 23 | 24 | ```yaml 25 | gpu: 26 | enabled: true 27 | 28 | resources: 29 | limits: 30 | nvidia.com/gpu: "1" 31 | # change resource name if needed 32 | ``` 33 | 34 | > **Tip**: List all releases using `helm list` 35 | 36 | ## Uninstalling the Chart 37 | 38 | To uninstall/delete the `my-release` deployment: 39 | 40 | ```bash 41 | $ helm delete my-release 42 | ``` 43 | 44 | The command removes all the Kubernetes components associated with the chart and deletes the release. 45 | -------------------------------------------------------------------------------- /charts/folding-at-home/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for fah. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | image: 8 | repository: linuxserver/foldingathome 9 | pullPolicy: IfNotPresent 10 | # Overrides the image tag whose default is the chart appVersion. 11 | tag: "" 12 | 13 | workPath: /config/work 14 | 15 | gpu: 16 | enabled: false 17 | image: 18 | repository: foldingathome/fah-gpu 19 | pullPolicy: IfNotPresent 20 | tag: "" 21 | workPath: /fah 22 | configFile: /fah/config.xml 23 | 24 | imagePullSecrets: [] 25 | nameOverride: "" 26 | fullnameOverride: "" 27 | 28 | serviceAccount: 29 | # Specifies whether a service account should be created 30 | create: false 31 | # Annotations to add to the service account 32 | annotations: {} 33 | # The name of the service account to use. 34 | # If not set and create is true, a name is generated using the fullname template 35 | name: "" 36 | 37 | podAnnotations: {} 38 | 39 | podSecurityContext: 40 | fsGroup: 1000 41 | 42 | securityContext: 43 | runAsNonRoot: true 44 | runAsUser: 1000 45 | 46 | resources: {} 47 | #limits: 48 | # nvidia.com/gpu: "1" 49 | # nvidia.com/mig-1g.10gb: "1" 50 | 51 | nodeSelector: {} 52 | tolerations: [] 53 | affinity: {} 54 | 55 | configFile: /config/config.xml 56 | config: 57 | power: full 58 | user: Anonymous 59 | passkey: "" 60 | team: 0 61 | gui-enabled: false 62 | -------------------------------------------------------------------------------- /charts/errbot/README.md: -------------------------------------------------------------------------------- 1 | # Errbot 2 | 3 | [Errbot](https://errbot.readthedocs.io/en/latest/) is a chatbot, a daemon that connects to your favorite chat service and brings your tools into the conversation. 4 | 5 | ## Components 6 | 7 | This chart installs the following required components: 8 | 9 | - [Redis](https://artifacthub.io/packages/helm/bitnami/redis) (optional) 10 | 11 | ## Installing the Chart 12 | 13 | To install the chart with the release name `my-release`: 14 | 15 | ```bash 16 | $ helm install my-release . 17 | ``` 18 | 19 | The command deploys Errbot on the Kubernetes cluster in the default configuration. 20 | 21 | **NOTE:** To successfully run Errbot, you will need to provide a custom image (for missing dependencies) and configuration to connect to your Chat backend. 22 | 23 | > **Tip**: List all releases using `helm list` 24 | 25 | ## Uninstalling the Chart 26 | 27 | To uninstall/delete the `my-release` deployment: 28 | 29 | ```bash 30 | $ helm delete my-release 31 | ``` 32 | 33 | The command removes all the Kubernetes components associated with the chart and deletes the release. 34 | 35 | ## Persistence 36 | 37 | The Errbot image stores data and plugin downloads at the `/home/errbot` path of the container. 38 | 39 | The chart mounts a [Persistent Volume](https://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning, by default. An existing PersistentVolumeClaim can also be defined. 40 | -------------------------------------------------------------------------------- /.github/workflows/check.yaml: -------------------------------------------------------------------------------- 1 | name: PR Check 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | list: 8 | name: list changes 9 | runs-on: ubuntu-latest 10 | outputs: 11 | folders: ${{ steps.changed-files.outputs.all_modified_files }} 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v3 15 | with: 16 | fetch-depth: 0 17 | 18 | - name: Get changed files 19 | id: changed-files 20 | uses: tj-actions/changed-files@v47 21 | with: 22 | files: 'charts/**' 23 | dir_names: true 24 | dir_names_max_depth: "2" 25 | json: true 26 | json_raw_format: true 27 | 28 | - name: Return output 29 | env: 30 | OUTPUT: ${{ steps.changed-files.outputs.all_modified_files }} 31 | run: | 32 | echo $OUTPUT 33 | 34 | check: 35 | name: ${{ matrix.path }} 36 | runs-on: ubuntu-latest 37 | needs: [list] 38 | if: ${{ needs.list.outputs.folders != '[]' && needs.list.outputs.folders != '' }} 39 | strategy: 40 | fail-fast: false 41 | matrix: 42 | path: ${{ fromJson(needs.list.outputs.folders) }} 43 | steps: 44 | - name: Checkout 45 | uses: actions/checkout@v3 46 | 47 | - name: Install Helm 48 | uses: azure/setup-helm@v3 49 | with: 50 | version: v3.11.2 51 | 52 | - name: Check chart 53 | working-directory: ${{ matrix.path }} 54 | run: > 55 | helm dependency update && 56 | helm lint 57 | -------------------------------------------------------------------------------- /charts/unifi-controller/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | 3 | image: 4 | repository: linuxserver/unifi-controller 5 | pullPolicy: IfNotPresent 6 | # Overrides the image tag whose default is the chart appVersion. 7 | tag: "" 8 | 9 | imagePullSecrets: [] 10 | nameOverride: "" 11 | fullnameOverride: "" 12 | 13 | serviceAccount: 14 | # Specifies whether a service account should be created 15 | create: false 16 | # Annotations to add to the service account 17 | annotations: {} 18 | # The name of the service account to use. 19 | # If not set and create is true, a name is generated using the fullname template 20 | name: "" 21 | 22 | podAnnotations: {} 23 | 24 | podSecurityContext: {} 25 | # fsGroup: 2000 26 | 27 | securityContext: {} 28 | 29 | hostNetwork: true 30 | 31 | service: 32 | type: ClusterIP 33 | port: 8443 34 | 35 | ingress: 36 | enabled: false 37 | className: "" 38 | annotations: {} 39 | # kubernetes.io/ingress.class: nginx 40 | # kubernetes.io/tls-acme: "true" 41 | hosts: 42 | - host: chart-example.local 43 | paths: 44 | - path: / 45 | pathType: ImplementationSpecific 46 | tls: [] 47 | # - secretName: chart-example-tls 48 | # hosts: 49 | # - chart-example.local 50 | 51 | resources: 52 | requests: 53 | memory: 1Gi 54 | 55 | nodeSelector: {} 56 | nodeName: "" 57 | 58 | tolerations: [] 59 | 60 | affinity: {} 61 | 62 | persistence: 63 | enabled: true 64 | size: 4Gi 65 | existingClaim: null 66 | storageClass: "" 67 | annotations: {} 68 | accessModes: 69 | - ReadWriteOnce 70 | -------------------------------------------------------------------------------- /charts/sshportal/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | 3 | image: 4 | repository: moul/sshportal 5 | pullPolicy: IfNotPresent 6 | tag: "" 7 | 8 | imagePullSecrets: [] 9 | nameOverride: "" 10 | fullnameOverride: "" 11 | 12 | serviceAccount: 13 | # Specifies whether a service account should be created 14 | create: true 15 | # Annotations to add to the service account 16 | annotations: {} 17 | # The name of the service account to use. 18 | # If not set and create is true, a name is generated using the fullname template 19 | name: "" 20 | 21 | podAnnotations: {} 22 | 23 | podSecurityContext: {} 24 | # fsGroup: 2000 25 | 26 | securityContext: {} 27 | # capabilities: 28 | # drop: 29 | # - ALL 30 | # readOnlyRootFilesystem: true 31 | # runAsNonRoot: true 32 | # runAsUser: 1000 33 | 34 | service: 35 | type: NodePort 36 | port: 2222 37 | 38 | ingress: 39 | enabled: false 40 | 41 | resources: 42 | requests: 43 | cpu: 20m 44 | memory: 50Mi 45 | limits: 46 | cpu: 1 47 | memory: 300Mi 48 | 49 | autoscaling: 50 | enabled: false 51 | minReplicas: 1 52 | maxReplicas: 3 53 | targetCPUUtilizationPercentage: 80 54 | # targetMemoryUtilizationPercentage: 80 55 | 56 | nodeSelector: {} 57 | 58 | tolerations: [] 59 | 60 | affinity: {} 61 | 62 | dbDriver: sqlite3 63 | dbConn: /sshportal.db 64 | debug: false 65 | aesKey: 24 66 | log: /var/log 67 | idleTimeout: 0 68 | aclCheckCmd: "" 69 | inviteToken: "" 70 | 71 | mysql: 72 | enabled: false 73 | hostname: "" 74 | port: 3306 75 | auth: 76 | username: sshportal 77 | password: 78 | database: sshportal 79 | -------------------------------------------------------------------------------- /charts/allure/README.md: -------------------------------------------------------------------------------- 1 | # Allure 2 | 3 | [Allure](https://docs.qameta.io/allure/) Report is a flexible, lightweight multi-language test reporting tool. It provides clear graphical reports and allows everyone involved in the development process to extract the maximum of information from the everyday testing process. 4 | 5 | ## Components 6 | 7 | This chart installs the following required components: 8 | 9 | - [Allure Docker Service](https://github.com/fescobar/allure-docker-service) 10 | - [Allure Docker Service UI](https://github.com/fescobar/allure-docker-service-ui) 11 | 12 | ## Installing the Chart 13 | 14 | To install the chart with the release name `my-release`: 15 | 16 | ```bash 17 | $ helm install my-release . 18 | ``` 19 | 20 | The command deploys the Allure reporting service and the required components on the Kubernetes cluster in the default configuration. 21 | 22 | ## Users Credentials 23 | 24 | Create a secret: 25 | 26 | ```yaml 27 | apiVersion: v1 28 | kind: Secret 29 | metadata: 30 | name: api-credentials 31 | type: Opaque 32 | data: 33 | #echo -n 'my_username' | base64 34 | SECURITY_USER: bXlfdXNlcm5hbWU= 35 | #echo -n 'my_password' | base64 36 | SECURITY_PASS: bXlfcGFzc3dvcmQ= 37 | #echo -n 'view_user' | base64 38 | SECURITY_VIEWER_USER: dmlld191c2Vy 39 | #echo -n 'view_pass' | base64 40 | SECURITY_VIEWER_PASS: dmlld19wYXNz 41 | ``` 42 | 43 | ## Uninstalling the Chart 44 | 45 | To uninstall/delete the `my-release` deployment: 46 | 47 | ```bash 48 | $ helm delete my-release 49 | ``` 50 | 51 | The command removes all the Kubernetes components associated with the chart and deletes the release. -------------------------------------------------------------------------------- /charts/librenms/README.md: -------------------------------------------------------------------------------- 1 | # LibreNMS 2 | 3 | [LibreNMS](https://www.librenms.org/) is a fully featured network monitoring system that provides multiple functions for networking devices, such as automatic discovery, billing, alerting, and more. 4 | 5 | ## Components 6 | 7 | This chart installs the following required components: 8 | 9 | - [MariaDB](https://artifacthub.io/packages/helm/bitnami/mariadb) 10 | - [Redis](https://artifacthub.io/packages/helm/bitnami/redis) 11 | - [Memcached](https://artifacthub.io/packages/helm/bitnami/memcached) 12 | - [RRDcached](https://github.com/crazy-max/docker-rrdcached) 13 | 14 | ## Installing the Chart 15 | 16 | To install the chart with the release name `my-release`: 17 | 18 | ```bash 19 | $ helm install my-release . 20 | ``` 21 | 22 | The command deploys LibreNMS and required components on the Kubernetes cluster in the default configuration. 23 | 24 | > **Tip**: List all releases using `helm list` 25 | 26 | ## Uninstalling the Chart 27 | 28 | To uninstall/delete the `my-release` deployment: 29 | 30 | ```bash 31 | $ helm delete my-release 32 | ``` 33 | 34 | The command removes all the Kubernetes components associated with the chart and deletes the release. 35 | 36 | ## Persistence 37 | 38 | The [LibreNMS](https://github.com/librenms/docker) image stores LibreNMS data, RRD graph and configurations at the `/data` path of the container. 39 | 40 | The chart mounts a [Persistent Volume](https://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning, by default. An existing PersistentVolumeClaim can also be defined. 41 | -------------------------------------------------------------------------------- /charts/fossology/values.yaml: -------------------------------------------------------------------------------- 1 | nameOverride: "" 2 | fullnameOverride: "" 3 | 4 | serviceAccount: 5 | # Specifies whether a service account should be created 6 | create: true 7 | # Annotations to add to the service account 8 | annotations: {} 9 | # The name of the service account to use. 10 | # If not set and create is true, a name is generated using the fullname template 11 | name: "" 12 | 13 | image: 14 | repository: fossology/fossology 15 | pullPolicy: IfNotPresent 16 | tag: "" 17 | imagePullSecrets: [] 18 | 19 | podAnnotations: {} 20 | podSecurityContext: 21 | fsGroup: 999 22 | 23 | nodeSelector: {} 24 | tolerations: [] 25 | affinity: {} 26 | 27 | ingress: 28 | enabled: false 29 | className: nginx 30 | annotations: 31 | nginx.ingress.kubernetes.io/proxy-body-size: 500M 32 | # kubernetes.io/ingress.class: nginx 33 | # kubernetes.io/tls-acme: "true" 34 | hosts: 35 | - host: chart-example.local 36 | paths: 37 | - path: /repo 38 | pathType: ImplementationSpecific 39 | tls: [] 40 | # - secretName: chart-example-tls 41 | # hosts: 42 | # - chart-example.local 43 | 44 | scheduler: 45 | securityContext: {} 46 | service: 47 | type: ClusterIP 48 | port: 24693 49 | resources: {} 50 | 51 | web: 52 | securityContext: {} 53 | service: 54 | type: ClusterIP 55 | port: 80 56 | resources: {} 57 | 58 | persistence: 59 | enabled: false 60 | size: 10Gi 61 | existingClaim: "" 62 | storageClass: "" 63 | mountPath: /srv/fossology/repository 64 | 65 | postgresql: 66 | auth: 67 | enablePostgresUser: false 68 | username: fossy 69 | password: fossy 70 | database: fossology 71 | -------------------------------------------------------------------------------- /charts/static-page/templates/imageupdateautomation-docker.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.updateAutomation.docker.enabled }} 2 | # Opens a PR in a Flux Git repository whenever a new image is detected by the scanner 3 | apiVersion: image.toolkit.fluxcd.io/v1beta1 4 | kind: ImageUpdateAutomation 5 | metadata: 6 | name: {{ include "docs.fullname" . }}-docker 7 | labels: 8 | {{- include "docs.labels" . | nindent 4 }} 9 | spec: 10 | {{- with .Values.updateAutomation.fluxRepository }} 11 | interval: {{ .checkInterval }} 12 | sourceRef: 13 | kind: GitRepository 14 | name: {{ required "A git repository name must be provided in .Values.updateAutomation.fluxRepository.gitRepositoryRef" .gitRepositoryRef }} 15 | namespace: {{ .namespace }} 16 | update: 17 | path: {{ .path }} 18 | strategy: Setters 19 | {{- end }} 20 | git: 21 | checkout: 22 | ref: 23 | branch: main 24 | commit: 25 | author: 26 | email: fluxcdbot@users.noreply.github.com 27 | name: fluxcdbot 28 | messageTemplate: | 29 | {{`Automated Docker image update 30 | 31 | Automation name: {{ .AutomationObject }} 32 | 33 | Files: 34 | {{ range $filename, $_ := .Updated.Files -}} 35 | - {{ $filename }} 36 | {{ end -}} 37 | 38 | Objects: 39 | {{ range $resource, $_ := .Updated.Objects -}} 40 | - {{ $resource.Kind }} {{ $resource.Name }} 41 | {{ end -}} 42 | 43 | Images: 44 | {{ range .Updated.Images -}} 45 | - {{.}} 46 | {{ end -}} 47 | `}} 48 | push: 49 | branch: automatic-flux/{{ include "docs.fullname" . }}-docker 50 | {{- end }} 51 | -------------------------------------------------------------------------------- /charts/nginx-static/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 "nginx-static.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 "nginx-static.fullname" . }}' 11 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "nginx-static.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 "nginx-static.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/errbot/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "errbot.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "errbot.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "errbot.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "errbot.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/static-page/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "docs.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "docs.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "docs.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "docs.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "unifi.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "unifi.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "unifi.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "unifi.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/sshportal/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "sshportal.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "sshportal.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "sshportal.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "sshportal.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/allure/templates/deployment-ui.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "allure.fullname" . }}-ui 5 | labels: 6 | {{- include "allure-ui.labels" . | nindent 4 }} 7 | spec: 8 | replicas: {{ .Values.ui.replicaCount }} 9 | selector: 10 | matchLabels: 11 | {{- include "allure-ui.selectorLabels" . | nindent 6 }} 12 | template: 13 | metadata: 14 | {{- with .Values.ui.podAnnotations }} 15 | annotations: 16 | {{- toYaml . | nindent 8 }} 17 | {{- end }} 18 | labels: 19 | {{- include "allure-ui.selectorLabels" . | nindent 8 }} 20 | spec: 21 | {{- with .Values.imagePullSecrets }} 22 | imagePullSecrets: 23 | {{- toYaml . | nindent 8 }} 24 | {{- end }} 25 | securityContext: 26 | {{- toYaml .Values.ui.podSecurityContext | nindent 8 }} 27 | containers: 28 | - name: allure-ui 29 | securityContext: 30 | {{- toYaml .Values.ui.securityContext | nindent 12 }} 31 | {{- with .Values.ui.image }} 32 | image: "{{ .repository }}:{{ .tag }}" 33 | imagePullPolicy: {{ .pullPolicy }} 34 | {{- end }} 35 | envFrom: 36 | - configMapRef: 37 | name: {{ include "allure.fullname" . }}-ui 38 | ports: 39 | - name: ui 40 | containerPort: 5252 41 | protocol: TCP 42 | livenessProbe: 43 | httpGet: 44 | path: /allure-docker-service-ui/version 45 | port: ui 46 | readinessProbe: 47 | httpGet: 48 | path: /allure-docker-service-ui/version 49 | port: ui 50 | {{- with .Values.ui.resources }} 51 | resources: 52 | {{- toYaml . | nindent 12 }} 53 | {{- end }} 54 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get the application URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.app.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "webhook-site.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.app.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "webhook-site.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "webhook-site.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.app.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "webhook-site.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /charts/librenms/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled }} 2 | Congratulations! You can now access to LibreNMS with the following address: 3 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }} 4 | {{- else }} 5 | 1. Get the application URL by running these commands: 6 | {{- end }} 7 | {{- if contains "NodePort" .Values.app.service.type }} 8 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "librenms.fullname" . }}) 9 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 10 | echo http://$NODE_IP:$NODE_PORT 11 | {{- else if contains "LoadBalancer" .Values.app.service.type }} 12 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 13 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "librenms.fullname" . }}' 14 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "librenms.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 15 | echo http://$SERVICE_IP:{{ .Values.app.service.port }} 16 | {{- else if and (contains "ClusterIP" .Values.app.service.type) (not .Values.ingress.enabled) }} 17 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "librenms.name" . }},app.kubernetes.io/component=app,app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 18 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 19 | echo "Visit http://127.0.0.1:8080 to use your application" 20 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 21 | {{- end }} 22 | 23 | Default credentials are librenms / librenms . Be sure to change them! 24 | -------------------------------------------------------------------------------- /charts/salt/README.md: -------------------------------------------------------------------------------- 1 | # Salt (SaltStack) 2 | 3 | [Salt](https://saltproject.io/) is a software to automate the management and configuration of any infrastructure or application at scale. 4 | 5 | ## Components 6 | 7 | This chart does not require any additional component to be installed. 8 | 9 | ## Installing the Chart 10 | 11 | To install the chart with the release name `my-release`: 12 | 13 | ```bash 14 | $ helm install my-release . 15 | ``` 16 | 17 | The command deploys Salt and required components on the Kubernetes cluster in the default configuration. 18 | 19 | > **Tip**: List all releases using `helm list` 20 | 21 | ## Advanced installation 22 | 23 | You may want to use [git-sync](https://github.com/kubernetes/git-sync) to keep up-to-date in latest changes in your Salt state definition. 24 | 25 | You can use the following values as an example: 26 | 27 | ```yaml 28 | master: 29 | file_root: /srv/salt/salt-repo-NAME 30 | service: 31 | type: LoadBalancer 32 | loadBalancerIP: 20.0.0.1 33 | tolerations: 34 | - effect: NoSchedule 35 | key: kubernetes.azure.com/scalesetpriority 36 | operator: Equal 37 | value: spot 38 | gitsync: 39 | enabled: true 40 | envFrom: 41 | - secretRef: 42 | name: salt-gitsync 43 | config: 44 | repo: https://github.com/organization/salt-repo-NAME 45 | username: git 46 | ``` 47 | 48 | ## Uninstalling the Chart 49 | 50 | To uninstall/delete the `my-release` deployment: 51 | 52 | ```bash 53 | $ helm delete my-release 54 | ``` 55 | 56 | The command removes all the Kubernetes components associated with the chart and deletes the release. 57 | 58 | ## Persistence 59 | 60 | The [SaltStack](https://hub.docker.com/r/saltstack/salt) image stores Salt configuration data (states) at `/srv/salt`, and also PKI files at `/etc/salt/pki` in a single Volume. 61 | 62 | The chart mounts a [Persistent Volume](https://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning, by default. An existing PersistentVolumeClaim can also be defined. 63 | -------------------------------------------------------------------------------- /charts/static-page/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "docs.fullname" . }} 5 | labels: 6 | {{- include "docs.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | selector: 12 | matchLabels: 13 | {{- include "docs.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "docs.selectorLabels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | serviceAccountName: {{ include "docs.serviceAccountName" . }} 28 | securityContext: 29 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 30 | containers: 31 | - name: app 32 | securityContext: 33 | {{- toYaml .Values.securityContext | nindent 12 }} 34 | {{- with .Values.image }} 35 | image: {{ required "Repository in .Values.image.repository must be present" .repository }}:{{ .tag }} 36 | imagePullPolicy: {{ .pullPolicy }} 37 | {{- end }} 38 | ports: 39 | - name: http 40 | containerPort: {{ .Values.service.port }} 41 | protocol: TCP 42 | readinessProbe: 43 | httpGet: 44 | path: / 45 | port: http 46 | resources: 47 | {{- toYaml .Values.resources | nindent 12 }} 48 | {{- with .Values.nodeSelector }} 49 | nodeSelector: 50 | {{- toYaml . | nindent 8 }} 51 | {{- end }} 52 | {{- with .Values.affinity }} 53 | affinity: 54 | {{- toYaml . | nindent 8 }} 55 | {{- end }} 56 | {{- with .Values.tolerations }} 57 | tolerations: 58 | {{- toYaml . | nindent 8 }} 59 | {{- end }} 60 | -------------------------------------------------------------------------------- /charts/librenms/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled }} 2 | {{- $fullName := include "librenms.fullname" . }} 3 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} 4 | apiVersion: networking.k8s.io/v1 5 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }} 6 | apiVersion: networking.k8s.io/v1beta1 7 | {{- else }} 8 | apiVersion: extensions/v1beta1 9 | {{- end }} 10 | kind: Ingress 11 | metadata: 12 | name: {{ $fullName }} 13 | labels: 14 | {{- include "librenms.labels" . | nindent 4 }} 15 | {{- with .Values.ingress.annotations }} 16 | annotations: 17 | {{- toYaml . | nindent 4 }} 18 | {{- end }} 19 | spec: 20 | ingressClassName: {{ default "nginx" .Values.ingress.ingressClassName }} 21 | {{- if .Values.ingress.tls }} 22 | tls: 23 | - hosts: 24 | - {{ .Values.ingress.hostname | quote }} 25 | secretName: {{ default (printf "%s-tls" $fullName) .Values.ingress.existingSecret }} 26 | {{- end }} 27 | rules: 28 | - host: {{ .Values.ingress.hostname | quote }} 29 | http: 30 | paths: 31 | - path: "/" 32 | pathType: Prefix 33 | backend: 34 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} 35 | service: 36 | name: {{ $fullName }} 37 | port: 38 | name: http 39 | {{- else }} 40 | serviceName: {{ $fullName }} 41 | servicePort: http 42 | {{- end }} 43 | {{- if and (.Values.smokeping.enabled) (.Values.smokeping.ingress) }} 44 | - path: "/smokeping/" 45 | pathType: Prefix 46 | backend: 47 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} 48 | service: 49 | name: {{ $fullName }}-smokeping 50 | port: 51 | name: smokeping 52 | {{- else }} 53 | serviceName: {{ $fullName }}-smokeping 54 | servicePort: smokeping 55 | {{- end }} 56 | {{- end }} 57 | {{- end }} 58 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "nginx-static.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 "nginx-static.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "nginx-static.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "nginx-static.labels" -}} 54 | helm.sh/chart: {{ include "nginx-static.chart" . }} 55 | {{ include "nginx-static.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "nginx-static.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "nginx-static.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | {{- end }} 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Midokura - A Sony Group Company](https://www.midokura.com/wp-content/uploads/2020/02/logo-midokura.png) 2 | 3 | # Helm Charts 4 | 5 | This repository contains several Helm Charts for different open-source applications. 6 | If this content helps you, [give this repo a star!](https://github.com/midokura/helm-charts-community/stargazers) 🌟 7 | 8 | | Name | Application | 9 | |------|-------------| 10 | | [LibreNMS](https://github.com/midokura/helm-charts-community/tree/main/charts/librenms) | [librenms/docker](https://github.com/librenms/docker) | 11 | | [SSHPortal](https://github.com/midokura/helm-charts-community/tree/main/charts/sshportal) | [moul/sshportal](https://github.com/moul/sshportal) | 12 | | [FOSSology](https://github.com/midokura/helm-charts-community/tree/main/charts/fossology) | [fossology/fossology](https://github.com/fossology/fossology) | 13 | | [Unifi-controller](https://github.com/midokura/helm-charts-community/tree/main/charts/unifi-controller) | [linuxserver/unifi-controller](https://hub.docker.com/r/linuxserver/unifi-controller) | 14 | | [Webhook.site](https://github.com/midokura/helm-charts-community/tree/main/charts/webhook-site) | [webhooksite/webhook.site](https://github.com/webhooksite/webhook.site) | 15 | | [nginx-static](https://github.com/midokura/helm-charts-community/tree/main/charts/nginx-static) | [nginx](https://hub.docker.com/_/nginx) | 16 | | [static-page](https://github.com/midokura/helm-charts-community/tree/main/charts/static-page) | N/A | 17 | | [Errbot](https://github.com/midokura/helm-charts-community/tree/main/charts/errbot) | [errbotio/errbot](https://github.com/errbotio/errbot) | 18 | | [Salt / SaltStack](https://github.com/midokura/helm-charts-community/tree/main/charts/salt) | [saltstack/salt](https://github.com/saltstack/salt) | 19 | | [Folding@Home](https://github.com/midokura/helm-charts-community/tree/main/charts/folding-at-home) | [foldingathome/fah-gpu](https://hub.docker.com/r/foldingathome/fah-gpu) | 20 | 21 | Feel free to contribute back or report any bugs you find. 22 | 23 | --- 24 | 25 | Discover all the talent that we have in midokura. We hope you will be part of it! 26 | [Join us!](https://www.midokura.com/careers/) 27 | -------------------------------------------------------------------------------- /charts/errbot/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "errbot.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "errbot.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/salt/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.master.ingress.enabled -}} 2 | {{- $fullName := include "salt.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "salt.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/static-page/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "docs.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "docs.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "unifi.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "unifi.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/fossology/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "fossology.fullname" . -}} 3 | {{- $svcPort := .Values.web.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "fossology.base.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /charts/allure/templates/deployment-api.yaml: -------------------------------------------------------------------------------- 1 | {{- $fullName := include "allure.fullname" . }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ $fullName }}-api 6 | labels: 7 | {{- include "allure-api.labels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.api.replicaCount }} 10 | selector: 11 | matchLabels: 12 | {{- include "allure-api.selectorLabels" . | nindent 6 }} 13 | template: 14 | metadata: 15 | {{- with .Values.api.podAnnotations }} 16 | annotations: 17 | {{- toYaml . | nindent 8 }} 18 | {{- end }} 19 | labels: 20 | {{- include "allure-api.selectorLabels" . | nindent 8 }} 21 | spec: 22 | {{- with .Values.imagePullSecrets }} 23 | imagePullSecrets: 24 | {{- toYaml . | nindent 8 }} 25 | {{- end }} 26 | securityContext: 27 | {{- toYaml .Values.api.podSecurityContext | nindent 8 }} 28 | containers: 29 | - name: allure-api 30 | securityContext: 31 | {{- toYaml .Values.api.securityContext | nindent 12 }} 32 | {{- with .Values.api.image }} 33 | image: "{{ .repository }}:{{ .tag }}" 34 | imagePullPolicy: {{ .pullPolicy }} 35 | {{- end }} 36 | envFrom: 37 | - configMapRef: 38 | name: {{ $fullName }}-api 39 | - secretRef: 40 | name: {{ .Values.credentials }} 41 | volumeMounts: 42 | - name: reports-volume 43 | mountPath: /app/projects 44 | ports: 45 | - name: api 46 | containerPort: 5050 47 | protocol: TCP 48 | livenessProbe: 49 | httpGet: 50 | path: /allure-docker-service/version 51 | port: api 52 | readinessProbe: 53 | httpGet: 54 | path: /allure-docker-service/version 55 | port: api 56 | {{- with .Values.api.resources }} 57 | resources: 58 | {{- toYaml . | nindent 12 }} 59 | {{- end }} 60 | volumes: 61 | - name: reports-volume 62 | {{- if not .Values.volume.enabled }} 63 | emptyDir: {} 64 | {{- else }} 65 | persistentVolumeClaim: 66 | claimName: {{ .Values.volume.existingClaim | default (printf "%s-data" $fullName) }} 67 | {{- end }} 68 | -------------------------------------------------------------------------------- /charts/folding-at-home/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "fah.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 "fah.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "fah.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "fah.labels" -}} 54 | helm.sh/chart: {{ include "fah.chart" . }} 55 | {{ include "fah.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "fah.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "fah.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | {{- end }} 70 | 71 | {{/* 72 | Create the name of the service account to use 73 | */}} 74 | {{- define "fah.serviceAccountName" -}} 75 | {{- if .Values.serviceAccount.create }} 76 | {{- default (include "fah.fullname" .) .Values.serviceAccount.name }} 77 | {{- else }} 78 | {{- default "default" .Values.serviceAccount.name }} 79 | {{- end }} 80 | {{- end }} 81 | -------------------------------------------------------------------------------- /charts/errbot/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "errbot.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 "errbot.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "errbot.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "errbot.labels" -}} 54 | helm.sh/chart: {{ include "errbot.chart" . }} 55 | {{ include "errbot.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "errbot.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "errbot.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | {{- end }} 70 | 71 | {{/* 72 | Create the name of the service account to use 73 | */}} 74 | {{- define "errbot.serviceAccountName" -}} 75 | {{- if .Values.serviceAccount.create }} 76 | {{- default (include "errbot.fullname" .) .Values.serviceAccount.name }} 77 | {{- else }} 78 | {{- default "default" .Values.serviceAccount.name }} 79 | {{- end }} 80 | {{- end }} 81 | -------------------------------------------------------------------------------- /charts/unifi-controller/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "unifi.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 "unifi.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "unifi.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "unifi.labels" -}} 54 | helm.sh/chart: {{ include "unifi.chart" . }} 55 | {{ include "unifi.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "unifi.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "unifi.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | {{- end }} 70 | 71 | {{/* 72 | Create the name of the service account to use 73 | */}} 74 | {{- define "unifi.serviceAccountName" -}} 75 | {{- if .Values.serviceAccount.create }} 76 | {{- default (include "unifi.fullname" .) .Values.serviceAccount.name }} 77 | {{- else }} 78 | {{- default "default" .Values.serviceAccount.name }} 79 | {{- end }} 80 | {{- end }} 81 | -------------------------------------------------------------------------------- /charts/sshportal/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "sshportal.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 "sshportal.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "sshportal.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "sshportal.labels" -}} 54 | helm.sh/chart: {{ include "sshportal.chart" . }} 55 | {{ include "sshportal.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "sshportal.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "sshportal.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | {{- end }} 70 | 71 | {{/* 72 | Create the name of the service account to use 73 | */}} 74 | {{- define "sshportal.serviceAccountName" -}} 75 | {{- if .Values.serviceAccount.create }} 76 | {{- default (include "sshportal.fullname" .) .Values.serviceAccount.name }} 77 | {{- else }} 78 | {{- default "default" .Values.serviceAccount.name }} 79 | {{- end }} 80 | {{- end }} 81 | -------------------------------------------------------------------------------- /charts/static-page/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "docs.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 "docs.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "docs.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "docs.labels" -}} 54 | helm.sh/chart: {{ include "docs.chart" . }} 55 | {{- with .Values.extraLabels }} 56 | {{ toYaml . }} 57 | {{- end }} 58 | {{ include "docs.selectorLabels" . }} 59 | {{- if .Chart.AppVersion }} 60 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 61 | {{- end }} 62 | app.kubernetes.io/managed-by: {{ .Release.Service }} 63 | {{ include "charts.midokura.labels" . }} 64 | {{- end }} 65 | 66 | {{/* 67 | Selector labels 68 | */}} 69 | {{- define "docs.selectorLabels" -}} 70 | app.kubernetes.io/name: {{ include "docs.name" . }} 71 | app.kubernetes.io/instance: {{ .Release.Name }} 72 | {{- end }} 73 | 74 | {{/* 75 | Create the name of the service account to use 76 | */}} 77 | {{- define "docs.serviceAccountName" -}} 78 | {{- if .Values.serviceAccount.create }} 79 | {{- default (include "docs.fullname" .) .Values.serviceAccount.name }} 80 | {{- else }} 81 | {{- default "default" .Values.serviceAccount.name }} 82 | {{- end }} 83 | {{- end }} 84 | -------------------------------------------------------------------------------- /charts/nginx-static/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "nginx-static.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{/* Basic auth */}} 10 | {{- if and .Values.ingress.auth.enabled (not (hasKey .Values.ingress.annotations "nginx.ingress.kubernetes.io/auth-type")) }} 11 | {{- $_ := set .Values.ingress.annotations "nginx.ingress.kubernetes.io/auth-type" "basic" }} 12 | {{- $_ := set .Values.ingress.annotations "nginx.ingress.kubernetes.io/auth-secret" (default (printf "%s-auth" .Release.Name) .Values.ingress.auth.useSecretName) }} 13 | {{- end }} 14 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 15 | apiVersion: networking.k8s.io/v1 16 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 17 | apiVersion: networking.k8s.io/v1beta1 18 | {{- else -}} 19 | apiVersion: extensions/v1beta1 20 | {{- end }} 21 | kind: Ingress 22 | metadata: 23 | name: {{ $fullName }} 24 | labels: 25 | {{- include "nginx-static.labels" . | nindent 4 }} 26 | annotations: 27 | {{- with .Values.ingress.annotations }} 28 | {{- toYaml . | nindent 4 }} 29 | {{- end }} 30 | spec: 31 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 32 | ingressClassName: {{ .Values.ingress.className }} 33 | {{- end }} 34 | {{- if .Values.ingress.tls }} 35 | tls: 36 | - hosts: 37 | - {{ .Values.ingress.hostname | quote }} 38 | {{- if deepEqual .Values.ingress.tls true }} 39 | secretName: {{ printf "%s-tls" .Values.ingress.hostname | quote }} 40 | {{- else }} 41 | secretName: {{ .Values.ingress.tls | quote }} 42 | {{- end }} 43 | {{- end }} 44 | rules: 45 | - host: {{ .Values.ingress.hostname | quote }} 46 | http: 47 | paths: 48 | - path: / 49 | {{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 50 | pathType: Prefix 51 | {{- end }} 52 | backend: 53 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 54 | service: 55 | name: {{ $fullName }} 56 | port: 57 | number: {{ $svcPort }} 58 | {{- else }} 59 | serviceName: {{ $fullName }} 60 | servicePort: {{ $svcPort }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /charts/static-page/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | 3 | extraLabels: {} 4 | # tags.datadoghq.com/service: static-page 5 | 6 | image: 7 | repository: "" 8 | pullPolicy: Always 9 | tag: latest 10 | 11 | imagePullSecrets: [] 12 | nameOverride: "" 13 | fullnameOverride: "" 14 | 15 | # Configures automatic image upgrades via flux image update 16 | # This opens new PRs whenever a new docker image or helm chart is detected to update Flux definitions 17 | updateAutomation: 18 | # -- Enable automation for Docker image versions 19 | # SemverRange is disabled as the chart enforces its own already 20 | docker: 21 | enabled: false 22 | filterTags: {} 23 | policy: {} 24 | # semver: 25 | # range: 26 | # -- Flux Repository resource reference to use to create a PR 27 | fluxRepository: 28 | # -- Reference to a GitRepository to where PRs with changes will be opened 29 | gitRepositoryRef: "" 30 | namespace: flux-system 31 | checkInterval: 10m 32 | path: "" 33 | 34 | 35 | serviceAccount: 36 | # -- Specifies whether a service account should be created 37 | create: false 38 | # -- Annotations to add to the service account 39 | annotations: {} 40 | # -- The name of the service account to use. 41 | # If not set and create is true, a name is generated using the fullname template 42 | name: "" 43 | 44 | podAnnotations: {} 45 | 46 | podSecurityContext: {} 47 | # fsGroup: 2000 48 | 49 | securityContext: {} 50 | # capabilities: 51 | # drop: 52 | # - ALL 53 | # readOnlyRootFilesystem: true 54 | # runAsNonRoot: true 55 | # runAsUser: 1000 56 | 57 | service: 58 | type: ClusterIP 59 | port: 80 60 | 61 | ingress: 62 | enabled: false 63 | className: "" 64 | annotations: {} 65 | hosts: 66 | - host: chart-example.local 67 | paths: 68 | - path: / 69 | pathType: ImplementationSpecific 70 | tls: [] 71 | # - secretName: chart-example-tls 72 | # hosts: 73 | # - chart-example.local 74 | 75 | resources: {} 76 | # We usually recommend not to specify default resources and to leave this as a conscious 77 | # choice for the user. This also increases chances charts run on environments with little 78 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 79 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 80 | # limits: 81 | # cpu: 100m 82 | # memory: 128Mi 83 | # requests: 84 | # cpu: 100m 85 | # memory: 128Mi 86 | 87 | autoscaling: 88 | enabled: false 89 | minReplicas: 2 90 | maxReplicas: 10 91 | targetCPUUtilizationPercentage: 80 92 | # targetMemoryUtilizationPercentage: 80 93 | 94 | nodeSelector: {} 95 | 96 | tolerations: [] 97 | 98 | affinity: {} 99 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "webhook-site.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 "webhook-site.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "webhook-site.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "webhook-site.labels" -}} 54 | helm.sh/chart: {{ include "webhook-site.chart" . }} 55 | {{ include "webhook-site.app.selectorLabels" . }} 56 | {{- if .Chart.AppVersion }} 57 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 58 | {{- end }} 59 | app.kubernetes.io/managed-by: {{ .Release.Service }} 60 | {{ include "charts.midokura.labels" . }} 61 | {{- end }} 62 | 63 | {{/* 64 | Selector labels 65 | */}} 66 | {{- define "webhook-site.app.selectorLabels" -}} 67 | app.kubernetes.io/name: {{ include "webhook-site.name" . }} 68 | app.kubernetes.io/instance: {{ .Release.Name }} 69 | app.kubernetes.io/component: webhook-site 70 | {{- end }} 71 | 72 | {{- define "webhook-site.echo.selectorLabels" -}} 73 | app.kubernetes.io/name: {{ include "webhook-site.name" . }} 74 | app.kubernetes.io/instance: {{ .Release.Name }} 75 | app.kubernetes.io/component: echo-server 76 | {{- end }} 77 | 78 | {{/* 79 | Create the name of the service account to use 80 | */}} 81 | {{- define "webhook-site.serviceAccountName" -}} 82 | {{- if .Values.serviceAccount.create }} 83 | {{- default (include "webhook-site.fullname" .) .Values.serviceAccount.name }} 84 | {{- else }} 85 | {{- default "default" .Values.serviceAccount.name }} 86 | {{- end }} 87 | {{- end }} 88 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "webhook-site.fullname" . -}} 3 | {{- $svcName := printf "%s" $fullName -}} 4 | {{- $svcPort := .Values.app.service.port -}} 5 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 6 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 7 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 8 | {{- end }} 9 | {{- end }} 10 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 11 | apiVersion: networking.k8s.io/v1 12 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 13 | apiVersion: networking.k8s.io/v1beta1 14 | {{- else -}} 15 | apiVersion: extensions/v1beta1 16 | {{- end }} 17 | kind: Ingress 18 | metadata: 19 | name: {{ $fullName }} 20 | labels: 21 | {{- include "webhook-site.labels" . | nindent 4 }} 22 | {{- with .Values.ingress.annotations }} 23 | annotations: 24 | {{- toYaml . | nindent 4 }} 25 | {{- end }} 26 | spec: 27 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 28 | ingressClassName: {{ .Values.ingress.className }} 29 | {{- end }} 30 | {{- if .Values.ingress.tls }} 31 | tls: 32 | - hosts: 33 | - {{ .Values.ingress.hostname }} 34 | secretName: {{ $fullName }}-tls-cert 35 | {{- end }} 36 | rules: 37 | - host: {{ .Values.ingress.hostname | quote }} 38 | http: 39 | paths: 40 | - path: / 41 | {{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 42 | pathType: Prefix 43 | {{- end }} 44 | backend: 45 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 46 | service: 47 | name: {{ $svcName }} 48 | port: 49 | number: {{ $svcPort }} 50 | {{- else }} 51 | serviceName: {{ $svcName }} 52 | servicePort: {{ $svcPort }} 53 | {{- end }} 54 | - path: /socket.io 55 | {{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 56 | pathType: Prefix 57 | {{- end }} 58 | backend: 59 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 60 | service: 61 | name: laravel-echo-server 62 | port: 63 | number: {{ .Values.echo.service.port }} 64 | {{- else }} 65 | serviceName: laravel-echo-server 66 | servicePort: {{ .Values.echo.service.port }} 67 | {{- end }} 68 | {{- end }} 69 | -------------------------------------------------------------------------------- /charts/folding-at-home/templates/application.yaml: -------------------------------------------------------------------------------- 1 | {{- $gpuEnabled := .Values.gpu.enabled }} 2 | {{- $fullName := include "fah.fullname" . }} 3 | {{- $fullNameSuffix := $gpuEnabled | ternary (printf "%s-gpu" $fullName) ($fullName) }} 4 | apiVersion: apps/v1 5 | kind: StatefulSet 6 | metadata: 7 | name: {{ $fullNameSuffix }} 8 | labels: 9 | {{- include "fah.labels" . | nindent 4 }} 10 | spec: 11 | replicas: {{ .Values.replicaCount }} 12 | serviceName: {{ printf "%s-headless" $fullName }} 13 | selector: 14 | matchLabels: 15 | {{- include "fah.selectorLabels" . | nindent 6 }} 16 | template: 17 | metadata: 18 | {{- with .Values.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | {{- include "fah.selectorLabels" . | nindent 8 }} 24 | spec: 25 | {{- with .Values.imagePullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 8 }} 28 | {{- end }} 29 | serviceAccountName: {{ include "fah.serviceAccountName" . }} 30 | securityContext: 31 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.securityContext | nindent 12 }} 36 | {{- $imageData := $gpuEnabled | ternary .Values.gpu.image .Values.image }} 37 | image: "{{ $imageData.repository }}:{{ $imageData.tag | default .Chart.AppVersion }}" 38 | imagePullPolicy: {{ $imageData.pullPolicy }} 39 | ports: 40 | - name: http 41 | containerPort: 7396 42 | protocol: TCP 43 | - name: command 44 | containerPort: 36330 45 | protocol: TCP 46 | {{- if and ($gpuEnabled) (not .Values.resources) }} 47 | {{- fail "Define GPU resources to assign a GPU." }} 48 | {{- end }} 49 | resources: 50 | {{- toYaml .Values.resources | nindent 12 }} 51 | volumeMounts: 52 | - name: work 53 | mountPath: {{ $gpuEnabled | ternary (.Values.gpu.workPath) (.Values.workPath) | quote }} 54 | - name: config 55 | mountPath: {{ $gpuEnabled | ternary (.Values.gpu.configFile) (.Values.configFile) | quote }} 56 | subPath: config.xml 57 | {{- with .Values.nodeSelector }} 58 | nodeSelector: 59 | {{- toYaml . | nindent 8 }} 60 | {{- end }} 61 | {{- with .Values.affinity }} 62 | affinity: 63 | {{- toYaml . | nindent 8 }} 64 | {{- end }} 65 | {{- with .Values.tolerations }} 66 | tolerations: 67 | {{- toYaml . | nindent 8 }} 68 | {{- end }} 69 | volumes: 70 | - name: work 71 | emptyDir: {} 72 | - name: config 73 | secret: 74 | secretName: {{ $fullName }}-config 75 | -------------------------------------------------------------------------------- /charts/allure/values.yaml: -------------------------------------------------------------------------------- 1 | 2 | nameOverride: "" 3 | fullnameOverride: "" 4 | 5 | imagePullSecrets: {} 6 | 7 | ui: 8 | replicaCount: 1 9 | image: 10 | repository: frankescobar/allure-docker-service-ui 11 | tag: "7.0.3" 12 | digest: sha256:b06d1ee48be866d674bf2719df068e0402cee83553bc94bb05f06821bfdb5deb 13 | pullPolicy: IfNotPresent 14 | podAnnotations: {} 15 | podSecurityContext: {} 16 | securityContext: {} 17 | resources: {} 18 | service: 19 | type: ClusterIP 20 | port: 80 21 | 22 | api: 23 | replicaCount: 1 24 | # Run developer mode to log HTTP requests 25 | devMode: false 26 | image: 27 | repository: frankescobar/allure-docker-service 28 | tag: "2.19.0" 29 | digest: sha256:e1db15a4f235c30c424b3bb06e3b87e7583c9606981dc9d7a2746fd4f2a3c145 30 | pullPolicy: IfNotPresent 31 | podAnnotations: {} 32 | # WARNING: Do not change fsGroup. 33 | # Group must be 1000 to use the shared Volume. 34 | podSecurityContext: 35 | fsGroup: 1000 36 | # WARNING: Do not change runAsUser & runAsGroup. 37 | # User & Group must be 1000 to use the shared Volume. 38 | securityContext: 39 | runAsUser: 1000 40 | runAsGroup: 1000 41 | resources: {} 42 | service: 43 | type: ClusterIP 44 | port: 80 45 | 46 | 47 | # Keep Old Allure Results 48 | keepHistory: true 49 | 50 | # Number of Allure Reports to Keep 51 | # Set to NONE to use Generate Reports Endpoint 52 | updateFrequency: NONE 53 | 54 | # Enables Admin & Viewer Login 55 | securityEnabled: true 56 | 57 | # Make Viewer Endpoints Public 58 | publicViewerEndpoint: false 59 | 60 | # Set Admin & Viewer Credentials on Security Enable 61 | # apiVersion: v1 62 | # kind: Secret 63 | # metadata: 64 | # name: api-credentials 65 | # type: Opaque 66 | # data: 67 | # # echo -n 'my_username' | base64 68 | # SECURITY_USER: bXlfdXNlcm5hbWU= 69 | # # echo -n 'my_password' | base64 70 | # SECURITY_PASS: bXlfcGFzc3dvcmQ= 71 | # # echo -n 'view_user' | base64 72 | # SECURITY_VIEWER_USER: dmlld191c2Vy 73 | # # echo -n 'view_pass' | base64 74 | # SECURITY_VIEWER_PASS: dmlld19wYXNz 75 | credentials: api-credentials 76 | 77 | # Allure History and Reports Storage Resources 78 | volume: 79 | enabled: true 80 | storageClassName: "" 81 | size: 4Gi 82 | existingClaim: "" 83 | accessModes: 84 | - ReadWriteMany 85 | 86 | # For Large Allure Results: 87 | # - Increase Connection Timeout 88 | # - Increase Body Size 89 | # - Diasble Modsecurity 90 | ingress: 91 | enabled: false 92 | tls: false 93 | existingSecret: "" 94 | className: nginx 95 | # Allure UI needs a Public Allure API Hostname 96 | hostname: "" 97 | annotations: 98 | nginx.ingress.kubernetes.io/proxy-body-size: 1024m 99 | # cert-manager.io/cluster-issuer: letsencrypt 100 | # nginx.ingress.kubernetes.io/enable-modsecurity: 'false' 101 | # nginx.ingress.kubernetes.io/proxy-connect-timeout: '900' 102 | -------------------------------------------------------------------------------- /charts/salt/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for salt. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | global: 8 | image: 9 | repository: saltstack/salt 10 | pullPolicy: IfNotPresent 11 | tag: "" 12 | 13 | imagePullSecrets: [] 14 | nameOverride: "" 15 | fullnameOverride: "" 16 | 17 | master: 18 | # -- Change salt-master file_root directory where state / top data is stored 19 | # Use it along with git-sync for syncronized repos 20 | file_root: "" 21 | image: 22 | repository: saltstack/salt 23 | pullPolicy: IfNotPresent 24 | tag: "" 25 | podAnnotations: {} 26 | podSecurityContext: 27 | fsGroup: 450 28 | securityContext: {} 29 | # capabilities: 30 | # drop: 31 | # - ALL 32 | # readOnlyRootFilesystem: true 33 | # runAsNonRoot: true 34 | # runAsUser: 1000 35 | resources: {} 36 | service: 37 | type: ClusterIP 38 | loadBalancerIP: "" 39 | loadBalancerSourceRanges: [] 40 | ports: 41 | publish: 42 | expose: true 43 | port: 4505 44 | containerPort: 4505 45 | return: 46 | expose: true 47 | port: 4506 48 | containerPort: 4506 49 | https: 50 | expose: false 51 | port: 8000 52 | containerPort: 8000 53 | persistence: 54 | enabled: true 55 | size: 4Gi 56 | existingClaim: null 57 | storageClass: "" 58 | annotations: {} 59 | accessModes: 60 | #- ReadWriteMany 61 | - ReadWriteOnce 62 | nodeSelector: {} 63 | tolerations: [] 64 | affinity: {} 65 | ingress: 66 | enabled: false 67 | className: "" 68 | annotations: {} 69 | # kubernetes.io/ingress.class: nginx 70 | # kubernetes.io/tls-acme: "true" 71 | hosts: 72 | - host: chart-example.local 73 | paths: 74 | - path: / 75 | pathType: ImplementationSpecific 76 | tls: [] 77 | # - secretName: chart-example-tls 78 | # hosts: 79 | # - chart-example.local 80 | 81 | 82 | serviceAccount: 83 | # Specifies whether a service account should be created 84 | create: false 85 | # Annotations to add to the service account 86 | annotations: {} 87 | # The name of the service account to use. 88 | # If not set and create is true, a name is generated using the fullname template 89 | name: "" 90 | 91 | # Sidecar container that pulls content from Git repository (eg. custom private plugins) 92 | gitsync: 93 | enabled: false 94 | image: 95 | repository: gcr.io/k8s-staging-git-sync/git-sync 96 | tag: v4.0.0 97 | # digest: sha256:ad48c2dd8f5ae73e783c4a55bedb4cc13d51d347d157e6564c4debfd0fbd429d 98 | digest: null 99 | pullPolicy: IfNotPresent 100 | env: {} 101 | envFrom: [] 102 | resources: {} 103 | # use .Values.extraVolumes to define resources 104 | extraVolumeMounts: [] 105 | config: 106 | # repo: https://github.com/kubernetes/git-sync 107 | root: /srv/salt 108 | ref: HEAD 109 | period: 60s 110 | -------------------------------------------------------------------------------- /charts/salt/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "salt.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 "salt.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "salt.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "salt.base.labels" -}} 54 | helm.sh/chart: {{ include "salt.chart" . }} 55 | {{- if .Chart.AppVersion }} 56 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 57 | {{- end }} 58 | app.kubernetes.io/managed-by: {{ .Release.Service }} 59 | {{ include "charts.midokura.labels" . }} 60 | {{- end }} 61 | 62 | {{- define "salt.labels" -}} 63 | {{ include "salt.base.labels" . }} 64 | {{ include "salt.selectorLabels" . }} 65 | {{- end }} 66 | 67 | {{/* 68 | NOTE: Not including changing fields such as 69 | "version" and "chart" in "app" due to bug StatefulSet 70 | cannot be updated if using PVC and changing labels. 71 | helm/charts issue #7803 72 | */}} 73 | {{- define "salt.master.labels" -}} 74 | app.kubernetes.io/managed-by: {{ .Release.Service }} 75 | {{ include "salt.master.selectorLabels" . }} 76 | {{- end }} 77 | 78 | {{/* 79 | Selector labels 80 | */}} 81 | {{- define "salt.selectorLabels" -}} 82 | app.kubernetes.io/name: {{ include "salt.name" . }} 83 | app.kubernetes.io/instance: {{ .Release.Name }} 84 | {{- end }} 85 | {{- define "salt.master.selectorLabels" -}} 86 | {{ include "salt.selectorLabels" . }} 87 | app.kubernetes.io/component: master 88 | {{- end }} 89 | 90 | {{/* 91 | Create the name of the service account to use 92 | */}} 93 | {{- define "salt.serviceAccountName" -}} 94 | {{- if .Values.serviceAccount.create }} 95 | {{- default (include "salt.fullname" .) .Values.serviceAccount.name }} 96 | {{- else }} 97 | {{- default "default" .Values.serviceAccount.name }} 98 | {{- end }} 99 | {{- end }} 100 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/webhook-deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- $name := include "webhook-site.name" . }} 2 | {{- $fullName := include "webhook-site.fullname" . }} 3 | apiVersion: apps/v1 4 | kind: Deployment 5 | metadata: 6 | name: {{ $fullName }}-webhook 7 | labels: 8 | {{- include "webhook-site.labels" . | nindent 4 }} 9 | spec: 10 | replicas: {{ .Values.app.replicaCount }} 11 | selector: 12 | matchLabels: 13 | {{- include "webhook-site.app.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.app.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | {{- include "webhook-site.app.selectorLabels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | serviceAccountName: {{ include "webhook-site.serviceAccountName" . }} 28 | securityContext: 29 | {{- toYaml .Values.app.podSecurityContext | nindent 8 }} 30 | containers: 31 | - name: webhook 32 | args: 33 | - php 34 | - artisan 35 | - queue:work 36 | - --daemon 37 | - --tries=3 38 | - --timeout=10 39 | env: 40 | - name: APP_DEBUG 41 | value: "true" 42 | - name: APP_ENV 43 | value: dev 44 | - name: APP_LOG 45 | value: errorlog 46 | - name: APP_URL 47 | value: http://localhost:8084 48 | {{- range tuple "BROADCAST" "CACHE" "QUEUE" }} 49 | - name: {{.}}_DRIVER 50 | value: redis 51 | {{- end }} 52 | - name: DB_CONNECTION 53 | value: sqlite 54 | - name: ECHO_HOST_MODE 55 | value: path 56 | - name: REDIS_HOST 57 | value: {{ .Release.Name }}-redis-master 58 | {{- if and .Values.redis.auth.enabled .Values.redis.auth.password }} 59 | - name: REDIS_PASSWORD 60 | value: {{ .Values.redis.auth.password | quote }} 61 | {{- end }} 62 | securityContext: 63 | {{- toYaml .Values.app.securityContext | nindent 12 }} 64 | {{- with .Values.app.image }} 65 | image: "{{ .repository }}:{{ .tag | default $.Chart.AppVersion }}{{ if .digest }}@{{.digest}}{{ end }}" 66 | imagePullPolicy: {{ .pullPolicy }} 67 | {{- end }} 68 | ports: 69 | - name: http 70 | containerPort: 80 71 | protocol: TCP 72 | livenessProbe: 73 | httpGet: 74 | path: / 75 | port: http 76 | resources: 77 | {{- toYaml .Values.app.resources | nindent 12 }} 78 | {{- with .Values.app.nodeSelector }} 79 | nodeSelector: 80 | {{- toYaml . | nindent 8 }} 81 | {{- end }} 82 | {{- with .Values.app.affinity }} 83 | affinity: 84 | {{- toYaml . | nindent 8 }} 85 | {{- end }} 86 | {{- with .Values.app.tolerations }} 87 | tolerations: 88 | {{- toYaml . | nindent 8 }} 89 | {{- end }} 90 | -------------------------------------------------------------------------------- /charts/webhook-site/templates/echo-deployment.yaml: -------------------------------------------------------------------------------- 1 | {{- $fullName := include "webhook-site.fullname" . }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ $fullName }}-echo 6 | labels: 7 | {{- include "webhook-site.labels" . | nindent 4 }} 8 | spec: 9 | replicas: {{ .Values.echo.replicaCount }} 10 | selector: 11 | matchLabels: 12 | {{- include "webhook-site.echo.selectorLabels" . | nindent 6 }} 13 | template: 14 | metadata: 15 | {{- with .Values.echo.podAnnotations }} 16 | annotations: 17 | {{- toYaml . | nindent 8 }} 18 | {{- end }} 19 | labels: 20 | {{- include "webhook-site.echo.selectorLabels" . | nindent 8 }} 21 | spec: 22 | {{- with .Values.imagePullSecrets }} 23 | imagePullSecrets: 24 | {{- toYaml . | nindent 8 }} 25 | {{- end }} 26 | serviceAccountName: {{ include "webhook-site.serviceAccountName" . }} 27 | securityContext: 28 | {{- toYaml .Values.echo.podSecurityContext | nindent 8 }} 29 | containers: 30 | - name: echo 31 | env: 32 | - name: ECHO_ALLOW_CORS 33 | value: "true" 34 | {{- range tuple "HEADERS" "METHODS" "ORIGIN" }} 35 | - name: ECHO_ALLOW_{{.}} 36 | value: '*' 37 | {{- end }} 38 | - name: ECHO_PROTOCOL 39 | value: http 40 | - name: ECHO_REDIS_HOSTNAME 41 | value: {{ .Release.Name }}-redis-master 42 | {{- if and .Values.redis.auth.enabled .Values.redis.auth.password }} 43 | - name: ECHO_REDIS_PASSWORD 44 | value: {{ .Values.redis.auth.password | quote }} 45 | {{- end }} 46 | - name: ECHO_REDIS_PORT 47 | value: {{ default 6379 .Values.redis.master.service.port | quote }} 48 | - name: LARAVEL_ECHO_SERVER_AUTH_HOST 49 | value: https://webhook 50 | - name: LARAVEL_ECHO_SERVER_HOST 51 | value: 0.0.0.0 52 | - name: LARAVEL_ECHO_SERVER_PORT 53 | value: "6001" 54 | securityContext: 55 | {{- toYaml .Values.echo.securityContext | nindent 12 }} 56 | {{- with .Values.echo.image }} 57 | image: "{{ .repository }}:{{ .tag | default $.Chart.AppVersion }}{{ if .digest }}@{{.digest}}{{ end }}" 58 | imagePullPolicy: {{ .pullPolicy }} 59 | {{- end }} 60 | ports: 61 | - name: http 62 | containerPort: 6001 63 | protocol: TCP 64 | #livenessProbe: 65 | # httpGet: 66 | # path: / 67 | # port: http 68 | #readinessProbe: 69 | # httpGet: 70 | # path: / 71 | # port: http 72 | resources: 73 | {{- toYaml .Values.echo.resources | nindent 12 }} 74 | {{- with .Values.echo.nodeSelector }} 75 | nodeSelector: 76 | {{- toYaml . | nindent 8 }} 77 | {{- end }} 78 | {{- with .Values.echo.affinity }} 79 | affinity: 80 | {{- toYaml . | nindent 8 }} 81 | {{- end }} 82 | {{- with .Values.echo.tolerations }} 83 | tolerations: 84 | {{- toYaml . | nindent 8 }} 85 | {{- end }} 86 | -------------------------------------------------------------------------------- /charts/webhook-site/values.yaml: -------------------------------------------------------------------------------- 1 | nameOverride: "" 2 | fullnameOverride: "" 3 | 4 | imagePullSecrets: [] 5 | 6 | serviceAccount: 7 | create: true 8 | annotations: {} 9 | name: "" 10 | 11 | ingress: 12 | enabled: false 13 | tls: false 14 | className: "" 15 | annotations: {} 16 | # kubernetes.io/ingress.class: nginx 17 | # kubernetes.io/tls-acme: "true" 18 | hostname: webhook.site 19 | 20 | app: 21 | replicaCount: 1 22 | image: 23 | repository: fredsted/webhook.site 24 | pullPolicy: IfNotPresent 25 | digest: sha256:580424cab9b3b9ad6e6748d1b5057a30e82ad4fb83a19bd5421679cb3066f583 26 | tag: latest 27 | 28 | podAnnotations: {} 29 | 30 | podSecurityContext: {} 31 | # fsGroup: 2000 32 | 33 | securityContext: {} 34 | # capabilities: 35 | # drop: 36 | # - ALL 37 | # readOnlyRootFilesystem: true 38 | # runAsNonRoot: true 39 | # runAsUser: 1000 40 | 41 | resources: {} 42 | # We usually recommend not to specify default resources and to leave this as a conscious 43 | # choice for the user. This also increases chances charts run on environments with little 44 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 45 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 46 | # limits: 47 | # cpu: 100m 48 | # memory: 128Mi 49 | # requests: 50 | # cpu: 100m 51 | # memory: 128Mi 52 | 53 | nodeSelector: {} 54 | tolerations: [] 55 | affinity: {} 56 | 57 | service: 58 | type: ClusterIP 59 | port: 80 60 | 61 | echo: 62 | replicaCount: 1 63 | image: 64 | repository: mintopia/laravel-echo-server 65 | pullPolicy: IfNotPresent 66 | digest: sha256:3038e4a81891536a8e8da819b591a8faf8a2f406a7c79e1c5c1764c18a2d257d 67 | tag: latest 68 | 69 | podAnnotations: {} 70 | 71 | podSecurityContext: {} 72 | # fsGroup: 2000 73 | 74 | securityContext: {} 75 | # capabilities: 76 | # drop: 77 | # - ALL 78 | # readOnlyRootFilesystem: true 79 | # runAsNonRoot: true 80 | # runAsUser: 1000 81 | 82 | resources: {} 83 | # We usually recommend not to specify default resources and to leave this as a conscious 84 | # choice for the user. This also increases chances charts run on environments with little 85 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 86 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 87 | # limits: 88 | # cpu: 100m 89 | # memory: 128Mi 90 | # requests: 91 | # cpu: 100m 92 | # memory: 128Mi 93 | 94 | nodeSelector: {} 95 | tolerations: [] 96 | affinity: {} 97 | 98 | service: 99 | type: ClusterIP 100 | port: 80 101 | 102 | redis: 103 | install: true 104 | database: 0 105 | auth: 106 | enabled: false 107 | password: redispass 108 | master: 109 | persistence: 110 | enabled: false 111 | size: 1Gi 112 | replica: 113 | replicaCount: 0 114 | persistence: 115 | enabled: false 116 | size: 1Gi 117 | rbac: 118 | create: true 119 | image: 120 | # tag: sha256:CHANGEME 121 | -------------------------------------------------------------------------------- /charts/fossology/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "fossology.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 "fossology.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "fossology.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "fossology.base.labels" -}} 54 | helm.sh/chart: {{ include "fossology.chart" . }} 55 | {{- if .Chart.AppVersion }} 56 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 57 | {{- end }} 58 | app.kubernetes.io/managed-by: {{ .Release.Service }} 59 | {{ include "charts.midokura.labels" . }} 60 | {{- end }} 61 | 62 | {{- define "fossology.scheduler.labels" -}} 63 | {{ include "fossology.base.labels" . }} 64 | {{ include "fossology.scheduler.selectorLabels" . }} 65 | {{- end }} 66 | 67 | {{- define "fossology.web.labels" -}} 68 | {{ include "fossology.base.labels" . }} 69 | {{ include "fossology.web.selectorLabels" . }} 70 | {{- end }} 71 | 72 | {{/* 73 | Selector labels 74 | */}} 75 | {{- define "fossology.base.selectorLabels" -}} 76 | app.kubernetes.io/name: {{ include "fossology.name" . }} 77 | app.kubernetes.io/instance: {{ .Release.Name }} 78 | {{- end }} 79 | 80 | {{- define "fossology.scheduler.selectorLabels" -}} 81 | {{ include "fossology.base.selectorLabels" . }} 82 | app.kubernetes.io/component: scheduler 83 | {{- end }} 84 | 85 | {{- define "fossology.web.selectorLabels" -}} 86 | {{ include "fossology.base.selectorLabels" . }} 87 | app.kubernetes.io/component: web 88 | {{- end }} 89 | 90 | {{/* 91 | Create the name of the service account to use 92 | */}} 93 | {{- define "fossology.serviceAccountName" -}} 94 | {{- if .Values.serviceAccount.create }} 95 | {{- default (include "fossology.fullname" .) .Values.serviceAccount.name }} 96 | {{- else }} 97 | {{- default "default" .Values.serviceAccount.name }} 98 | {{- end }} 99 | {{- end }} 100 | 101 | {{- define "fossology.pvcName" -}} 102 | {{ include "fossology.fullname" . }}-data-repository 103 | {{- end }} 104 | -------------------------------------------------------------------------------- /charts/allure/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "allure.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 "allure.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "allure.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Midokura labels 35 | */}} 36 | {{- define "charts.midokura.labels" -}} 37 | {{- if .Values.global }} 38 | 39 | {{- if .Values.global.team }} 40 | team: {{ .Values.global.team }} 41 | {{- end }} 42 | 43 | {{- if .Values.global.service }} 44 | service: {{ .Values.global.service }} 45 | {{- end }} 46 | 47 | {{- end }} 48 | {{- end }} 49 | 50 | {{/* 51 | Common labels 52 | */}} 53 | {{- define "allure.labels" -}} 54 | helm.sh/chart: {{ include "allure.chart" . }} 55 | {{ include "allure-api.selectorLabels" . }} 56 | {{ include "allure-ui.selectorLabels" . }} 57 | {{- if .Chart.AppVersion }} 58 | app.kubernetes.io/version: {{ .Values.api.image.tag | default .Chart.AppVersion }} 59 | {{- end }} 60 | app.kubernetes.io/managed-by: {{ .Release.Service }} 61 | {{ include "charts.midokura.labels" . }} 62 | {{- end }} 63 | 64 | {{/* 65 | API Common labels 66 | */}} 67 | {{- define "allure-api.labels" -}} 68 | helm.sh/chart: {{ include "allure.chart" . }} 69 | {{ include "allure-api.selectorLabels" . }} 70 | {{- if .Chart.AppVersion }} 71 | app.kubernetes.io/version: {{ .Values.api.image.tag | default .Chart.AppVersion }} 72 | {{- end }} 73 | app.kubernetes.io/managed-by: {{ .Release.Service }} 74 | {{- end }} 75 | 76 | {{/* 77 | UI Common labels 78 | */}} 79 | {{- define "allure-ui.labels" -}} 80 | helm.sh/chart: {{ include "allure.chart" . }} 81 | {{ include "allure-ui.selectorLabels" . }} 82 | {{- if .Chart.AppVersion }} 83 | app.kubernetes.io/version: {{ .Values.ui.image.tag }} 84 | {{- end }} 85 | app.kubernetes.io/managed-by: {{ .Release.Service }} 86 | {{- end }} 87 | 88 | {{/* 89 | API Selector labels 90 | */}} 91 | {{- define "allure-api.selectorLabels" -}} 92 | app.kubernetes.io/name: {{ include "allure.name" . }} 93 | app.kubernetes.io/instance: {{ .Release.Name }} 94 | app.kubernetes.io/component: api 95 | {{- end }} 96 | 97 | {{/* 98 | UI Selector labels 99 | */}} 100 | {{- define "allure-ui.selectorLabels" -}} 101 | app.kubernetes.io/name: {{ include "allure.name" . }} 102 | app.kubernetes.io/instance: {{ .Release.Name }} 103 | app.kubernetes.io/component: ui 104 | {{- end }} 105 | -------------------------------------------------------------------------------- /charts/librenms/templates/deployment-syslog.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-syslog 5 | labels: 6 | {{- include "librenms.syslog.labels" . | nindent 4 }} 7 | spec: 8 | replicas: {{ .Values.syslog.replicaCount }} 9 | revisionHistoryLimit: 3 10 | selector: 11 | matchLabels: 12 | {{- include "librenms.syslog.selectorLabels" . | nindent 6 }} 13 | template: 14 | metadata: 15 | {{- with .Values.syslog.podAnnotations }} 16 | annotations: 17 | {{- toYaml . | nindent 8 }} 18 | {{- end }} 19 | labels: 20 | {{- include "librenms.syslog.labels" . | nindent 8 }} 21 | spec: 22 | {{- with .Values.imagePullSecrets }} 23 | imagePullSecrets: 24 | {{- toYaml . | nindent 8 }} 25 | {{- end }} 26 | serviceAccountName: {{ include "librenms.serviceAccountName" . }} 27 | securityContext: 28 | {{- toYaml .Values.syslog.podSecurityContext | nindent 8 }} 29 | containers: 30 | - name: syslog 31 | securityContext: 32 | {{- toYaml .Values.syslog.securityContext | nindent 12 }} 33 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 34 | imagePullPolicy: {{ .Values.image.pullPolicy }} 35 | envFrom: 36 | {{ include "librenms.environment_ref_default" . | nindent 12 }} 37 | env: 38 | - name: SIDECAR_SYSLOGNG 39 | value: "1" 40 | lifecycle: 41 | {{- if .Values.applyPatchPR }} 42 | postStart: 43 | exec: 44 | command: 45 | - sh 46 | - '-c' 47 | - >- 48 | for PR_ID in {{ join " " .Values.applyPatchPR }}; do 49 | ./scripts/github-apply ${PR_ID}; 50 | done 51 | {{- end }} 52 | preStop: 53 | exec: 54 | command: 55 | - sh 56 | - '-c' 57 | - >- 58 | s6-svscanctl -q /var/run/s6/services; killall -9 s6-supervise 59 | ports: 60 | - name: syslog-tcp 61 | containerPort: 514 62 | protocol: TCP 63 | - name: syslog-udp 64 | containerPort: 514 65 | protocol: UDP 66 | livenessProbe: 67 | tcpSocket: 68 | port: syslog-tcp 69 | periodSeconds: 20 70 | readinessProbe: 71 | tcpSocket: 72 | port: syslog-tcp 73 | periodSeconds: 20 74 | resources: 75 | {{- toYaml .Values.syslog.resources | nindent 12 }} 76 | volumeMounts: 77 | - name: data 78 | mountPath: /data 79 | - name: config 80 | mountPath: /opt/librenms/config.d 81 | volumes: 82 | - name: data 83 | - name: config 84 | configMap: 85 | name: {{ include "librenms.fullname" . }}-config 86 | {{- with .Values.syslog.nodeSelector }} 87 | nodeSelector: 88 | {{- toYaml . | nindent 8 }} 89 | {{- end }} 90 | {{- with .Values.syslog.affinity }} 91 | affinity: 92 | {{- toYaml . | nindent 8 }} 93 | {{- end }} 94 | {{- with .Values.syslog.tolerations }} 95 | tolerations: 96 | {{- toYaml . | nindent 8 }} 97 | {{- end }} 98 | -------------------------------------------------------------------------------- /charts/nginx-static/values.yaml: -------------------------------------------------------------------------------- 1 | replicaCount: 1 2 | 3 | image: 4 | repository: nginx 5 | pullPolicy: IfNotPresent 6 | # Overrides the image tag whose default is the chart appVersion. 7 | tag: "1.27.2" 8 | digest: sha256:3536d368b898eef291fb1f6d184a95f8bc1a6f863c48457395aab859fda354d1 9 | port: 80 10 | 11 | imagePullSecrets: [] 12 | nameOverride: "" 13 | fullnameOverride: "" 14 | 15 | podAnnotations: {} 16 | 17 | podSecurityContext: {} 18 | # fsGroup: 2000 19 | 20 | securityContext: {} 21 | # capabilities: 22 | # drop: 23 | # - ALL 24 | # readOnlyRootFilesystem: true 25 | # runAsNonRoot: true 26 | # runAsUser: 1000 27 | 28 | service: 29 | type: ClusterIP 30 | port: 80 31 | 32 | ingress: 33 | enabled: false 34 | auth: 35 | enabled: false 36 | users: {} 37 | # - username: "" 38 | # password: "" 39 | useSecretName: "" 40 | className: nginx 41 | annotations: {} 42 | # kubernetes.io/tls-acme: "true" 43 | hostname: "" 44 | tls: false 45 | 46 | resources: {} 47 | # limits: 48 | # cpu: 400m 49 | # memory: 100Mi 50 | # requests: 51 | # cpu: 10m 52 | # memory: 10Mi 53 | 54 | nodeSelector: {} 55 | 56 | tolerations: [] 57 | 58 | affinity: {} 59 | 60 | envFrom: [] 61 | 62 | readinessProbe: 63 | enabled: false 64 | path: "/" 65 | failureThreshold: 3 66 | successThreshold: 1 67 | periodSeconds: 10 68 | timeoutSeconds: 1 69 | 70 | livenessProbe: 71 | enabled: true 72 | path: "/" 73 | failureThreshold: 3 74 | successThreshold: 1 75 | periodSeconds: 10 76 | timeoutSeconds: 1 77 | 78 | # -- (string, bool) Additional config in nginx server config definition. 79 | # If false, then ConfigMap won't be mounted 80 | # If string, content will be appended to ConfigMap 81 | configNginx: true 82 | 83 | useMemoryStorage: false 84 | git: 85 | enabled: false 86 | server: github.com 87 | user: git 88 | # kubectl create secret generic --type=kubernetes.io/ssh-auth \ 89 | # --from-file=ssh-publickey=ssh.pub --from-file=ssh-privatekey=ssh.key \ 90 | # -n YOURNAMESPACE yourname-sshkey 91 | sshKeySecret: "" 92 | repository: "" 93 | branch: main 94 | # -- Keep the git directory after cloning. If false, deletes before copying to nginx. 95 | keep: true 96 | # -- Number of commits to fetch. 0 indicates all history for all branches and tags. 97 | # Defaults to 1 (download latest commit only) 98 | depth: 1 99 | # -- Move git folder to a subfolder or keep content in main folder. 100 | # Defaults to empty (use main folder) 101 | targetDirectory: "" 102 | updater: 103 | # -- Add a sidecar container that pulls content from Git. 104 | # Requires keeping Git folder. 105 | enabled: false 106 | # -- Seconds to wait before pulling content again. 107 | interval: 90 108 | 109 | persistence: 110 | enabled: false 111 | accessMode: ReadWriteOnce 112 | size: 8Gi 113 | mountPath: /data 114 | ## A manually managed Persistent Volume and Claim 115 | ## Requires persistence.enabled: true 116 | ## If defined, PVC must be created manually before volume will be bound 117 | existingClaim: "" 118 | 119 | ## Data Persistent Volume Storage Class 120 | ## If defined, storageClassName: 121 | ## If set to "-", storageClassName: "", which disables dynamic provisioning 122 | ## If undefined (the default) or set to null, no storageClassName spec is 123 | ## set, choosing the default provisioner. (gp2 on AWS, standard on 124 | ## GKE, AWS & OpenStack) 125 | ## 126 | storageClass: null 127 | -------------------------------------------------------------------------------- /charts/librenms/templates/configmap-app.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ include "librenms.fullname" . }}-config 5 | labels: 6 | {{- include "librenms.labels" . | nindent 4 }} 7 | data: 8 | config.php: | 9 | /etc/smokeping/config.d/librenms-targets.conf 12 | yasu librenms:librenms php -f /opt/librenms/lnms smokeping:generate --probes > /etc/smokeping/config.d/librenms-probes.conf 13 | 14 | status_httpd.conf: | 15 | LoadModule status_module modules/mod_status.so 16 | 17 | SetHandler server-status 18 | Order deny,allow 19 | Deny from all 20 | Allow from all 21 | 22 | 23 | smokeping_httpd_auth.conf: | 24 | 25 | Options FollowSymLinks 26 | AllowOverride AuthConfig 27 | AuthType Basic 28 | AuthName "Restricted Files" 29 | AuthUserFile /etc/apache2/passwords 30 | Require valid-user 31 | 32 | 33 | fping6: | 34 | /usr/sbin/fping -6 $@ 35 | 36 | pathnames: | 37 | sendmail = /usr/sbin/ssmtp 38 | imgcache = /var/cache/smokeping 39 | imgurl = cache 40 | datadir = /data 41 | piddir = /var/run/smokeping 42 | smokemail = /etc/smokeping/smokemail 43 | tmail = /etc/smokeping/tmail 44 | 45 | Alerts: | 46 | *** Alerts *** 47 | to = alertee@address.somewhere 48 | from = smokealert@company.xy 49 | 50 | +someloss 51 | type = loss 52 | # in percent 53 | pattern = >0%,*12*,>0%,*12*,>0% 54 | comment = loss 3 times in a row 55 | 56 | Database: | 57 | *** Database *** 58 | 59 | step = 300 60 | pings = {{ .Values.smokeping.pings }} 61 | 62 | # consfn mrhb steps total 63 | 64 | AVERAGE 0.5 1 1008 65 | AVERAGE 0.5 12 4320 66 | MIN 0.5 12 4320 67 | MAX 0.5 12 4320 68 | AVERAGE 0.5 144 720 69 | MAX 0.5 144 720 70 | MIN 0.5 144 720 71 | 72 | General: | 73 | *** General *** 74 | 75 | {{- range $key, $val := .Values.smokeping.config.general }} 76 | {{ $key }} = {{ $val }} 77 | {{- end }} 78 | # NOTE: do not put the Image Cache below cgi-bin 79 | # since all files under cgi-bin will be executed ... this is not 80 | # good for images. 81 | {{- if and .Values.ingress.enabled .Values.smokeping.ingress }} 82 | cgiurl = {{ .Values.ingress.tls | ternary "https" "http" }}://{{ .Values.ingress.hostname }}/smokeping/smokeping.cgi 83 | {{- else }} 84 | cgiurl = http://localhost/smokeping.cgi 85 | {{- end }} 86 | # specify this to get syslog logging 87 | syslogfacility = local0 88 | # each probe is now run in its own process 89 | # disable this to revert to the old behaviour 90 | # concurrentprobes = no 91 | 92 | @include /config/pathnames 93 | 94 | Presentation: | 95 | *** Presentation *** 96 | 97 | template = /etc/smokeping/basepage.html 98 | charset = utf-8 99 | 100 | + charts 101 | 102 | menu = Charts 103 | title = The most interesting destinations 104 | 105 | ++ stddev 106 | sorter = StdDev(entries=>4) 107 | title = Top Standard Deviation 108 | menu = Std Deviation 109 | format = Standard Deviation %f 110 | 111 | ++ max 112 | sorter = Max(entries=>5) 113 | title = Top Max Roundtrip Time 114 | menu = by Max 115 | format = Max Roundtrip Time %f seconds 116 | 117 | ++ loss 118 | sorter = Loss(entries=>5) 119 | title = Top Packet Loss 120 | menu = Loss 121 | format = Packets Lost %f 122 | 123 | ++ median 124 | sorter = Median(entries=>5) 125 | title = Top Median Roundtrip Time 126 | menu = by Median 127 | format = Median RTT %f seconds 128 | 129 | + overview 130 | 131 | width = 600 132 | height = 50 133 | range = 10h 134 | 135 | + detail 136 | 137 | width = 600 138 | height = 200 139 | unison_tolerance = 2 140 | 141 | "Last 3 Hours" 3h 142 | "Last 30 Hours" 30h 143 | "Last 10 Days" 10d 144 | "Last 360 Days" 360d 145 | 146 | #+ hierarchies 147 | #++ owner 148 | #title = Host Owner 149 | #++ location 150 | #title = Location 151 | 152 | Slaves: | 153 | *** Slaves *** 154 | secrets=/etc/smokeping/smokeping_secrets 155 | #+boomer 156 | #display_name=boomer 157 | #color=0000ff 158 | 159 | #+slave2 160 | #display_name=another 161 | #color=00ff00 162 | 163 | # --- 164 | 165 | Probes: | 166 | *** Probes *** 167 | 168 | @include /etc/smokeping/config.d/librenms-probes.conf 169 | 170 | Targets: | 171 | *** Targets *** 172 | 173 | probe = FPing 174 | 175 | menu = Top 176 | title = Network Latency Grapher 177 | remark = Welcome to the SmokePing website of LibreNMS. 178 | 179 | @include /etc/smokeping/config.d/librenms-targets.conf 180 | 181 | {{- end }} 182 | -------------------------------------------------------------------------------- /charts/salt/templates/statefulset.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: StatefulSet 3 | metadata: 4 | name: {{ include "salt.fullname" . }}-master 5 | labels: 6 | {{- include "salt.master.labels" . | nindent 4 }} 7 | spec: 8 | replicas: {{ .Values.master.replicaCount }} 9 | serviceName: {{ include "salt.fullname" . }}-master 10 | revisionHistoryLimit: 3 11 | selector: 12 | matchLabels: 13 | {{- include "salt.master.selectorLabels" . | nindent 6 }} 14 | template: 15 | metadata: 16 | {{- with .Values.master.podAnnotations }} 17 | annotations: 18 | {{- toYaml . | nindent 8 }} 19 | {{- end }} 20 | labels: 21 | app.kubernetes.io/version: {{ .Values.master.image.tag | default .Chart.AppVersion | quote }} 22 | {{- include "salt.master.labels" . | nindent 8 }} 23 | spec: 24 | {{- with .Values.imagePullSecrets }} 25 | imagePullSecrets: 26 | {{- toYaml . | nindent 8 }} 27 | {{- end }} 28 | serviceAccountName: {{ include "salt.serviceAccountName" . }} 29 | securityContext: 30 | {{- toYaml .Values.master.podSecurityContext | nindent 8 }} 31 | containers: 32 | - name: app 33 | securityContext: 34 | {{- toYaml .Values.master.securityContext | nindent 12 }} 35 | {{- with .Values.master.image }} 36 | image: "{{ .repository }}:{{ .tag | default $.Chart.AppVersion }}" 37 | imagePullPolicy: {{ .pullPolicy }} 38 | {{- end }} 39 | ports: 40 | {{- range $name, $port := .Values.master.service.ports }} 41 | - name: {{ $name }} 42 | containerPort: {{ $port.containerPort }} 43 | protocol: TCP 44 | {{- end }} 45 | resources: 46 | {{- toYaml .Values.master.resources | nindent 12 }} 47 | volumeMounts: 48 | - name: salt-data 49 | mountPath: /srv/salt 50 | subPath: salt 51 | - name: salt-data 52 | mountPath: /etc/salt/pki 53 | subPath: pki 54 | - name: config 55 | mountPath: /etc/salt/master.d/master.conf 56 | subPath: master.conf 57 | {{- if .Values.gitsync.enabled }} 58 | - name: git-sync 59 | securityContext: 60 | {{- toYaml .Values.securityContext | nindent 12 }} 61 | {{- with .Values.gitsync.image }} 62 | image: "{{ .repository }}{{ if .digest }}@{{ .digest }}{{ else }}:{{ .tag }}{{ end }}" 63 | imagePullPolicy: {{ .pullPolicy }} 64 | {{- end }} 65 | args: 66 | {{- range $key, $val := .Values.gitsync.config }} 67 | - {{ printf "--%s" $key | quote }} 68 | {{- if not (deepEqual $val true) }} 69 | - {{ $val | quote }} 70 | {{- end }} 71 | {{- end }} 72 | env: 73 | {{- range $key, $val := .Values.gitsync.env }} 74 | - name: {{ $key }} 75 | value: {{ $val | quote }} 76 | {{- end }} 77 | {{- with .Values.gitsync.envFrom }} 78 | envFrom: {{ . | toYaml | nindent 10 }} 79 | {{- end }} 80 | resources: 81 | {{- toYaml .Values.gitsync.resources | nindent 12 }} 82 | volumeMounts: 83 | - name: salt-data 84 | mountPath: /srv/salt 85 | subPath: salt 86 | {{- with .Values.gitsync.extraVolumeMounts }} 87 | {{- toYaml . | nindent 8 }} 88 | {{- end }} 89 | {{- end }} 90 | {{- with .Values.master.nodeSelector }} 91 | nodeSelector: 92 | {{- toYaml . | nindent 8 }} 93 | {{- end }} 94 | {{- with .Values.master.affinity }} 95 | affinity: 96 | {{- toYaml . | nindent 8 }} 97 | {{- end }} 98 | {{- with .Values.master.tolerations }} 99 | tolerations: 100 | {{- toYaml . | nindent 8 }} 101 | {{- end }} 102 | volumes: 103 | - name: config 104 | configMap: 105 | optional: true 106 | name: {{ include "salt.fullname" . }}-config 107 | {{- if and .Values.master.persistence.enabled .Values.master.persistence.existingClaim }} 108 | - name: salt-data 109 | persistentVolumeClaim: 110 | claimName: {{ .Values.master.persistence.existingClaim . }} 111 | {{- else if not .Values.master.persistence.enabled }} 112 | - name: salt-data 113 | emptyDir: {} 114 | {{- else if and .Values.master.persistence.enabled (not .Values.master.persistence.existingClaim) }} 115 | volumeClaimTemplates: 116 | - metadata: 117 | name: salt-data 118 | labels: 119 | {{ include "salt.master.labels" . | nindent 10 }} 120 | {{- if .Values.master.persistence.annotations }} 121 | annotations: 122 | {{- toYaml .Values.master.persistence.annotations | nindent 10 }} 123 | {{- end }} 124 | spec: 125 | accessModes: 126 | {{- range .Values.master.persistence.accessModes }} 127 | - {{ . | quote }} 128 | {{- end }} 129 | resources: 130 | requests: 131 | storage: {{ .Values.master.persistence.size | quote }} 132 | storageClass: {{ .Values.master.persistence.storageClass }} 133 | {{- if .Values.master.persistence.selector }} 134 | selector: 135 | {{- toYaml .Values.master.persistence.selector | nindent 10 }} 136 | {{- end }} 137 | {{- end }} 138 | -------------------------------------------------------------------------------- /charts/librenms/templates/deployment-poller.yaml: -------------------------------------------------------------------------------- 1 | {{- define "librenms.dispatcher_env" }} 2 | - name: SIDECAR_DISPATCHER 3 | value: "1" 4 | - name: NODE_ID 5 | valueFrom: 6 | fieldRef: 7 | fieldPath: metadata.name 8 | - name: DISPATCHER_NODE_ID 9 | valueFrom: 10 | fieldRef: 11 | fieldPath: metadata.name 12 | - name: CACHE_DRIVER 13 | value: {{ default "redis" .Values.poller.cacheDriver | quote }} 14 | - name: DISPATCHER_ARGS 15 | value: {{ .Values.poller.args | quote }} 16 | {{- end }} 17 | 18 | apiVersion: apps/v1 19 | kind: Deployment 20 | metadata: 21 | name: {{ include "librenms.fullname" . }}-poller 22 | labels: 23 | {{- include "librenms.poller.labels" . | nindent 4 }} 24 | spec: 25 | replicas: {{ .Values.poller.replicaCount }} 26 | revisionHistoryLimit: 3 27 | selector: 28 | matchLabels: 29 | {{- include "librenms.poller.selectorLabels" . | nindent 6 }} 30 | template: 31 | metadata: 32 | {{- with .Values.poller.podAnnotations }} 33 | annotations: 34 | {{- toYaml . | nindent 8 }} 35 | {{- end }} 36 | labels: 37 | {{- include "librenms.poller.labels" . | nindent 8 }} 38 | spec: 39 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }} 40 | topologySpreadConstraints: 41 | - maxSkew: 1 42 | topologyKey: kubernetes.io/hostname 43 | whenUnsatisfiable: DoNotSchedule 44 | labelSelector: 45 | matchLabels: 46 | {{- include "librenms.poller.selectorLabels" . | nindent 14 }} 47 | {{- end }} 48 | {{- with .Values.imagePullSecrets }} 49 | imagePullSecrets: 50 | {{- toYaml . | nindent 8 }} 51 | {{- end }} 52 | serviceAccountName: {{ include "librenms.serviceAccountName" . }} 53 | securityContext: 54 | {{- toYaml .Values.poller.podSecurityContext | nindent 8 }} 55 | initContainers: 56 | - name: wait-app 57 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 58 | command: 59 | - sh 60 | - '-c' 61 | - >- 62 | until nc -z {{ include "librenms.fullname" . }} {{ .Values.app.service.port }}; do 63 | echo waiting for librenms; 64 | sleep 2; 65 | done 66 | - name: init-env 67 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 68 | command: 69 | - sh 70 | - '-c' 71 | - >- 72 | export | cut -d' ' -f2 | tr -d "'" > /data/.env 73 | envFrom: 74 | {{- include "librenms.environment_ref_default" . | nindent 12 }} 75 | env: 76 | {{- include "librenms.dispatcher_env" . | nindent 12 }} 77 | volumeMounts: 78 | - name: data 79 | mountPath: /data 80 | {{- if .Values.nagios }} 81 | - name: nagios-plugins 82 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 83 | command: 84 | - sh 85 | - '-c' 86 | - apk add nagios-plugins-all 87 | volumeMounts: 88 | - name: nagios 89 | mountPath: /usr/lib/nagios 90 | {{- end }} 91 | containers: 92 | - name: poller 93 | securityContext: 94 | {{- toYaml .Values.poller.securityContext | nindent 12 }} 95 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 96 | imagePullPolicy: {{ .Values.image.pullPolicy }} 97 | envFrom: 98 | {{- include "librenms.environment_ref_default" . | nindent 12 }} 99 | env: 100 | {{- include "librenms.dispatcher_env" . | nindent 12 }} 101 | resources: 102 | {{- toYaml .Values.poller.resources | nindent 12 }} 103 | lifecycle: 104 | {{- if .Values.applyPatchPR }} 105 | postStart: 106 | exec: 107 | command: 108 | - sh 109 | - '-c' 110 | - >- 111 | for PR_ID in {{ join " " .Values.applyPatchPR }}; do 112 | ./scripts/github-apply ${PR_ID}; 113 | done 114 | {{- end }} 115 | preStop: 116 | exec: 117 | command: 118 | - sh 119 | - '-c' 120 | - >- 121 | mysql -h ${DB_HOST} -u ${DB_USER} --password=${DB_PASSWORD} ${DB_NAME} -e 122 | "DELETE FROM poller_cluster WHERE node_id = '${DISPATCHER_NODE_ID}';" ; 123 | s6-svscanctl -q /var/run/s6/services ; 124 | killall -9 s6-supervise 125 | livenessProbe: 126 | exec: 127 | command: 128 | - pgrep 129 | - python3 130 | periodSeconds: 10 131 | failureThreshold: 2 132 | timeoutSeconds: 5 133 | volumeMounts: 134 | - name: data 135 | mountPath: /data 136 | - name: nagios 137 | mountPath: /usr/lib/nagios 138 | - name: config 139 | mountPath: /opt/librenms/config.php 140 | subPath: config.php 141 | volumes: 142 | - name: data 143 | - name: nagios 144 | - name: config 145 | configMap: 146 | name: {{ include "librenms.fullname" . }}-config 147 | {{- with .Values.poller.nodeSelector }} 148 | nodeSelector: 149 | {{- toYaml . | nindent 8 }} 150 | {{- end }} 151 | {{- with .Values.poller.affinity }} 152 | affinity: 153 | {{- toYaml . | nindent 8 }} 154 | {{- end }} 155 | {{- with .Values.poller.tolerations }} 156 | tolerations: 157 | {{- toYaml . | nindent 8 }} 158 | {{- end }} 159 | --------------------------------------------------------------------------------