Version 2.0.0
This commit is contained in:
@@ -1,19 +1 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.loopApp.ingress.enabled }}
|
||||
{{- range $host := .Values.loopApp.ingress.hosts }}
|
||||
http://{{ $host }}
|
||||
{{- end}}
|
||||
{{- else if contains "NodePort" .Values.loopApp.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "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.loopApp.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 svc -w {{ include "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.loopApp.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.loopApp.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "loop-enterprise-edition.name" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.loopApp.service.externalPort }}
|
||||
{{- end }}
|
||||
{{- include "app.validateValues" . }}
|
||||
|
||||
@@ -1,61 +1,56 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
Return the proper App image name
|
||||
*/}}
|
||||
{{- define "loop-enterprise-edition.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- define "app.image" -}}
|
||||
{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
|
||||
{{- 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.
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "loop-enterprise-edition.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- define "app.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "common.names.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper Docker Image Registry Secret Names
|
||||
*/}}
|
||||
{{- define "app.imagePullSecrets" -}}
|
||||
{{- include "common.images.pullSecrets" (dict "images" (list .Values.image) "global" .Values.global) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Set App PVC
|
||||
*/}}
|
||||
{{- define "app.pvc" -}}
|
||||
{{- .Values.persistence.existingClaim | default (include "common.names.fullname" .) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper Storage Class
|
||||
*/}}
|
||||
{{- define "app.storageClass" -}}
|
||||
{{- include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Choose port name based on .port .targetPort. Fallbacks to "app".
|
||||
|
||||
Examples:
|
||||
{{- include "app.service.defaultPortName" (dict "port" "80" "targetPort" "8080") }}
|
||||
{{- include "app.service.defaultPortName" (dict "port" "80" "targetPort" "api") }}
|
||||
*/}}
|
||||
{{- define "app.service.defaultPortName" -}}
|
||||
{{- $targetPort := .targetPort | default .port -}}
|
||||
{{- if regexMatch "^[0-9]+$" ($targetPort | toString) -}}
|
||||
app
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{ $targetPort }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "loop-enterprise-edition.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Create a fully qualified jobserver name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "loop-enterprise-edition.jobserver.fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s-%s" .Release.Name $name .Values.global.features.jobserver.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for ingress. Based on
|
||||
1) Helm Version (.Capabilities has been changed in v3)
|
||||
2) Kubernetes Version
|
||||
*/}}
|
||||
{{- define "loop-enterprise-edition.ingress.apiVersion" -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" -}}
|
||||
"networking.k8s.io/v1"
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
|
||||
"networking.k8s.io/v1beta1"
|
||||
{{- else -}}
|
||||
"extensions/v1beta1"
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "loop-enterprise-edition.deployment.apiVersion" -}}
|
||||
"apps/v1"
|
||||
{{- end -}}
|
||||
|
||||
20
loop-enterprise-edition/templates/_ingress-nginx.tpl
Normal file
20
loop-enterprise-edition/templates/_ingress-nginx.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Ingress annotations
|
||||
*/}}
|
||||
{{- define "app.ingress.annotations" -}}
|
||||
{{- if .Values.ingress.certManager }}
|
||||
kubernetes.io/tls-acme: "true"
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.ingress.nginx.configurationSnippet }}
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 2 }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.ingress.nginx.serverSnippet }}
|
||||
nginx.ingress.kubernetes.io/server-snippet: |
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
39
loop-enterprise-edition/templates/_names.tpl
Normal file
39
loop-enterprise-edition/templates/_names.tpl
Normal file
@@ -0,0 +1,39 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "common.names.name" -}}
|
||||
{{- default (.Values.name | default "") .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "common.names.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | 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 "common.names.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default (.Values.name | default "") .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 -}}
|
||||
|
||||
{{/*
|
||||
Short for "common.name.fullname"
|
||||
*/}}
|
||||
{{- define "app.fullname" -}}
|
||||
{{ template "common.names.fullname" . }}
|
||||
{{- end -}}
|
||||
75
loop-enterprise-edition/templates/_validations.tpl
Normal file
75
loop-enterprise-edition/templates/_validations.tpl
Normal file
@@ -0,0 +1,75 @@
|
||||
{{/*
|
||||
Compile all warnings into a single message, and call fail.
|
||||
*/}}
|
||||
{{- define "app.validateValues" -}}
|
||||
{{- $messages := list -}}
|
||||
{{- $messages := append $messages (include "app.validateValues.nameGiven" .) -}}
|
||||
{{- $messages := append $messages (include "app.validateValues.imageRepositoryGiven" .) -}}
|
||||
{{- $messages := append $messages (include "app.validateValues.noSecretsData" .) -}}
|
||||
{{- $messages := append $messages (include "app.validateValues.noConfigMapsData" .) -}}
|
||||
{{- $messages := append $messages (include "app.validateValues.ingressHasPortsProvided" .) -}}
|
||||
{{- $messages := without $messages "" -}}
|
||||
{{- $message := join "\n" $messages -}}
|
||||
|
||||
{{- if $message -}}
|
||||
{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate value name is given */}}
|
||||
{{- define "app.validateValues.nameGiven" -}}
|
||||
{{- if not .Values.name -}}
|
||||
app: no-name
|
||||
You did not specify the application name for the generic app chart. Please
|
||||
set name.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate that the container repository name is given */}}
|
||||
{{- define "app.validateValues.imageRepositoryGiven" -}}
|
||||
{{- if and (not .Values.image.repository) (has .Values.appKind (list "Deployment" "StatefulSet" "DaemonSet")) -}}
|
||||
app: no-image-repository
|
||||
You did not specify the application image repository. Please
|
||||
set image.repository.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate that the container has command or args given */}}
|
||||
{{- define "app.validateValues.containerCommandOrArgsGiven" -}}
|
||||
{{- if not (or .Values.command .Values.args) -}}
|
||||
app: no-command-or-args
|
||||
You did not specify command or args for the application default
|
||||
container. Please set command or args.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate that secrets have data or stringData given */}}
|
||||
{{- define "app.validateValues.noSecretsData" -}}
|
||||
{{- range $_, $values := .Values.secrets -}}
|
||||
{{- if not (or $values.data $values.stringData) -}}
|
||||
app: no-secrets-data-or-stringdata
|
||||
Each item of .secrets must have data or stringData field. Please
|
||||
check the input configuration.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate that configMaps have data given */}}
|
||||
{{- define "app.validateValues.noConfigMapsData" -}}
|
||||
{{- range $_, $values := .Values.configMaps -}}
|
||||
{{- if not $values.data -}}
|
||||
app: no-configmaps-data
|
||||
Each item of .configMaps must have data field. Please
|
||||
check the input configuration.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate that the enabled ingress has service ports provided */}}
|
||||
{{- define "app.validateValues.ingressHasPortsProvided" -}}
|
||||
{{- if and .Values.ingress.enabled (not (or .Values.service.port .Values.service.ports)) -}}
|
||||
app: no-service-ports-for-ingress
|
||||
You enabled ingress, but did not specify service port or ports. Please set
|
||||
service.port or service.ports.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
26
loop-enterprise-edition/templates/configmaps.yaml
Normal file
26
loop-enterprise-edition/templates/configmaps.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
{{- range $nameSuffix, $values := .Values.configMaps }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" $ }}-{{ $nameSuffix }}
|
||||
annotations:
|
||||
{{- with $values.annotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if $.Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels.standard" $ | nindent 4 }}
|
||||
{{- if $.Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with $values.labels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with $values.data }}
|
||||
data:
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,157 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: server
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
spec:
|
||||
{{- if not .Values.loopApp.autoscaling.enabled }}
|
||||
replicas: {{ .Values.loopApp.replicaCount }}
|
||||
{{- end }}
|
||||
{{- with .Values.loopApp.strategy }}
|
||||
strategy:
|
||||
{{- . | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.loopApp.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: server
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "{{ .Values.loopApp.service.metricsPort }}"
|
||||
prometheus.io/path: "/metrics"
|
||||
{{- if .Values.loopApp.extraPodAnnotations }}
|
||||
{{- .Values.loopApp.extraPodAnnotations | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.loopApp.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.loopApp.nodeSelector | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.affinity }}
|
||||
affinity:
|
||||
{{- toYaml .Values.loopApp.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.loopApp.tolerations | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.loopApp.securityContext | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
serviceAccountName: {{ .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- if .Values.loopApp.extraInitContainers }}
|
||||
{{- .Values.loopApp.extraInitContainers | toYaml | nindent 6 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ include "loop-enterprise-edition.name" . }}
|
||||
image: "{{ .Values.loopApp.image.repository }}:{{ .Values.loopApp.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.loopApp.image.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.loopApp.service.internalPort }}
|
||||
name: api
|
||||
- containerPort: {{ .Values.loopApp.service.metricsPort }}
|
||||
name: metrics
|
||||
- containerPort: {{ .Values.loopApp.service.clusterPort }}
|
||||
name: cluster
|
||||
- containerPort: {{ .Values.loopApp.service.gossipPort }}
|
||||
name: gossip
|
||||
env:
|
||||
- name: MM_CONFIG
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.global.features.database.existingDatabaseSecret }}
|
||||
name: {{ .Values.global.features.database.existingDatabaseSecret.name }}
|
||||
key: {{ .Values.global.features.database.existingDatabaseSecret.key }}
|
||||
{{- else }}
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}-loop-dbsecret
|
||||
key: loop.dbsecret
|
||||
{{- end }}
|
||||
- name: MM_SERVICESETTINGS_LICENSEFILELOCATION
|
||||
value: {{ printf "/mattermost/%s" (.Values.global.existingLicenseSecret | default "loop.loop-license") | squote }}
|
||||
- name: MM_SERVICESETTINGS_SITEURL
|
||||
value: "{{ .Values.global.siteUrl }}"
|
||||
- name: MM_SERVICESETTINGS_LISTENADDRESS
|
||||
value: ":{{ .Values.loopApp.service.internalPort }}"
|
||||
- name: MM_SERVICESETTINGS_ENABLELINKPREVIEWS
|
||||
value: "{{ .Values.global.enableLinkPreviews }}"
|
||||
- name: MM_SERVICESETTINGS_ENABLECUSTOMEMOJI
|
||||
value: "{{ .Values.global.enableCustomEmoji }}"
|
||||
{{- if .Values.global.features.jobserver.enabled }}
|
||||
- name: MM_JOBSETTINGS_RUNJOBS
|
||||
value: "false"
|
||||
- name: MM_JOBSETTINGS_RUNSCHEDULER
|
||||
value: "false"
|
||||
{{- end }}
|
||||
{{- with .Values.loopApp.extraEnv }}
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 90
|
||||
timeoutSeconds: 5
|
||||
periodSeconds: 15
|
||||
httpGet:
|
||||
path: /api/v4/system/ping
|
||||
port: {{ .Values.loopApp.service.internalPort }}
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 15
|
||||
timeoutSeconds: 5
|
||||
periodSeconds: 15
|
||||
httpGet:
|
||||
path: /api/v4/system/ping
|
||||
port: {{ .Values.loopApp.service.internalPort }}
|
||||
volumeMounts:
|
||||
{{- if .Values.global.existingLicenseSecret.name }}
|
||||
- mountPath: /mattermost/{{.Values.global.existingLicenseSecret.key }}
|
||||
name: loop-license
|
||||
subPath: {{.Values.global.existingLicenseSecret.key }}
|
||||
{{- else }}
|
||||
- mountPath: /mattermost/loop.loop-license
|
||||
name: loop-license
|
||||
subPath: loop.loop-license
|
||||
{{- end }}
|
||||
- mountPath: /mattermost/plugins/
|
||||
name: loop-plugins
|
||||
- mountPath: /mattermost/client/plugins/
|
||||
name: loop-plugins-client
|
||||
{{- if .Values.loopApp.extraVolumeMounts }}
|
||||
{{ toYaml .Values.loopApp.extraVolumeMounts | indent 8 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.loopApp.resources | indent 10 }}
|
||||
volumes:
|
||||
- name: loop-plugins
|
||||
emptyDir: {}
|
||||
- name: loop-plugins-client
|
||||
emptyDir: {}
|
||||
- name: loop-config
|
||||
emptyDir: {}
|
||||
- name: loop-license
|
||||
secret:
|
||||
{{- if .Values.global.existingLicenseSecret.name }}
|
||||
secretName: {{ .Values.global.existingLicenseSecret.name }}
|
||||
{{- else }}
|
||||
secretName: {{ include "loop-enterprise-edition.fullname" . }}-loop-license
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.extraVolumes }}
|
||||
{{ toYaml .Values.loopApp.extraVolumes | indent 6 }}
|
||||
{{- end }}
|
||||
@@ -1,31 +0,0 @@
|
||||
{{- if .Values.loopApp.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: {{ template "loop-enterprise-edition.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}
|
||||
minReplicas: {{ .Values.loopApp.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.loopApp.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- with .Values.loopApp.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
targetAverageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.loopApp.autoscaling.targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
targetAverageUtilization: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,101 +0,0 @@
|
||||
{{- if .Values.global.features.jobserver.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.jobserver.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
spec:
|
||||
replicas: {{ .Values.global.features.jobserver.replicaCount }}
|
||||
{{- with .Values.global.features.jobserver.strategy }}
|
||||
strategy:
|
||||
{{- . | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.global.features.jobserver.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: {{ .Values.global.features.jobserver.name }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
annotations:
|
||||
{{- if .Values.loopApp.extraPodAnnotations }}
|
||||
{{- .Values.loopApp.extraPodAnnotations | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.global.features.jobserver.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.global.features.jobserver.nodeSelector | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.global.features.jobserver.affinity }}
|
||||
affinity:
|
||||
{{- toYaml .Values.global.features.jobserver.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.global.features.jobserver.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml .Values.global.features.jobserver.tolerations | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.loopApp.securityContext | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
- name: "init-loop-app"
|
||||
image: "{{ .Values.initContainerImage.repository }}:{{ .Values.initContainerImage.tag }}"
|
||||
imagePullPolicy: {{ .Values.initContainerImage.imagePullPolicy }}
|
||||
command: [
|
||||
"sh",
|
||||
"-c",
|
||||
"until curl --max-time 5 http://{{ include "loop-enterprise-edition.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.loopApp.service.internalPort }}/api/v4/system/ping ; do echo waiting for LOOP App come up; sleep 5; done; echo init-loop-app finished"
|
||||
]
|
||||
containers:
|
||||
- name: {{ include "loop-enterprise-edition.name" . }}-jobserver
|
||||
image: "{{ .Values.loopApp.image.repository }}:{{ .Values.loopApp.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.loopApp.image.pullPolicy }}
|
||||
command: ["mattermost", "jobserver"]
|
||||
env:
|
||||
- name: MM_CONFIG
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.global.features.database.existingDatabaseSecret }}
|
||||
name: {{ .Values.global.features.database.existingDatabaseSecret.name }}
|
||||
key: {{ .Values.global.features.database.existingDatabaseSecret.key }}
|
||||
{{- else }}
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}-loop-dbsecret
|
||||
key: loop.dbsecret
|
||||
{{- end }}
|
||||
{{- with .Values.global.features.jobserver.extraEnv }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.global.existingLicenseSecret.name }}
|
||||
- mountPath: /mattermost/{{.Values.global.existingLicenseSecret.key }}
|
||||
name: loop-license
|
||||
subPath: {{.Values.global.existingLicenseSecret.key }}
|
||||
{{- else }}
|
||||
- mountPath: /mattermost/loop.loop-license
|
||||
name: loop-license
|
||||
subPath: loop.loop-license
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: loop-license
|
||||
secret:
|
||||
{{- if .Values.global.existingLicenseSecret.name }}
|
||||
secretName: {{ .Values.global.existingLicenseSecret.name }}
|
||||
{{- else }}
|
||||
secretName: {{ include "loop-enterprise-edition.fullname" . }}-loop-license
|
||||
{{- end }}
|
||||
|
||||
{{- end -}}
|
||||
129
loop-enterprise-edition/templates/deployment.yaml
Normal file
129
loop-enterprise-edition/templates/deployment.yaml
Normal file
@@ -0,0 +1,129 @@
|
||||
{{- if eq .Values.appKind "Deployment" }}
|
||||
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- if .Values.updateStrategy }}
|
||||
strategy: {{- tpl (toYaml .Values.updateStrategy) $ | nindent 4 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- if or .Values.checksums .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- range .Values.checksums }}
|
||||
checksum/{{ . | trimPrefix "/" }}: {{ include (print $.Template.BasePath "/" (. | trimPrefix "/")) $ | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if .Values.podAnnotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 8 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.podLabels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "app.serviceAccountName" . }}
|
||||
{{- include "app.imagePullSecrets" . | nindent 6 }}
|
||||
dnsPolicy: {{ .Values.dnsPolicy }}
|
||||
{{- if .Values.priorityClassName }}
|
||||
priorityClassName: {{ .Values.priorityClassName | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.hostAliases }}
|
||||
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.hostNetwork | toString }}
|
||||
hostNetwork: {{ .Values.hostNetwork }}
|
||||
{{- end }}
|
||||
{{- if .Values.affinity }}
|
||||
affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }}
|
||||
{{- else }}
|
||||
affinity:
|
||||
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "context" $) | nindent 10 }}
|
||||
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "context" $) | nindent 10 }}
|
||||
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nodeSelector }}
|
||||
nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.tolerations }}
|
||||
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.schedulerName }}
|
||||
schedulerName: {{ .Values.schedulerName | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.podSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.initContainers }}
|
||||
initContainers: {{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 10 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: app
|
||||
image: {{ include "app.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- if .Values.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.command }}
|
||||
command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.args }}
|
||||
args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.env }}
|
||||
env:
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.env "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.envFrom }}
|
||||
envFrom: {{- include "common.tplvalues.render" (dict "value" .Values.envFrom "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.containerPorts }}
|
||||
ports: {{ .Values.containerPorts | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
resources: {{- include "common.tplvalues.render" (dict "value" .Values.resources "context" $) | nindent 12 }}
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled") "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.persistence.enabled }}
|
||||
- name: data
|
||||
mountPath: {{ .Values.persistence.mountPath }}
|
||||
{{- end }}
|
||||
{{- if .Values.volumeMounts }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.volumeMounts "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- range $name, $values := .Values.extraContainers }}
|
||||
- name: {{ $name }}
|
||||
{{- with $values}}
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
{{- if .Values.persistence.enabled }}
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "app.pvc" . }}
|
||||
{{- end }}
|
||||
{{- if .Values.volumes }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.volumes "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
4
loop-enterprise-edition/templates/extra-list.yaml
Normal file
4
loop-enterprise-edition/templates/extra-list.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
{{- range .Values.extraDeploy }}
|
||||
---
|
||||
{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
|
||||
{{- end }}
|
||||
35
loop-enterprise-edition/templates/hpa.yaml
Normal file
35
loop-enterprise-edition/templates/hpa.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
{{- if and .Values.autoscaling.enabled (eq .Values.appKind "Deployment") }}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
namespace: {{ .Release.Namespace | quote }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: controller
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.commonLabels "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- if .Values.autoscaling.targetCPU }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetCPU }}
|
||||
{{- end }}
|
||||
{{- if .Values.autoscaling.targetMemory }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetMemory }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,50 +0,0 @@
|
||||
{{- if .Values.loopApp.ingress.enabled -}}
|
||||
{{- $serviceName := include "loop-enterprise-edition.fullname" . -}}
|
||||
{{- $servicePort := .Values.loopApp.service.externalPort -}}
|
||||
apiVersion: {{ include "loop-enterprise-edition.ingress.apiVersion" . }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
annotations:
|
||||
{{- if .Values.loopApp.ingress.annotations }}
|
||||
{{ toYaml .Values.loopApp.ingress.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.loopApp.ingress.tls }}
|
||||
kubernetes.io/tls-acme: 'true'
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
{{- else }}
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.loopApp.ingress.ingressClassName }}
|
||||
ingressClassName: {{ .Values.loopApp.ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range $host := .Values.loopApp.ingress.hosts }}
|
||||
- host: {{ $host }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
pathType: Prefix
|
||||
{{- else }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if .Values.loopApp.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.loopApp.ingress.tls | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
58
loop-enterprise-edition/templates/ingress.yaml
Normal file
58
loop-enterprise-edition/templates/ingress.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
{{- if and .Values.ingress.enabled (or .Values.service.port .Values.service.ports) }}
|
||||
apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- include "app.ingress.annotations" . | nindent 4 }}
|
||||
{{- if .Values.ingress.annotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and .Values.ingress.ingressClassName (include "common.ingress.supportsIngressClassname" .) }}
|
||||
ingressClassName: {{ .Values.ingress.ingressClassName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- if and .Values.ingress.hostname }}
|
||||
- host: {{ .Values.ingress.hostname }}
|
||||
http:
|
||||
paths:
|
||||
{{- if .Values.ingress.extraPaths }}
|
||||
{{- toYaml .Values.ingress.extraPaths | nindent 10 }}
|
||||
{{- end }}
|
||||
- path: {{ .Values.ingress.path }}
|
||||
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
|
||||
pathType: {{ .Values.ingress.pathType }}
|
||||
{{- end }}
|
||||
{{- $svcPort := include "app.service.defaultPortName" (pick .Values.service "port" "targetPort") }}
|
||||
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" $svcPort "context" .) | nindent 14 }}
|
||||
{{- end }}
|
||||
{{- range .Values.ingress.extraHosts }}
|
||||
- host: {{ .name }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ default "/" .path }}
|
||||
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
|
||||
pathType: {{ default "ImplementationSpecific" .pathType }}
|
||||
{{- end }}
|
||||
backend: {{- include "common.ingress.backend" (dict "serviceName" .serviceName "servicePort" .servicePort "context" $) | nindent 14 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.ingress.tls .Values.ingress.extraTls }}
|
||||
tls:
|
||||
{{- if .Values.ingress.tls }}
|
||||
- hosts:
|
||||
- {{ .Values.ingress.hostname }}
|
||||
secretName: {{ printf "%s-tls" .Values.ingress.hostname }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.extraTls }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.extraTls "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
22
loop-enterprise-edition/templates/pvc.yaml
Normal file
22
loop-enterprise-edition/templates/pvc.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
{{ include "app.storageClass" . }}
|
||||
{{- end -}}
|
||||
@@ -1,14 +0,0 @@
|
||||
{{- if not .Values.global.features.database.existingDatabaseSecret.name }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}-loop-dbsecret
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
type: Opaque
|
||||
data:
|
||||
loop.dbsecret: {{ tpl "{{ .Values.global.features.database.external.driver }}://{{ .Values.global.features.database.external.dataSource }}" . | b64enc }}
|
||||
{{- end }}
|
||||
@@ -1,14 +0,0 @@
|
||||
{{- if not .Values.global.existingLicenseSecret.name }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}-loop-license
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
type: Opaque
|
||||
data:
|
||||
loop.loop-license: {{ .Values.global.loopLicense | b64enc | quote }}
|
||||
{{- end -}}
|
||||
30
loop-enterprise-edition/templates/secrets.yaml
Normal file
30
loop-enterprise-edition/templates/secrets.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
{{- range $nameSuffix, $values := .Values.secrets }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" $ }}-{{ $nameSuffix }}
|
||||
annotations:
|
||||
{{- with $values.annotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if $.Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "common.labels.standard" $ | nindent 4 }}
|
||||
{{- if $.Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with $values.labels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
{{- with $values.data }}
|
||||
data:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with $values.stringData }}
|
||||
stringData: {{- include "common.tplvalues.render" (dict "value" . "context" $) | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,17 +0,0 @@
|
||||
{{ if .Values.serviceAccount.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ .Values.serviceAccount.name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{ tpl (toYaml .Values.serviceAccount.annotations) . | indent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: server
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
{{ end }}
|
||||
@@ -1,25 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "loop-enterprise-edition.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "loop-enterprise-edition.chart" . }}
|
||||
spec:
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "loop-enterprise-edition.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: server
|
||||
type: {{ .Values.loopApp.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.loopApp.service.externalPort }}
|
||||
targetPort: {{ .Values.loopApp.service.internalPort }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.loopApp.service.name }}
|
||||
- port: {{ .Values.loopApp.service.metricsPort }}
|
||||
targetPort: {{ .Values.loopApp.service.metricsPort }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.loopApp.service.metricsName }}
|
||||
50
loop-enterprise-edition/templates/service.yaml
Normal file
50
loop-enterprise-edition/templates/service.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
{{- if or .Values.service.port .Values.service.ports -}}
|
||||
{{- $service := .Values.service -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.service.annotations .Values.commonAnnotations }}
|
||||
annotations:
|
||||
{{- if .Values.service.annotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
|
||||
{{- end }}
|
||||
{{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
ports:
|
||||
{{- if .Values.service.port }}
|
||||
- name: {{ include "app.service.defaultPortName" (pick .Values.service "port" "targetPort") }}
|
||||
port: {{ .Values.service.port }}
|
||||
{{- if .Values.service.targetPort }}
|
||||
targetPort: {{ .Values.service.targetPort }}
|
||||
{{- end }}
|
||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePort)) }}
|
||||
nodePort: {{ .Values.service.nodePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- range .Values.service.ports }}
|
||||
- name: {{ .name }}
|
||||
port: {{ .port }}
|
||||
{{- if .targetPort }}
|
||||
targetPort: {{ .targetPort }}
|
||||
{{- end }}
|
||||
{{- if and .nodePort (or (eq $service.type "NodePort") (eq $service.type "LoadBalancer")) }}
|
||||
nodePort: {{ .nodePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
|
||||
{{- end -}}
|
||||
19
loop-enterprise-edition/templates/serviceaccount.yaml
Normal file
19
loop-enterprise-edition/templates/serviceaccount.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "app.serviceAccountName" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.serviceAccount.annotations .Values.commonAnnotations }}
|
||||
annotations:
|
||||
{{- if .Values.serviceAccount.annotations }}
|
||||
{{- toYaml .Values.serviceAccount.annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
Reference in New Issue
Block a user