misc: update helm chart configs and readme (#1751)
* fix wiki helm * update readme * include service account as a stub * use lightweight healthz for readiness and health endpoint * remove if block for setting DB_TYPE, only postgres is supported in this chart for now
This commit is contained in:
		
							
								
								
									
										23
									
								
								dev/helm/.helmignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								dev/helm/.helmignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| # Patterns to ignore when building packages. | ||||
| # This supports shell glob matching, relative path matching, and | ||||
| # negation (prefixed with !). Only one pattern per line. | ||||
| .DS_Store | ||||
| # Common VCS dirs | ||||
| .git/ | ||||
| .gitignore | ||||
| .bzr/ | ||||
| .bzrignore | ||||
| .hg/ | ||||
| .hgignore | ||||
| .svn/ | ||||
| # Common backup files | ||||
| *.swp | ||||
| *.bak | ||||
| *.tmp | ||||
| *.orig | ||||
| *~ | ||||
| # Various IDEs | ||||
| .project | ||||
| .idea/ | ||||
| *.tmproj | ||||
| .vscode/ | ||||
							
								
								
									
										6
									
								
								dev/helm/Chart.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								dev/helm/Chart.lock
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| dependencies: | ||||
| - name: postgresql | ||||
|   repository: https://kubernetes-charts.storage.googleapis.com/ | ||||
|   version: 6.5.0 | ||||
| digest: sha256:e94b0117531082cb4efc287999abf5c5f7d58fecb8127251c20a7f0fc2ea65da | ||||
| generated: "2020-04-21T18:55:53.994556-07:00" | ||||
| @@ -1,7 +1,11 @@ | ||||
| apiVersion: v1 | ||||
| name: Wiki.js | ||||
| version: 2.0.0 | ||||
| appVersion: 2.0.0 | ||||
| apiVersion: v2 | ||||
| name: wiki | ||||
| # This is the chart version. This version number should be incremented each time you make changes | ||||
| # to the chart and its templates, including the app version. | ||||
| version: 2.0.1 | ||||
| # This is the version number of the application being deployed. This version number should be | ||||
| # incremented each time you make changes to the application. | ||||
| AppVersion: latest | ||||
| description: The most powerful and extensible open source Wiki software. | ||||
| keywords: | ||||
|   - wiki | ||||
| @@ -10,6 +14,20 @@ keywords: | ||||
|   - docs | ||||
|   - reference | ||||
|   - editor | ||||
| # A chart can be either an 'application' or a 'library' chart. | ||||
| # | ||||
| # Application charts are a collection of templates that can be packaged into versioned archives | ||||
| # to be deployed. | ||||
| # | ||||
| # Library charts provide useful utilities or functions for the chart developer. They're included as | ||||
| # a dependency of application charts to inject those utilities and functions into the rendering | ||||
| # pipeline. Library charts do not define any templates and therefore cannot be deployed. | ||||
| type: application | ||||
| dependencies: | ||||
|   - name: postgresql | ||||
|     version: 6.5.0 | ||||
|     repository: https://kubernetes-charts.storage.googleapis.com/ | ||||
|     condition: postgresql.enabled | ||||
| home: https://wiki.js.org | ||||
| icon: https://github.com/Requarks/wiki/raw/master/client/static/favicons/android-chrome-192x192.png | ||||
| sources: | ||||
| @@ -18,4 +36,7 @@ maintainers: | ||||
|   - name: Nicolas Giard | ||||
|     email: github@ngpixel.com | ||||
|     url: https://github.com/NGPixel | ||||
|   - name: James Greenhill | ||||
|     email: james@fuziontech.net | ||||
|     url: https://github.com/fuziontech | ||||
| engine: gotpl | ||||
|   | ||||
| @@ -1,2 +1,138 @@ | ||||
| # Work in progress | ||||
| ##### Do not use! | ||||
| <div align="center"> | ||||
|  | ||||
| <img src="https://static.requarks.io/logo/wikijs-full.svg" alt="Wiki.js" width="600" /> | ||||
|  | ||||
| [](https://github.com/Requarks/wiki/releases) | ||||
| [](https://github.com/requarks/wiki/blob/master/LICENSE) | ||||
| [](https://opencollective.com/wikijs) | ||||
| [](https://github.com/Requarks/wiki/releases) | ||||
| [](https://hub.docker.com/r/requarks/wiki/)   | ||||
| [](https://dev.azure.com/requarks/wiki/_build/latest?definitionId=9) | ||||
| [](https://sonarcloud.io/dashboard?id=wiki) | ||||
| [](https://sonarcloud.io/dashboard?id=wiki) | ||||
| [](https://sonarcloud.io/dashboard?id=wiki) | ||||
| [](http://standardjs.com/)   | ||||
| [](https://wiki.requarks.io/slack) | ||||
| [](https://twitter.com/requarks) | ||||
| [](https://wiki.js.org/newsletter) | ||||
|  | ||||
| ##### A modern, lightweight and powerful wiki app built on NodeJS | ||||
|  | ||||
| </div> | ||||
|  | ||||
| - **[Official Website](https://wiki.js.org/)** | ||||
| - **[Documentation](https://docs.requarks.io/)** | ||||
|  | ||||
| <h2 align="center">Donate</h2> | ||||
|  | ||||
| <div align="center"> | ||||
|  | ||||
| Wiki.js is an open source project that has been made possible due to the generous contributions by community [backers](https://wiki.js.org/about). If you are interested in supporting this project, please consider [becoming a sponsor](https://github.com/users/NGPixel/sponsorship), [becoming a patron](https://www.patreon.com/requarks), donating to our [OpenCollective](https://opencollective.com/wikijs), via [Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FLV5X255Z9CJU&source=url) or via Ethereum (`0xe1d55c19ae86f6bcbfb17e7f06ace96bdbb22cb5`). | ||||
|    | ||||
|   [](https://github.com/users/NGPixel/sponsorship) | ||||
|   [](https://www.patreon.com/requarks) | ||||
|   [](https://opencollective.com/wikijs) | ||||
|   [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FLV5X255Z9CJU&source=url)   | ||||
|   [](https://etherscan.io/address/0xe1d55c19ae86f6bcbfb17e7f06ace96bdbb22cb5) | ||||
|   [](https://checkout.opennode.com/p/2553c612-f863-4407-82b3-1a7685268747) | ||||
|   [](https://wikijs.threadless.com) | ||||
|  | ||||
| </div> | ||||
|  | ||||
| ## Introduction | ||||
|  | ||||
| This chart bootstraps a Wiki.js deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. | ||||
|  | ||||
| It also optionally packages the [PostgreSQL](https://github.com/kubernetes/charts/tree/master/stable/postgresql) as the database but you are free to bring your own. | ||||
|  | ||||
| ## Prerequisites | ||||
|  | ||||
| - PV provisioner support in the underlying infrastructure (with persistence storage enabled) if you want data persistance | ||||
|  | ||||
| ## Installing the Chart | ||||
|  | ||||
| To install the chart with the release name `my-release` run the following from this (`helm`) directory: | ||||
|  | ||||
| ```console | ||||
| $ helm install --name my-release .  | ||||
| ``` | ||||
|  | ||||
| The command deploys Wiki.js on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. | ||||
|  | ||||
| > **Tip**: List all releases using `helm list` | ||||
|  | ||||
| ## Uninstalling the Chart | ||||
|  | ||||
| To uninstall/delete the `my-release` deployment: | ||||
|  | ||||
| ```console | ||||
| $ helm delete my-release | ||||
| ``` | ||||
|  | ||||
| The command removes all the Kubernetes components associated with the chart and deletes the release. | ||||
|  | ||||
| > **Warning**: Persistant Volume Claims for the database are not deleted automatically. They need to be manually deleted | ||||
|  | ||||
| ```console | ||||
| $ kubectl delete pvc/data-wiki-postgresql-0 | ||||
| ``` | ||||
|  | ||||
| ## Configuration | ||||
|  | ||||
| The following table lists the configurable parameters of the Wiki.js chart and their default values. | ||||
|  | ||||
| | Parameter                            | Description                                 | Default                                                    | | ||||
| | -------------------------------      | -------------------------------             | ---------------------------------------------------------- | | ||||
| | `image.repository`                   | Wiki.js image                                | `requarks/wiki`                                           | | ||||
| | `image.tag`                          | Wiki.js image tag                            | `latest`                                                      | | ||||
| | `imagePullPolicy`                    | Image pull policy                           | `IfNotPresent`                                             | | ||||
| | `replicacount`                   | Amount of wiki.js service pods to run                   | `1`                                                        | | ||||
| | `resources.limits`               | wiki.js service resource limits                         | `{cpu: 500m, memory: 500Mi}`                               | | ||||
| | `resources.requests`             | wiki.js service resource requests                       | `{cpu: 300m, memory: 300Mi}`                               | | ||||
| | `nodeSelector`                   | Node labels for wiki.js pod assignment          | `{}`                                                       | | ||||
| | `affinity`                       | Affinity settings for wiki.js pod assignment    | `{}`                                                       | | ||||
| | `schedulerName`                  | Name of an alternate scheduler for wiki.js pod  | `nil`                                                      | | ||||
| | `tolerations`                    | Toleration labels for wiki.jsk pod assignment    | `[]`                                                       | | ||||
| | `ingress.enabled`                    | Enable ingress controller resource          | `false`                                                    | | ||||
| | `ingress.annotations`                | Ingress annotations                         | `{}`                                                       | | ||||
| | `ingress.hostname`                   | URL to address your Wiki.js installation     | `wiki.local`                                             | | ||||
| | `ingress.tls`                        | Ingress TLS configuration                   | `[]`                                                       | | ||||
| | `postgresql.enabled`                 | Deploy postgres server (see below)          | `true`                                                     | | ||||
| | `postgresql.postgresqlDatabase`        | Postgres database name                      | `wiki`                                                   | | ||||
| | `postgresql.postgresqlUser`            | Postgres username                           | `postgres`                                                   | | ||||
| | `postgresql.postgresqlHost`            | External postgres host                      | `nil`                                                      | | ||||
| | `postgresql.postgresqlPassword`        | External postgres password                  | `nil`                                                      | | ||||
| | `postgresql.postgresqlPort`            | External postgres port                      | `5432`                                                     | | ||||
| | `postgresql.persistence.enabled`                | Enable postgres persistence using PVC                | `true`                                                     | | ||||
| | `postgresql.persistence.existingClaim`          | Provide an existing `PersistentVolumeClaim` for postgres | `nil`                                                      | | ||||
| | `postgresql.persistence.storageClass`           | Postgres PVC Storage Class (example: `nfs`)                           | `nil`                 | | ||||
| | `postgresql.persistence.size`                   | Postgers PVC Storage Request                         | `10Gi`                                                     | | ||||
|  | ||||
| Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, | ||||
|  | ||||
| ```console | ||||
| $ helm install --name my-release \ | ||||
|   --set postgresql.persistence.enabled=false \ | ||||
|    .  | ||||
| ``` | ||||
|  | ||||
| Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, | ||||
|  | ||||
| ```console | ||||
| $ helm install --name my-release -f values.yaml .  | ||||
| ``` | ||||
|  | ||||
| > **Tip**: You can use the default [values.yaml](values.yaml) | ||||
|  | ||||
| ## PostgresSQL | ||||
|  | ||||
| By default, PostgreSQL is installed as part of the chart. To use an external PostgreSQL server set `postgresql.enabled` to `false` and then set `postgresql.postgresqlHost` and `postgresql.postgresqlPassword`. The other options (`postgresql.postgresqlDatabase`, `postgresql.postgresqlUser` and `postgresql.postgresqlPort`) may also want changing from their default values. | ||||
|  | ||||
| ## Persistence | ||||
|  | ||||
| Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. | ||||
| See the [Configuration](#configuration) section to configure the PVC or to disable persistence. | ||||
|  | ||||
| ## Ingress | ||||
|  | ||||
| This chart provides support for Ingress resource. If you have an available Ingress Controller such as Nginx or Traefik you maybe want to set `ingress.enabled` to true and choose an `ingress.hostname` for the URL. Then, you should be able to access the installation using that address. | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								dev/helm/charts/postgresql-6.5.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dev/helm/charts/postgresql-6.5.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,5 +0,0 @@ | ||||
| dependencies: | ||||
|   - name: postgresql | ||||
|     version: 3.18.4 | ||||
|     repository: https://kubernetes-charts.storage.googleapis.com/ | ||||
|     condition: postgresql.enabled | ||||
							
								
								
									
										21
									
								
								dev/helm/templates/NOTES.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								dev/helm/templates/NOTES.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| 1. Get the application URL by running these commands: | ||||
| {{- if .Values.ingress.enabled }} | ||||
| {{- range $host := .Values.ingress.hosts }} | ||||
|   {{- range .paths }} | ||||
|   http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
| {{- else if contains "NodePort" .Values.service.type }} | ||||
|   export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "wiki.fullname" . }}) | ||||
|   export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") | ||||
|   echo http://$NODE_IP:$NODE_PORT | ||||
| {{- else if contains "LoadBalancer" .Values.service.type }} | ||||
|      NOTE: It may take a few minutes for the LoadBalancer IP to be available. | ||||
|            You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "wiki.fullname" . }}' | ||||
|   export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "wiki.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") | ||||
|   echo http://$SERVICE_IP:{{ .Values.service.port }} | ||||
| {{- else if contains "ClusterIP" .Values.service.type }} | ||||
|   export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "wiki.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") | ||||
|   echo "Visit http://127.0.0.1:8080 to use your application" | ||||
|   kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 | ||||
| {{- end }} | ||||
							
								
								
									
										108
									
								
								dev/helm/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								dev/helm/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Expand the name of the chart. | ||||
| */}} | ||||
| {{- define "wiki.name" -}} | ||||
| {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Create a default fully qualified app name. | ||||
| We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||||
| If release name contains chart name it will be used as a full name. | ||||
| */}} | ||||
| {{- define "wiki.fullname" -}} | ||||
| {{- if .Values.fullnameOverride -}} | ||||
| {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} | ||||
| {{- else -}} | ||||
| {{- $name := default .Chart.Name .Values.nameOverride -}} | ||||
| {{- if contains $name .Release.Name -}} | ||||
| {{- .Release.Name | trunc 63 | trimSuffix "-" -}} | ||||
| {{- else -}} | ||||
| {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Create chart name and version as used by the chart label. | ||||
| */}} | ||||
| {{- define "wiki.chart" -}} | ||||
| {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Common labels | ||||
| */}} | ||||
| {{- define "wiki.labels" -}} | ||||
| helm.sh/chart: {{ include "wiki.chart" . }} | ||||
| {{ include "wiki.selectorLabels" . }} | ||||
| {{- if .Chart.AppVersion }} | ||||
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||||
| {{- end }} | ||||
| app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Selector labels | ||||
| */}} | ||||
| {{- define "wiki.selectorLabels" -}} | ||||
| app.kubernetes.io/name: {{ include "wiki.name" . }} | ||||
| app.kubernetes.io/instance: {{ .Release.Name }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Create the name of the service account to use | ||||
| */}} | ||||
| {{- define "wiki.serviceAccountName" -}} | ||||
| {{- if .Values.serviceAccount.create -}} | ||||
|     {{ default (include "wiki.fullname" .) .Values.serviceAccount.name }} | ||||
| {{- else -}} | ||||
|     {{ default "default" .Values.serviceAccount.name }} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Create a default fully qualified app name. | ||||
| We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||||
| */}} | ||||
| {{- define "wiki.postgresql.fullname" -}} | ||||
| {{- if .Values.postgresql.fullnameOverride -}} | ||||
| {{- .Values.postgresql.fullnameOverride | trunc 63 | trimSuffix "-" -}} | ||||
| {{- else -}} | ||||
| {{ printf "%s-%s" .Chart.Name "postgresql"}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Set postgres host | ||||
| */}} | ||||
| {{- define "wiki.postgresql.host" -}} | ||||
| {{- if .Values.postgresql.enabled -}} | ||||
| {{- template "wiki.postgresql.fullname" . -}} | ||||
| {{- else -}} | ||||
| {{- .Values.postgresql.postgresqlHost | quote -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Set postgres secret | ||||
| */}} | ||||
| {{- define "wiki.postgresql.secret" -}} | ||||
| {{- if .Values.postgresql.enabled -}} | ||||
| {{- template "wiki.postgresql.fullname" . -}} | ||||
| {{- else -}} | ||||
| {{- template "wiki.fullname" . -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Set postgres secretKey | ||||
| */}} | ||||
| {{- define "wiki.postgresql.secretKey" -}} | ||||
| {{- if .Values.postgresql.enabled -}} | ||||
| "postgresql-password" | ||||
| {{- else -}} | ||||
| {{- default "postgresql-password" .Values.postgresql.existingSecretKey | quote -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										75
									
								
								dev/helm/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								dev/helm/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| apiVersion: apps/v1 | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: {{ include "wiki.fullname" . }} | ||||
|   labels: | ||||
|     {{- include "wiki.labels" . | nindent 4 }} | ||||
| spec: | ||||
|   replicas: {{ .Values.replicaCount }} | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       {{- include "wiki.selectorLabels" . | nindent 6 }} | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         {{- include "wiki.selectorLabels" . | nindent 8 }} | ||||
|     spec: | ||||
|     {{- with .Values.imagePullSecrets }} | ||||
|       imagePullSecrets: | ||||
|         {{- toYaml . | nindent 8 }} | ||||
|     {{- end }} | ||||
|       serviceAccountName: {{ include "wiki.serviceAccountName" . }} | ||||
|       securityContext: | ||||
|         {{- toYaml .Values.podSecurityContext | nindent 8 }} | ||||
|       containers: | ||||
|         - name: {{ .Chart.Name }} | ||||
|           securityContext: | ||||
|             {{- toYaml .Values.securityContext | nindent 12 }} | ||||
|           image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}" | ||||
|           imagePullPolicy: {{ .Values.image.pullPolicy }} | ||||
|           env: | ||||
|             - name: DB_TYPE | ||||
|               value: postgres | ||||
|             - name: DB_HOST | ||||
|               value: {{ template "wiki.postgresql.host" . }} | ||||
|             - name: DB_PORT | ||||
|               value: "{{ default "5432" .Values.postgresql.postgresqlPort }}" | ||||
|             - name: DB_NAME | ||||
|               value: {{ default "wiki" .Values.postgresql.postgresqlDatabase }} | ||||
|             - name: DB_USER | ||||
|               value: {{ default "wiki" .Values.postgresql.postgresqlUser }} | ||||
|             - name: DB_PASS | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                 {{- if .Values.postgresql.existingSecret }} | ||||
|                   name: {{ .Values.postgresql.existingSecret }} | ||||
|                 {{- else }} | ||||
|                   name: {{ template "wiki.postgresql.secret" . }} | ||||
|                 {{- end }} | ||||
|                   key: {{ template "wiki.postgresql.secretKey" . }} | ||||
|           ports: | ||||
|             - name: http | ||||
|               containerPort: 3000 | ||||
|               protocol: TCP | ||||
|           livenessProbe: | ||||
|             httpGet: | ||||
|               path: /healthz | ||||
|               port: http | ||||
|           readinessProbe: | ||||
|             httpGet: | ||||
|               path: /healthz | ||||
|               port: http | ||||
|           resources: | ||||
|             {{- toYaml .Values.resources | nindent 12 }} | ||||
|       {{- with .Values.nodeSelector }} | ||||
|       nodeSelector: | ||||
|         {{- toYaml . | nindent 8 }} | ||||
|       {{- end }} | ||||
|     {{- with .Values.affinity }} | ||||
|       affinity: | ||||
|         {{- toYaml . | nindent 8 }} | ||||
|     {{- end }} | ||||
|     {{- with .Values.tolerations }} | ||||
|       tolerations: | ||||
|         {{- toYaml . | nindent 8 }} | ||||
|     {{- end }} | ||||
| @@ -1,39 +1,41 @@ | ||||
| {{- if .Values.ingress.enabled }} | ||||
| {{- range .Values.ingress.hosts  }} | ||||
| {{- if .Values.ingress.enabled -}} | ||||
| {{- $fullName := include "wiki.fullname" . -}} | ||||
| {{- $svcPort := .Values.service.port -}} | ||||
| {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| apiVersion: networking.k8s.io/v1beta1 | ||||
| {{- else -}} | ||||
| apiVersion: extensions/v1beta1 | ||||
| {{- end }} | ||||
| kind: Ingress | ||||
| metadata: | ||||
|   name: {{ template "wiki.fullname" $ }} | ||||
|   name: {{ $fullName }} | ||||
|   labels: | ||||
|     app: {{ template "wiki.name" $ }} | ||||
|     chart: {{ template "wiki.chart" $ }} | ||||
|     release: {{ $.Release.Name | quote }} | ||||
|     heritage: {{ $.Release.Service | quote }} | ||||
|     {{- include "wiki.labels" . | nindent 4 }} | ||||
|   {{- with .Values.ingress.annotations }} | ||||
|   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 }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| spec: | ||||
|   rules: | ||||
|   - host: {{ .name }} | ||||
|     http: | ||||
|       paths: | ||||
|         - path: {{ default "/" .path }} | ||||
|           backend: | ||||
|             serviceName: {{ template "wiki.fullname" $ }} | ||||
|             servicePort: 80 | ||||
| {{- if .tls }} | ||||
| {{- if .Values.ingress.tls }} | ||||
|   tls: | ||||
|   - hosts: | ||||
|     - {{ .name }} | ||||
|     secretName: {{ .tlsSecret }} | ||||
| {{- end }} | ||||
| --- | ||||
|   {{- range .Values.ingress.tls }} | ||||
|     - hosts: | ||||
|       {{- range .hosts }} | ||||
|         - {{ . | quote }} | ||||
|       {{- end }} | ||||
|       secretName: {{ .secretName }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
|   rules: | ||||
|   {{- range .Values.ingress.hosts }} | ||||
|     - host: {{ .host | quote }} | ||||
|       http: | ||||
|         paths: | ||||
|         {{- range .paths }} | ||||
|           - path: {{ . }} | ||||
|             backend: | ||||
|               serviceName: {{ $fullName }} | ||||
|               servicePort: {{ $svcPort }} | ||||
|         {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
|   | ||||
| @@ -1,13 +0,0 @@ | ||||
| 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 }} | ||||
| @@ -1,32 +1,15 @@ | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: {{ template "wiki.fullname" . }} | ||||
|   name: {{ include "wiki.fullname" . }} | ||||
|   labels: | ||||
|     app: {{ template "wiki.name" . }} | ||||
|     chart: {{ template "wiki.chart" . }} | ||||
|     release: {{ .Release.Name | quote }} | ||||
|     heritage: {{ .Release.Service | quote }} | ||||
|     {{- include "wiki.labels" . | nindent 4 }} | ||||
| 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 }} | ||||
|     - port: {{ .Values.service.port }} | ||||
|       targetPort: http | ||||
|       protocol: TCP | ||||
|       name: http | ||||
|   selector: | ||||
|     app: {{ template "wiki.name" . }} | ||||
|     {{- include "wiki.selectorLabels" . | nindent 4 }} | ||||
|   | ||||
							
								
								
									
										12
									
								
								dev/helm/templates/serviceaccount.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								dev/helm/templates/serviceaccount.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| {{- if .Values.serviceAccount.create -}} | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: {{ include "wiki.serviceAccountName" . }} | ||||
|   labels: | ||||
|     {{- include "wiki.labels" . | nindent 4 }} | ||||
|   {{- with .Values.serviceAccount.annotations }} | ||||
|   annotations: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										15
									
								
								dev/helm/templates/tests/test-connection.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								dev/helm/templates/tests/test-connection.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| apiVersion: v1 | ||||
| kind: Pod | ||||
| metadata: | ||||
|   name: "{{ include "wiki.fullname" . }}-test-connection" | ||||
|   labels: | ||||
|     {{- include "wiki.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|     "helm.sh/hook": test-success | ||||
| spec: | ||||
|   containers: | ||||
|     - name: wget | ||||
|       image: busybox | ||||
|       command: ['wget'] | ||||
|       args: ['{{ include "wiki.fullname" . }}:{{ .Values.service.port }}'] | ||||
|   restartPolicy: Never | ||||
| @@ -1,41 +1,104 @@ | ||||
| ## | ||||
| # Default values for wiki. | ||||
| # This is a YAML-formatted file. | ||||
| # Declare variables to be passed into your templates. | ||||
|  | ||||
| replicaCount: 1 | ||||
|  | ||||
| image: | ||||
|   repository: requarks/wiki | ||||
|   pullPolicy: IfNotPresent | ||||
|  | ||||
| imagePullSecrets: [] | ||||
| nameOverride: "" | ||||
| fullnameOverride: "" | ||||
|  | ||||
| serviceAccount: | ||||
|   # Specifies whether a service account should be created | ||||
|   create: true | ||||
|   # Annotations to add to the service account | ||||
|   annotations: {} | ||||
|   # The name of the service account to use. | ||||
|   # If not set and create is true, a name is generated using the fullname template | ||||
|   name: | ||||
|  | ||||
| podSecurityContext: {} | ||||
|   # fsGroup: 2000 | ||||
|  | ||||
| securityContext: {} | ||||
|   # capabilities: | ||||
|   #   drop: | ||||
|   #   - ALL | ||||
|   # readOnlyRootFilesystem: true | ||||
|   # runAsNonRoot: true | ||||
|   # runAsUser: 1000 | ||||
|  | ||||
| service: | ||||
|   type: ClusterIP | ||||
|   port: 80 | ||||
|  | ||||
| ingress: | ||||
|   enabled: false | ||||
|   annotations: {} | ||||
|     # kubernetes.io/ingress.class: nginx | ||||
|     # kubernetes.io/tls-acme: "true" | ||||
|   hosts: | ||||
|     - host: wiki.local | ||||
|       paths: ["/"] | ||||
|   tls: [] | ||||
|   #  - secretName: chart-example-tls | ||||
|   #    hosts: | ||||
|   #      - chart-example.local | ||||
|  | ||||
| resources: {} | ||||
|   # We usually recommend not to specify default resources and to leave this as a conscious | ||||
|   # choice for the user. This also increases chances charts run on environments with little | ||||
|   # resources, such as Minikube. If you do want to specify resources, uncomment the following | ||||
|   # lines, adjust them as necessary, and remove the curly braces after 'resources:'. | ||||
|   # limits: | ||||
|   #   cpu: 100m | ||||
|   #   memory: 128Mi | ||||
|   # requests: | ||||
|   #   cpu: 100m | ||||
|   #   memory: 128Mi | ||||
|  | ||||
| nodeSelector: {} | ||||
|  | ||||
| tolerations: [] | ||||
|  | ||||
| affinity: {} | ||||
|  | ||||
| ## 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. | ||||
|   ## Set to false if bringing your own PostgreSQL, and set secret value postgresql-uri. | ||||
|   ## | ||||
|   enabled: true | ||||
|   ### PostgreSQL User to create. | ||||
|   ## | ||||
|   ## 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 | ||||
|   ## | ||||
|   postgresqlUser: postgres | ||||
|   ## PostgreSQL Database to create. | ||||
|   postgresDatabase: wiki | ||||
|   ## | ||||
|   postgresqlDatabase: wiki | ||||
|   ## Persistent Volume Storage configuration. | ||||
|   ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes | ||||
|   ## | ||||
|   persistence: | ||||
|     ## | ||||
|     ## Enable PostgreSQL persistence using Persistent Volume Claims. | ||||
|     ## | ||||
|     enabled: true | ||||
|     ## concourse data Persistent Volume Storage Class | ||||
|     ## If defined, storageClassName: <storageClass> | ||||
|     ## If set to "-", storageClassName: "", which disables dynamic provisioning | ||||
|     ## If undefined (the default) or set to null, no storageClassName spec is | ||||
|     ##   set, choosing the default provisioner.  (gp2 on AWS, standard on | ||||
|     ##   GKE, AWS & OpenStack) | ||||
|     ## | ||||
|     ## Persistant class | ||||
|     # storageClass: classname | ||||
|     # storageClass: "-" | ||||
|     ## Persistent Volume Access Mode. | ||||
|     ## | ||||
|     ## Access mode: | ||||
|     accessMode: ReadWriteOnce | ||||
|     ## Persistent Volume Storage Size. | ||||
|     ## | ||||
|     ## Requested size: | ||||
|     size: 10Gi | ||||
|     size: 8Gi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user