feat: helm chart (wip)
This commit is contained in:
		
							
								
								
									
										21
									
								
								dev/helm/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								dev/helm/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| apiVersion: v1 | ||||
| name: Wiki.js | ||||
| version: 2.0.0 | ||||
| appVersion: 2.0.0 | ||||
| description: The most powerful and extensible open source Wiki software. | ||||
| keywords: | ||||
|   - wiki | ||||
|   - documentation | ||||
|   - knowledge base | ||||
|   - docs | ||||
|   - reference | ||||
|   - editor | ||||
| home: https://wiki.js.org | ||||
| icon: https://github.com/Requarks/wiki/raw/master/client/static/favicons/android-icon-192x192.png | ||||
| sources: | ||||
|   - https://github.com/Requarks/wiki | ||||
| maintainers: | ||||
|   - name: Nicolas Giard | ||||
|     email: github@ngpixel.com | ||||
|     url: https://github.com/NGPixel | ||||
| engine: gotpl | ||||
							
								
								
									
										2
									
								
								dev/helm/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dev/helm/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| # Work in progress | ||||
| ##### Do not use! | ||||
							
								
								
									
										5
									
								
								dev/helm/requirements.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								dev/helm/requirements.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| dependencies: | ||||
|   - name: postgresql | ||||
|     version: 3.18.4 | ||||
|     repository: https://kubernetes-charts.storage.googleapis.com/ | ||||
|     condition: postgresql.enabled | ||||
							
								
								
									
										39
									
								
								dev/helm/templates/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								dev/helm/templates/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| {{- if .Values.ingress.enabled }} | ||||
| {{- range .Values.ingress.hosts  }} | ||||
| apiVersion: extensions/v1beta1 | ||||
| kind: Ingress | ||||
| metadata: | ||||
|   name: {{ template "wiki.fullname" $ }} | ||||
|   labels: | ||||
|     app: {{ template "wiki.name" $ }} | ||||
|     chart: {{ template "wiki.chart" $ }} | ||||
|     release: {{ $.Release.Name | quote }} | ||||
|     heritage: {{ $.Release.Service | quote }} | ||||
|   annotations: | ||||
|     {{- if .tls }} | ||||
|     ingress.kubernetes.io/secure-backends: "true" | ||||
|     {{- end }} | ||||
|     {{- if .certManager }} | ||||
|     kubernetes.io/tls-acme: "true" | ||||
|     {{- end }} | ||||
|     {{- range $key, $value := .annotations }} | ||||
|     {{ $key }}: {{ $value | quote }} | ||||
|     {{- end }} | ||||
| spec: | ||||
|   rules: | ||||
|   - host: {{ .name }} | ||||
|     http: | ||||
|       paths: | ||||
|         - path: {{ default "/" .path }} | ||||
|           backend: | ||||
|             serviceName: {{ template "wiki.fullname" $ }} | ||||
|             servicePort: 80 | ||||
| {{- if .tls }} | ||||
|   tls: | ||||
|   - hosts: | ||||
|     - {{ .name }} | ||||
|     secretName: {{ .tlsSecret }} | ||||
| {{- end }} | ||||
| --- | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										13
									
								
								dev/helm/templates/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								dev/helm/templates/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| apiVersion: v1 | ||||
| kind: Secret | ||||
| metadata: | ||||
|   name: {{ template "wiki.fullname" . }} | ||||
|   labels: | ||||
|     app: {{ template "wiki.fullname" . }} | ||||
|     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" | ||||
|     release: "{{ .Release.Name }}" | ||||
|     heritage: "{{ .Release.Service }}" | ||||
| type: Opaque | ||||
| data: | ||||
|   db-user: {{ .Values.postgresql.postgresUser | b64enc | quote }} | ||||
|   db-password: {{ .Values.postgresql.postgresPassword | b64enc | quote }} | ||||
							
								
								
									
										32
									
								
								dev/helm/templates/service.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								dev/helm/templates/service.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: {{ template "wiki.fullname" . }} | ||||
|   labels: | ||||
|     app: {{ template "wiki.name" . }} | ||||
|     chart: {{ template "wiki.chart" . }} | ||||
|     release: {{ .Release.Name | quote }} | ||||
|     heritage: {{ .Release.Service | quote }} | ||||
| spec: | ||||
|   type: {{ .Values.service.type }} | ||||
|   {{- if .Values.service.loadBalancerIP }} | ||||
|   loadBalancerIP: {{ .Values.service.loadBalancerIP }} | ||||
|   {{- end }} | ||||
|   {{- if (or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort")) }} | ||||
|   externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} | ||||
|   {{- end }} | ||||
|   ports: | ||||
|   - name: http | ||||
|     port: {{ .Values.service.port }} | ||||
|     targetPort: http | ||||
|     {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePorts.http)))}} | ||||
|     nodePort: {{ .Values.service.nodePorts.http }} | ||||
|     {{- end }} | ||||
|   - name: https | ||||
|     port: {{ .Values.service.httpsPort }} | ||||
|     targetPort: https | ||||
|     {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePorts.https)))}} | ||||
|     nodePort: {{ .Values.service.nodePorts.https }} | ||||
|     {{- end }} | ||||
|   selector: | ||||
|     app: {{ template "wiki.name" . }} | ||||
							
								
								
									
										41
									
								
								dev/helm/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								dev/helm/values.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| ## | ||||
| ## Configuration values for the postgresql dependency. | ||||
| ## ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md | ||||
| postgresql: | ||||
|   ## | ||||
|   ## Use the PostgreSQL chart dependency. | ||||
|   ## Set to false if bringing your own PostgreSQL. | ||||
|   enabled: true | ||||
|   ## | ||||
|   ## If you are bringing your own PostgreSQL, you should set postgresHost and | ||||
|   ## also probably service.port, postgresUser, postgresPassword, and postgresDatabase | ||||
|   ## postgresHost: | ||||
|   ## | ||||
|   ## PostgreSQL port | ||||
|   service: | ||||
|     port: 5432 | ||||
|   ## PostgreSQL User to create. | ||||
|   postgresUser: wiki | ||||
|   ## | ||||
|   ## PostgreSQL Password for the new user. | ||||
|   ## If not set, a random 10 characters password will be used. | ||||
|   postgresPassword: wikijsrocks | ||||
|   ## | ||||
|   ## PostgreSQL Database to create. | ||||
|   postgresDatabase: wiki | ||||
|   ## | ||||
|   ## Persistent Volume Storage configuration. | ||||
|   ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes | ||||
|   persistence: | ||||
|     ## | ||||
|     ## Enable PostgreSQL persistence using Persistent Volume Claims. | ||||
|     enabled: true | ||||
|     ## | ||||
|     ## Persistant class | ||||
|     # storageClass: classname | ||||
|     ## | ||||
|     ## Access mode: | ||||
|     accessMode: ReadWriteOnce | ||||
|     ## | ||||
|     ## Requested size: | ||||
|     size: 10Gi | ||||
		Reference in New Issue
	
	Block a user