hydra bootstraping
This commit is contained in:
		
							
								
								
									
										229
									
								
								opencloud/charts/hydra/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										229
									
								
								opencloud/charts/hydra/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,229 @@
 | 
			
		||||
{{/* vim: set filetype=mustache: */}}
 | 
			
		||||
{{/*
 | 
			
		||||
Expand the name of the chart.
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.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 "hydra.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 "hydra.chart" -}}
 | 
			
		||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Ensure there is always a way to track down source of the deployment.
 | 
			
		||||
It is unlikely AppVersion will be missing, but we will fallback on the
 | 
			
		||||
chart's version in that case.
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.version" -}}
 | 
			
		||||
{{- if .Chart.AppVersion }}
 | 
			
		||||
{{- .Chart.AppVersion -}}
 | 
			
		||||
{{- else -}}
 | 
			
		||||
{{- printf "v%s" .Chart.Version -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Common labels
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.labels" -}}
 | 
			
		||||
"app.kubernetes.io/name": {{ include "hydra.name" . | quote }}
 | 
			
		||||
"app.kubernetes.io/instance": {{ .Release.Name | quote }}
 | 
			
		||||
"app.kubernetes.io/version": {{ include "hydra.version" . | quote }}
 | 
			
		||||
"app.kubernetes.io/managed-by": {{ .Release.Service | quote }}
 | 
			
		||||
"helm.sh/chart": {{ include "hydra.chart" . | quote }}
 | 
			
		||||
{{- if $.Values.watcher.enabled }}
 | 
			
		||||
{{ printf "\"%s\": \"%s\"" $.Values.watcher.watchLabelKey (include "hydra.name" .) }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the dsn value
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.dsn" -}}
 | 
			
		||||
{{- if .Values.demo -}}
 | 
			
		||||
memory
 | 
			
		||||
{{- else if and .Values.secret.nameOverride (not .Values.secret.enabled) -}}
 | 
			
		||||
dsn-loaded-from-env
 | 
			
		||||
{{- else if not (empty (.Values.hydra.config.dsn)) -}}
 | 
			
		||||
{{- .Values.hydra.config.dsn }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the name of the secret resource containing secrets
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.secretname" -}}
 | 
			
		||||
{{- if .Values.secret.nameOverride -}}
 | 
			
		||||
{{- .Values.secret.nameOverride | trunc 63 | trimSuffix "-" -}}
 | 
			
		||||
{{- else -}}
 | 
			
		||||
{{ include "hydra.fullname" . }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the secrets.system value
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.secrets.system" -}}
 | 
			
		||||
  {{- if (.Values.hydra.config.secrets).system -}}
 | 
			
		||||
    {{- if kindIs "slice" .Values.hydra.config.secrets.system -}}
 | 
			
		||||
      {{- if gt (len .Values.hydra.config.secrets.system) 1 -}}
 | 
			
		||||
        "{{- join "\",\"" .Values.hydra.config.secrets.system -}}"
 | 
			
		||||
      {{- else -}}
 | 
			
		||||
        {{- join "" .Values.hydra.config.secrets.system -}}
 | 
			
		||||
      {{- end -}}
 | 
			
		||||
    {{- else -}}
 | 
			
		||||
      {{- fail "Expected hydra.config.secrets.system to be a list of strings" -}}
 | 
			
		||||
    {{- end -}}
 | 
			
		||||
  {{- else if .Values.demo -}}
 | 
			
		||||
    a-very-insecure-secret-for-checking-out-the-demo
 | 
			
		||||
  {{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the secrets.cookie value
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.secrets.cookie" -}}
 | 
			
		||||
  {{- if (.Values.hydra.config.secrets).cookie -}}
 | 
			
		||||
    {{- if kindIs "slice" .Values.hydra.config.secrets.cookie -}}
 | 
			
		||||
      {{- if gt (len .Values.hydra.config.secrets.cookie) 1 -}}
 | 
			
		||||
        "{{- join "\",\"" .Values.hydra.config.secrets.cookie -}}"
 | 
			
		||||
      {{- else -}}
 | 
			
		||||
        {{- join "" .Values.hydra.config.secrets.cookie -}}
 | 
			
		||||
      {{- end -}}
 | 
			
		||||
    {{- else -}}
 | 
			
		||||
      {{- fail "Expected hydra.config.secrets.cookie to be a list of strings" -}}
 | 
			
		||||
    {{- end -}}
 | 
			
		||||
  {{- else -}}
 | 
			
		||||
    {{- include "hydra.secrets.system" . }}
 | 
			
		||||
  {{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the configmap data, redacting secrets
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.configmap" -}}
 | 
			
		||||
{{- $config := omit .Values.hydra.config "dsn" "secrets" -}}
 | 
			
		||||
{{- tpl (toYaml $config) . -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Generate the urls.issuer value
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.config.urls.issuer" -}}
 | 
			
		||||
{{- if .Values.hydra.config.urls.self.issuer -}}
 | 
			
		||||
{{- .Values.hydra.config.urls.self.issuer }}
 | 
			
		||||
{{- else if .Values.ingress.public.enabled -}}
 | 
			
		||||
{{- $host := index .Values.ingress.public.hosts 0 -}}
 | 
			
		||||
http{{ if $.Values.ingress.public.tls }}s{{ end }}://{{ $host.host }}
 | 
			
		||||
{{- else if contains "ClusterIP" .Values.service.public.type -}}
 | 
			
		||||
http://127.0.0.1:{{ .Values.service.public.port }}/
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Check overrides consistency
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.check.override.consistency" -}}
 | 
			
		||||
{{- if and .Values.maester.enabled .Values.fullnameOverride -}}
 | 
			
		||||
{{- if not .Values.maester.hydraFullnameOverride -}}
 | 
			
		||||
{{ fail "hydra fullname has been overridden, but the new value has not been provided to maester. Set maester.hydraFullnameOverride" }}
 | 
			
		||||
{{- else if not (eq .Values.maester.hydraFullnameOverride .Values.fullnameOverride) -}}
 | 
			
		||||
{{ fail (tpl "hydra fullname has been overridden, but a different value was provided to maester. {{ .Values.maester.hydraFullnameOverride }} different of {{ .Values.fullnameOverride }}" . ) }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{- define "hydra.utils.joinListWithComma" -}}
 | 
			
		||||
{{- $local := dict "first" true -}}
 | 
			
		||||
{{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Create the name of the service account to use
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.serviceAccountName" -}}
 | 
			
		||||
{{- if .Values.deployment.serviceAccount.create }}
 | 
			
		||||
{{- default (include "hydra.fullname" .) .Values.deployment.serviceAccount.name }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- default "default" .Values.deployment.serviceAccount.name }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Create the name of the service account for the Job to use
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.job.serviceAccountName" -}}
 | 
			
		||||
{{- if .Values.job.serviceAccount.create }}
 | 
			
		||||
{{- printf "%s-job" (default (include "hydra.fullname" .) .Values.job.serviceAccount.name) }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- include "hydra.serviceAccountName" . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Create the name of the service account for the Job to use
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.cronjob.janitor.serviceAccountName" -}}
 | 
			
		||||
{{- if .Values.cronjob.janitor.serviceAccount.create }}
 | 
			
		||||
{{- printf "%s-cronjob-janitor" (default (include "hydra.fullname" .) .Values.cronjob.janitor.serviceAccount.name) }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- include "hydra.serviceAccountName" . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Checksum annotations generated from configmaps and secrets
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.annotations.checksum" -}}
 | 
			
		||||
{{- if .Values.configmap.hashSumEnabled }}
 | 
			
		||||
checksum/hydra-config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if and .Values.secret.enabled .Values.secret.hashSumEnabled }}
 | 
			
		||||
checksum/hydra-secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Check the migration type value and fail if unexpected 
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.automigration.typeVerification" -}}
 | 
			
		||||
{{- if and .Values.hydra.automigration.enabled  .Values.hydra.automigration.type }}
 | 
			
		||||
  {{- if and (ne .Values.hydra.automigration.type "initContainer") (ne .Values.hydra.automigration.type "job") }}
 | 
			
		||||
    {{- fail "hydra.automigration.type must be either 'initContainer' or 'job'" -}}
 | 
			
		||||
  {{- end }}  
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Common labels for the janitor cron job
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "hydra.janitor.labels" -}}
 | 
			
		||||
"app.kubernetes.io/name": {{ printf "%s-janitor" (include "hydra.name" .) | quote }}
 | 
			
		||||
"app.kubernetes.io/instance": {{ .Release.Name | quote }}
 | 
			
		||||
"app.kubernetes.io/version": {{ include "hydra.version" . | quote }}
 | 
			
		||||
"app.kubernetes.io/managed-by": {{ .Release.Service | quote }}
 | 
			
		||||
"app.kubernetes.io/component": janitor
 | 
			
		||||
"helm.sh/chart": {{ include "hydra.chart" . | quote }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										18
									
								
								opencloud/charts/hydra/templates/configmap-automigrate.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								opencloud/charts/hydra/templates/configmap-automigrate.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{{- if and  ( .Values.hydra.automigration.enabled ) ( eq .Values.hydra.automigration.type "job" ) }}
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ConfigMap
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-migrate
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    helm.sh/hook-weight: "0"
 | 
			
		||||
    helm.sh/hook: "pre-install, pre-upgrade"
 | 
			
		||||
    helm.sh/hook-delete-policy: "before-hook-creation"
 | 
			
		||||
data:
 | 
			
		||||
  "hydra.yaml": |
 | 
			
		||||
    {{- include "hydra.configmap" . | nindent 4 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										12
									
								
								opencloud/charts/hydra/templates/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								opencloud/charts/hydra/templates/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ConfigMap
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
data:
 | 
			
		||||
  "hydra.yaml": |
 | 
			
		||||
    {{- include "hydra.configmap" . | nindent 4 }}
 | 
			
		||||
							
								
								
									
										77
									
								
								opencloud/charts/hydra/templates/deployment-watcher.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								opencloud/charts/hydra/templates/deployment-watcher.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
{{- if .Values.watcher.enabled }}
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-watcher
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: {{ include "hydra.name" . }}-watcher
 | 
			
		||||
    app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
    {{- with .Values.deployment.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.deployment.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  revisionHistoryLimit: {{ .Values.watcher.revisionHistoryLimit }}
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app.kubernetes.io/name: {{ include "hydra.name" . }}-watcher
 | 
			
		||||
      app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app.kubernetes.io/name: {{ include "hydra.name" . }}-watcher
 | 
			
		||||
        app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
        {{- with .Values.deployment.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with .Values.watcher.podMetadata.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      annotations:
 | 
			
		||||
        {{- with .Values.watcher.podMetadata.annotations }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
    spec:
 | 
			
		||||
      automountServiceAccountToken: {{ .Values.watcher.automountServiceAccountToken }}
 | 
			
		||||
      serviceAccountName: {{ include "hydra.serviceAccountName" . }}-watcher
 | 
			
		||||
      terminationGracePeriodSeconds: {{ .Values.deployment.terminationGracePeriodSeconds }}
 | 
			
		||||
      containers:
 | 
			
		||||
        - name: watcher
 | 
			
		||||
          {{- with .Values.watcher.securityContext }}
 | 
			
		||||
          securityContext:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          image: {{ .Values.watcher.image }}
 | 
			
		||||
          command:
 | 
			
		||||
            - /bin/bash
 | 
			
		||||
            - -c
 | 
			
		||||
            - |
 | 
			
		||||
              {{- .Files.Get "files/watch.sh" | printf "%s" | nindent 14 }}
 | 
			
		||||
          env:
 | 
			
		||||
            - name: NAMESPACE
 | 
			
		||||
              value: {{ .Release.Namespace | quote }}
 | 
			
		||||
            - name: WATCH_FILE
 | 
			
		||||
              value: {{ .Values.watcher.mountFile | quote }}
 | 
			
		||||
            - name: LABEL_SELECTOR
 | 
			
		||||
              value: '{{ $.Values.watcher.watchLabelKey }}={{ include "hydra.name" . }}'
 | 
			
		||||
          resources:
 | 
			
		||||
            {{- toYaml .Values.watcher.resources | nindent 12 }}
 | 
			
		||||
          volumeMounts:
 | 
			
		||||
          {{- with .Values.deployment.extraVolumeMounts }}
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
      {{- with .Values.watcher.podSecurityContext }}
 | 
			
		||||
      securityContext:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      volumes:
 | 
			
		||||
        {{- if .Values.deployment.extraVolumes }}
 | 
			
		||||
          {{- toYaml .Values.deployment.extraVolumes | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										236
									
								
								opencloud/charts/hydra/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								opencloud/charts/hydra/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,236 @@
 | 
			
		||||
{{- include "hydra.automigration.typeVerification" . -}}
 | 
			
		||||
{{- $migrationExtraEnv := ternary .Values.deployment.automigration.extraEnv .Values.deployment.extraEnv (not (empty .Values.deployment.automigration.extraEnv )) -}}
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.deployment.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.deployment.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
{{- if not .Values.deployment.autoscaling.enabled }}
 | 
			
		||||
  replicas: {{ .Values.replicaCount }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
  revisionHistoryLimit: {{ .Values.deployment.revisionHistoryLimit }}
 | 
			
		||||
  strategy:
 | 
			
		||||
    {{- toYaml .Values.deployment.strategy | nindent 4 }}
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app.kubernetes.io/name: {{ include "hydra.name" . }}
 | 
			
		||||
      app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        {{- include "hydra.labels" . | nindent 8 }}
 | 
			
		||||
        {{- with .Values.deployment.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with $.Values.deployment.podMetadata.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      annotations:
 | 
			
		||||
        {{- include "hydra.annotations.checksum" . | nindent 8 -}}
 | 
			
		||||
        {{- with .Values.deployment.annotations }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with $.Values.deployment.podMetadata.annotations }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
    spec:
 | 
			
		||||
    {{- with .Values.imagePullSecrets }}
 | 
			
		||||
      imagePullSecrets:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
      volumes:
 | 
			
		||||
        - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
          configMap:
 | 
			
		||||
            name: {{ include "hydra.fullname" . }}
 | 
			
		||||
        {{- if .Values.deployment.extraVolumes }}
 | 
			
		||||
          {{- toYaml .Values.deployment.extraVolumes | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      serviceAccountName: {{ include "hydra.serviceAccountName" . }}
 | 
			
		||||
      automountServiceAccountToken: {{ .Values.deployment.automountServiceAccountToken }}
 | 
			
		||||
      terminationGracePeriodSeconds: {{ .Values.deployment.terminationGracePeriodSeconds }}
 | 
			
		||||
      containers:
 | 
			
		||||
        - name: {{ .Chart.Name }}
 | 
			
		||||
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
 | 
			
		||||
          imagePullPolicy: {{ .Values.image.pullPolicy }}
 | 
			
		||||
          command: {{- toYaml .Values.hydra.command | nindent 12 }}
 | 
			
		||||
          {{- if .Values.hydra.customArgs }}
 | 
			
		||||
          args: {{- toYaml .Values.hydra.customArgs | nindent 12 }}
 | 
			
		||||
          {{- else }}
 | 
			
		||||
          args:
 | 
			
		||||
            - serve
 | 
			
		||||
            - all
 | 
			
		||||
            {{- if .Values.hydra.dev }}
 | 
			
		||||
            - "--dev"
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            - --config
 | 
			
		||||
            - /etc/config/hydra.yaml
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          volumeMounts:
 | 
			
		||||
            - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
              mountPath: /etc/config
 | 
			
		||||
              readOnly: true
 | 
			
		||||
            {{- if .Values.deployment.extraVolumeMounts }}
 | 
			
		||||
              {{- toYaml .Values.deployment.extraVolumeMounts | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          ports:
 | 
			
		||||
            - name: http-public
 | 
			
		||||
              containerPort: {{ .Values.hydra.config.serve.public.port }}
 | 
			
		||||
              protocol: TCP
 | 
			
		||||
            - name: http-admin
 | 
			
		||||
              containerPort: {{ .Values.hydra.config.serve.admin.port }}
 | 
			
		||||
              protocol: TCP
 | 
			
		||||
          {{- if .Values.deployment.customLivenessProbe }}
 | 
			
		||||
          livenessProbe:
 | 
			
		||||
            {{- toYaml .Values.deployment.customLivenessProbe | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          readinessProbe:
 | 
			
		||||
            {{- if .Values.deployment.customReadinessProbe }}
 | 
			
		||||
              {{- toYaml .Values.deployment.customReadinessProbe | nindent 12 }}
 | 
			
		||||
            {{- else }}
 | 
			
		||||
            httpGet:
 | 
			
		||||
              path: /health/alive
 | 
			
		||||
              port: {{ .Values.hydra.config.serve.admin.port }}
 | 
			
		||||
              httpHeaders:
 | 
			
		||||
                - name: Host
 | 
			
		||||
                  value: '127.0.0.1'
 | 
			
		||||
            {{- toYaml .Values.deployment.readinessProbe | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          startupProbe:
 | 
			
		||||
            {{- if .Values.deployment.customStartupProbe }} 
 | 
			
		||||
              {{- toYaml .Values.deployment.customStartupProbe | nindent 12 }}
 | 
			
		||||
            {{- else }}
 | 
			
		||||
            httpGet:
 | 
			
		||||
              path: /health/ready
 | 
			
		||||
              port: {{ .Values.hydra.config.serve.admin.port }}
 | 
			
		||||
              httpHeaders:
 | 
			
		||||
                - name: Host
 | 
			
		||||
                  value: '127.0.0.1'
 | 
			
		||||
            {{- toYaml .Values.deployment.startupProbe | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          env:
 | 
			
		||||
            {{- $issuer := include "hydra.config.urls.issuer" . -}}
 | 
			
		||||
            {{- if $issuer }}
 | 
			
		||||
            - name: URLS_SELF_ISSUER
 | 
			
		||||
              value: {{ $issuer | quote }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            {{- if not (empty ( include "hydra.dsn" . )) }}
 | 
			
		||||
              {{- if not (include "ory.extraEnvContainsEnvName" (list .Values.deployment.extraEnv "DSN")) }}
 | 
			
		||||
            - name: DSN
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                secretKeyRef:
 | 
			
		||||
                  name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                  key: dsn
 | 
			
		||||
              {{- end }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            - name: SECRETS_SYSTEM
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                secretKeyRef:
 | 
			
		||||
                  name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                  key: secretsSystem
 | 
			
		||||
            - name: SECRETS_COOKIE
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                secretKeyRef:
 | 
			
		||||
                  name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                  key: secretsCookie
 | 
			
		||||
            {{- if .Values.deployment.extraEnv }}
 | 
			
		||||
              {{- tpl (toYaml .Values.deployment.extraEnv) . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          resources:
 | 
			
		||||
            {{- toYaml .Values.deployment.resources | nindent 12 }}
 | 
			
		||||
          {{- if .Values.deployment.securityContext }}
 | 
			
		||||
          securityContext:
 | 
			
		||||
            {{- toYaml .Values.deployment.securityContext | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          lifecycle:
 | 
			
		||||
            {{- toYaml .Values.deployment.lifecycle | nindent 12 }}
 | 
			
		||||
        {{- if .Values.deployment.extraContainers }}
 | 
			
		||||
          {{- tpl .Values.deployment.extraContainers . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      initContainers:
 | 
			
		||||
      {{- if .Values.deployment.extraInitContainers }}
 | 
			
		||||
        {{- tpl .Values.deployment.extraInitContainers . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- if and ( .Values.hydra.automigration.enabled ) ( eq .Values.hydra.automigration.type "initContainer" ) }}
 | 
			
		||||
        - name: {{ .Chart.Name }}-automigrate
 | 
			
		||||
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
 | 
			
		||||
          imagePullPolicy: {{ .Values.image.pullPolicy }}
 | 
			
		||||
          {{- if .Values.hydra.automigration.customCommand }}
 | 
			
		||||
          command: {{- toYaml .Values.hydra.automigration.customCommand | nindent 12 }}
 | 
			
		||||
          {{- else }}
 | 
			
		||||
          command: ["hydra"]
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- if .Values.hydra.automigration.customArgs }}
 | 
			
		||||
          args: {{- toYaml .Values.hydra.automigration.customArgs | nindent 12 }}
 | 
			
		||||
          {{- else }}
 | 
			
		||||
          args: ["migrate", "sql", "-e", "--yes", "--config", "/etc/config/hydra.yaml"]
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          volumeMounts:
 | 
			
		||||
            - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
              mountPath: /etc/config
 | 
			
		||||
              readOnly: true
 | 
			
		||||
          {{- with .Values.deployment.extraVolumeMounts }}
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          env:
 | 
			
		||||
            {{- if not (empty ( include "hydra.dsn" . )) }}
 | 
			
		||||
              {{- if not (include "ory.extraEnvContainsEnvName" (list $migrationExtraEnv "DSN")) }}
 | 
			
		||||
            - name: DSN
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                secretKeyRef:
 | 
			
		||||
                  name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                  key: dsn
 | 
			
		||||
              {{- end }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            {{- if $migrationExtraEnv }}
 | 
			
		||||
              {{- tpl (toYaml $migrationExtraEnv) . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          {{- if .Values.hydra.automigration.resources }}
 | 
			
		||||
          resources:
 | 
			
		||||
            {{- toYaml .Values.hydra.automigration.resources | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- with .Values.deployment.initContainerSecurityContext }}
 | 
			
		||||
          securityContext:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- if .Values.priorityClassName }}
 | 
			
		||||
      priorityClassName: {{ .Values.priorityClassName }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.deployment.nodeSelector }}
 | 
			
		||||
      nodeSelector:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.deployment.tolerations }}
 | 
			
		||||
      tolerations:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.affinity }}
 | 
			
		||||
      affinity:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.deployment.topologySpreadConstraints }}
 | 
			
		||||
      topologySpreadConstraints:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.deployment.podSecurityContext }}
 | 
			
		||||
      securityContext:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.deployment.dnsConfig }}
 | 
			
		||||
      dnsConfig:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
							
								
								
									
										36
									
								
								opencloud/charts/hydra/templates/hpa.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								opencloud/charts/hydra/templates/hpa.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
{{- if .Values.deployment.autoscaling.enabled }}
 | 
			
		||||
apiVersion: autoscaling/v2
 | 
			
		||||
kind: HorizontalPodAutoscaler
 | 
			
		||||
metadata:
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
spec:
 | 
			
		||||
  {{- with .Values.deployment.autoscaling.behavior }}
 | 
			
		||||
  behavior: {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  scaleTargetRef:
 | 
			
		||||
    apiVersion: apps/v1
 | 
			
		||||
    kind: Deployment
 | 
			
		||||
    name: {{ include "hydra.fullname" . }}
 | 
			
		||||
  minReplicas: {{ .Values.deployment.autoscaling.minReplicas }}
 | 
			
		||||
  maxReplicas: {{ .Values.deployment.autoscaling.maxReplicas }}
 | 
			
		||||
  metrics:
 | 
			
		||||
  {{- with .Values.deployment.autoscaling.targetMemory }}
 | 
			
		||||
  - type: Resource
 | 
			
		||||
    resource:
 | 
			
		||||
      name: memory
 | 
			
		||||
      target:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- with .Values.deployment.autoscaling.targetCPU}}
 | 
			
		||||
  - type: Resource
 | 
			
		||||
    resource:
 | 
			
		||||
      name: cpu
 | 
			
		||||
      target:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										54
									
								
								opencloud/charts/hydra/templates/ingress-admin.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								opencloud/charts/hydra/templates/ingress-admin.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
{{- if .Values.ingress.admin.enabled -}}
 | 
			
		||||
{{- $fullName := include "hydra.fullname" . -}}
 | 
			
		||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
 | 
			
		||||
apiVersion: networking.k8s.io/v1
 | 
			
		||||
{{- else -}}
 | 
			
		||||
apiVersion: networking.k8s.io/v1beta1
 | 
			
		||||
{{- end }}
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ $fullName }}-admin
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  {{- with .Values.ingress.admin.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  ingressClassName: {{ .Values.ingress.admin.className }}
 | 
			
		||||
  {{- if .Values.ingress.admin.tls }}
 | 
			
		||||
  tls:
 | 
			
		||||
    {{- range .Values.ingress.admin.tls }}
 | 
			
		||||
    - hosts:
 | 
			
		||||
        {{- range .hosts }}
 | 
			
		||||
        - {{ . | quote }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      secretName: {{ .secretName }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  rules:
 | 
			
		||||
    {{- range .Values.ingress.admin.hosts }}
 | 
			
		||||
    - host: {{ .host | quote }}
 | 
			
		||||
      http:
 | 
			
		||||
        paths:
 | 
			
		||||
          {{- range .paths }}
 | 
			
		||||
          - path: {{ .path }}
 | 
			
		||||
            {{- if .pathType }}
 | 
			
		||||
            pathType: {{ .pathType }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            backend:
 | 
			
		||||
              {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
              service:
 | 
			
		||||
                name: {{ $fullName }}-admin
 | 
			
		||||
                port:
 | 
			
		||||
                  name: {{ $.Values.service.admin.name }}
 | 
			
		||||
              {{- else }}
 | 
			
		||||
              serviceName: {{ $fullName }}-admin
 | 
			
		||||
              servicePort: {{ $.Values.service.admin.name }}
 | 
			
		||||
              {{- end }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										54
									
								
								opencloud/charts/hydra/templates/ingress-public.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								opencloud/charts/hydra/templates/ingress-public.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
{{- if or .Values.ingress.public.enabled .Values.demo -}}
 | 
			
		||||
{{- $fullName := include "hydra.fullname" . -}}
 | 
			
		||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
 | 
			
		||||
apiVersion: networking.k8s.io/v1
 | 
			
		||||
{{- else -}}
 | 
			
		||||
apiVersion: networking.k8s.io/v1beta1
 | 
			
		||||
{{- end }}
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ $fullName }}-public
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  {{- with .Values.ingress.public.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  ingressClassName: {{ .Values.ingress.public.className }}
 | 
			
		||||
  {{- if .Values.ingress.public.tls }}
 | 
			
		||||
  tls:
 | 
			
		||||
    {{- range .Values.ingress.public.tls }}
 | 
			
		||||
    - hosts:
 | 
			
		||||
        {{- range .hosts }}
 | 
			
		||||
        - {{ . | quote }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      secretName: {{ .secretName }}
 | 
			
		||||
    {{- end }}  
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  rules:
 | 
			
		||||
    {{- range .Values.ingress.public.hosts }}
 | 
			
		||||
    - host: {{ .host | quote }}
 | 
			
		||||
      http:
 | 
			
		||||
        paths:
 | 
			
		||||
          {{- range .paths }}
 | 
			
		||||
          - path: {{ .path }}
 | 
			
		||||
            {{- if .pathType }}
 | 
			
		||||
            pathType: {{ .pathType }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            backend:
 | 
			
		||||
              {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
              service:
 | 
			
		||||
                name: {{ $fullName }}-public
 | 
			
		||||
                port:
 | 
			
		||||
                  name: {{ $.Values.service.public.name }}
 | 
			
		||||
              {{- else }}
 | 
			
		||||
              serviceName: {{ $fullName }}-public
 | 
			
		||||
              servicePort: {{ $.Values.service.public.name }}
 | 
			
		||||
              {{- end }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										17
									
								
								opencloud/charts/hydra/templates/janitor-cron-job-rbac.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								opencloud/charts/hydra/templates/janitor-cron-job-rbac.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{{- if .Values.cronjob.janitor.serviceAccount.create -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ServiceAccount
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.cronjob.janitor.serviceAccountName" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  {{- with .Values.cronjob.janitor.serviceAccount.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
automountServiceAccountToken: false
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										137
									
								
								opencloud/charts/hydra/templates/janitor-cron-job.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								opencloud/charts/hydra/templates/janitor-cron-job.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
{{- if .Values.janitor.enabled -}}
 | 
			
		||||
{{- $janitorExtraEnv := ternary .Values.cronjob.janitor.extraEnv .Values.deployment.extraEnv (not (empty .Values.cronjob.janitor.extraEnv )) -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: batch/v1
 | 
			
		||||
kind: CronJob
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-janitor
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.janitor.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.cronjob.janitor.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.cronjob.janitor.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  concurrencyPolicy: Forbid
 | 
			
		||||
  schedule: {{ .Values.cronjob.janitor.schedule | quote }}
 | 
			
		||||
  jobTemplate:
 | 
			
		||||
    spec:
 | 
			
		||||
      template:
 | 
			
		||||
        metadata:
 | 
			
		||||
          labels:
 | 
			
		||||
            {{- include "hydra.janitor.labels" . | nindent 12 }}
 | 
			
		||||
            {{- with .Values.cronjob.janitor.labels }}
 | 
			
		||||
              {{- toYaml . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            {{- with .Values.cronjob.janitor.podMetadata.labels }}
 | 
			
		||||
              {{- toYaml . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          annotations:
 | 
			
		||||
            {{- include "hydra.annotations.checksum" . | nindent 12 -}}
 | 
			
		||||
            {{- with .Values.cronjob.janitor.annotations }}
 | 
			
		||||
              {{- toYaml . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            {{- with $.Values.cronjob.janitor.podMetadata.annotations }}
 | 
			
		||||
              {{- toYaml . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
        spec:
 | 
			
		||||
          restartPolicy: OnFailure
 | 
			
		||||
          {{- with .Values.imagePullSecrets }}
 | 
			
		||||
          imagePullSecrets:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          serviceAccountName: {{ include "hydra.cronjob.janitor.serviceAccountName" . }}
 | 
			
		||||
          automountServiceAccountToken: {{ .Values.cronjob.janitor.automountServiceAccountToken }}
 | 
			
		||||
          volumes:
 | 
			
		||||
            - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
              configMap:
 | 
			
		||||
                name: {{ include "hydra.fullname" . }}
 | 
			
		||||
            {{- if .Values.cronjob.janitor.extraVolumes }}
 | 
			
		||||
              {{- toYaml .Values.cronjob.janitor.extraVolumes | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          containers:
 | 
			
		||||
            - name: janitor
 | 
			
		||||
              image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
 | 
			
		||||
              imagePullPolicy: {{ .Values.image.pullPolicy }}
 | 
			
		||||
              {{- with .Values.cronjob.janitor.securityContext }}
 | 
			
		||||
              securityContext:
 | 
			
		||||
                {{- toYaml . | nindent 16 }}
 | 
			
		||||
              {{- end }}
 | 
			
		||||
              {{- if .Values.cronjob.janitor.customCommand }}
 | 
			
		||||
              command: {{- toYaml .Values.cronjob.janitor.customCommand | nindent 14 }}
 | 
			
		||||
              {{- else }}
 | 
			
		||||
              command: ["hydra"]
 | 
			
		||||
              {{- end }}
 | 
			
		||||
              {{- if .Values.cronjob.janitor.customArgs }}
 | 
			
		||||
              args: {{- toYaml .Values.cronjob.janitor.customArgs | nindent 14 }}
 | 
			
		||||
              {{- else }}
 | 
			
		||||
              args:
 | 
			
		||||
                - janitor
 | 
			
		||||
                {{- if .Values.janitor.cleanupGrants }}
 | 
			
		||||
                - --grants
 | 
			
		||||
                {{- end }}
 | 
			
		||||
                {{- if .Values.janitor.cleanupRequests }}
 | 
			
		||||
                - --requests
 | 
			
		||||
                {{- end }}
 | 
			
		||||
                {{- if .Values.janitor.cleanupTokens }}
 | 
			
		||||
                - --tokens
 | 
			
		||||
                {{- end }}
 | 
			
		||||
                - --batch-size
 | 
			
		||||
                - {{ .Values.janitor.batchSize | quote }}
 | 
			
		||||
                - --limit
 | 
			
		||||
                - {{ .Values.janitor.limit | quote }}
 | 
			
		||||
                - --config
 | 
			
		||||
                - /etc/config/hydra.yaml
 | 
			
		||||
              {{- end }}
 | 
			
		||||
              env:
 | 
			
		||||
              {{- if not (empty ( include "hydra.dsn" . )) }}
 | 
			
		||||
                {{- if not (include "ory.extraEnvContainsEnvName" (list $janitorExtraEnv "DSN")) }}
 | 
			
		||||
                - name: DSN
 | 
			
		||||
                  valueFrom:
 | 
			
		||||
                    secretKeyRef:
 | 
			
		||||
                      name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                      key: dsn
 | 
			
		||||
                {{- end }}
 | 
			
		||||
              {{- end }}
 | 
			
		||||
                {{- with $janitorExtraEnv }}
 | 
			
		||||
                  {{- toYaml . | nindent 16 }}
 | 
			
		||||
                {{- end }}
 | 
			
		||||
              resources:
 | 
			
		||||
                {{- toYaml .Values.cronjob.janitor.resources | nindent 16 }}
 | 
			
		||||
              volumeMounts:
 | 
			
		||||
                - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
                  mountPath: /etc/config
 | 
			
		||||
                  readOnly: true
 | 
			
		||||
                {{- if .Values.cronjob.janitor.extraVolumeMounts }}
 | 
			
		||||
                  {{- toYaml .Values.cronjob.janitor.extraVolumeMounts | nindent 16 }}
 | 
			
		||||
                {{- end }}
 | 
			
		||||
            {{- if .Values.cronjob.janitor.extraContainers }}
 | 
			
		||||
              {{- tpl .Values.cronjob.janitor.extraContainers . | nindent 12 }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
          {{- if .Values.cronjob.janitor.extraInitContainers }}
 | 
			
		||||
          initContainers:
 | 
			
		||||
            {{- tpl .Values.cronjob.janitor.extraInitContainers . | nindent 10 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- with .Values.cronjob.janitor.nodeSelector }}
 | 
			
		||||
          nodeSelector:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- with .Values.cronjob.janitor.podSecurityContext }}
 | 
			
		||||
          securityContext:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- with .Values.cronjob.janitor.tolerations }}
 | 
			
		||||
          tolerations:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          {{- with .Values.cronjob.janitor.affinity }}
 | 
			
		||||
          affinity:
 | 
			
		||||
            {{- toYaml . | nindent 12 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										125
									
								
								opencloud/charts/hydra/templates/job-migration.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								opencloud/charts/hydra/templates/job-migration.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
{{- include "hydra.automigration.typeVerification" . -}}
 | 
			
		||||
{{- if and  ( .Values.hydra.automigration.enabled ) ( eq .Values.hydra.automigration.type "job" ) }}
 | 
			
		||||
{{- $nodeSelector := ternary .Values.job.nodeSelector .Values.deployment.nodeSelector (not (empty .Values.job.nodeSelector )) -}}
 | 
			
		||||
{{- $migrationExtraEnv := ternary .Values.job.extraEnv .Values.deployment.extraEnv (not (empty .Values.job.extraEnv )) -}}
 | 
			
		||||
{{- $resources := ternary .Values.job.resources .Values.hydra.automigration.resources (not (empty .Values.job.resources)) -}}
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
apiVersion: batch/v1
 | 
			
		||||
kind: Job
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-automigrate
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.job.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.job.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      annotations:
 | 
			
		||||
        {{- with .Values.job.annotations }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with .Values.job.podMetadata.annotations }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      labels:
 | 
			
		||||
        app.kubernetes.io/name: {{ include "hydra.fullname" . }}-automigrate
 | 
			
		||||
        app.kubernetes.io/instance: {{ .Release.Name }}        
 | 
			
		||||
        {{- with .Values.job.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with .Values.job.podMetadata.labels }}
 | 
			
		||||
          {{- toYaml . | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
    spec:
 | 
			
		||||
    {{- with .Values.imagePullSecrets }}
 | 
			
		||||
      imagePullSecrets:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
      serviceAccountName: {{ include "hydra.job.serviceAccountName" . }}
 | 
			
		||||
      automountServiceAccountToken: {{ .Values.job.automountServiceAccountToken }}
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: {{ .Chart.Name }}-automigrate
 | 
			
		||||
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
 | 
			
		||||
        imagePullPolicy: {{ .Values.image.pullPolicy }}
 | 
			
		||||
        {{- if .Values.hydra.automigration.customCommand }}
 | 
			
		||||
        command: {{- toYaml .Values.hydra.automigration.customCommand | nindent 10 }}
 | 
			
		||||
        {{- else }}
 | 
			
		||||
        command: ["hydra"]
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- if .Values.hydra.automigration.customArgs }}
 | 
			
		||||
        args: {{- toYaml .Values.hydra.automigration.customArgs | nindent 10 }}
 | 
			
		||||
        {{- else }}
 | 
			
		||||
        args: ["migrate", "sql", "-e", "--yes", "--config", "/etc/config/hydra.yaml"]
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        env:
 | 
			
		||||
        {{- if not (empty ( include "hydra.dsn" . )) }}
 | 
			
		||||
          {{- if not (include "ory.extraEnvContainsEnvName" (list $migrationExtraEnv "DSN")) }}
 | 
			
		||||
          - name: DSN
 | 
			
		||||
            valueFrom:
 | 
			
		||||
              secretKeyRef:
 | 
			
		||||
                name: {{ include "hydra.secretname" . }}
 | 
			
		||||
                key: dsn
 | 
			
		||||
          {{- end }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with $migrationExtraEnv }}
 | 
			
		||||
          {{- toYaml . | nindent 10 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        lifecycle:
 | 
			
		||||
          {{- if .Values.job.lifecycle }}
 | 
			
		||||
            {{- tpl .Values.job.lifecycle . | nindent 10 }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
        {{- with .Values.deployment.securityContext }}
 | 
			
		||||
        securityContext:
 | 
			
		||||
          {{- toYaml . | nindent 10 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- with $resources }}
 | 
			
		||||
        resources:
 | 
			
		||||
          {{- toYaml . | nindent 10 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
          - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
            mountPath: /etc/config
 | 
			
		||||
            readOnly: true
 | 
			
		||||
          {{- if .Values.deployment.extraVolumeMounts }}
 | 
			
		||||
            {{- toYaml .Values.deployment.extraVolumeMounts | nindent 10 }}
 | 
			
		||||
         {{- end }}
 | 
			
		||||
      {{- if .Values.job.extraContainers }}
 | 
			
		||||
        {{- tpl .Values.job.extraContainers . | nindent 6 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- if .Values.job.extraInitContainers }}
 | 
			
		||||
      initContainers:
 | 
			
		||||
        {{- tpl .Values.job.extraInitContainers . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      restartPolicy: Never
 | 
			
		||||
      {{- with .Values.deployment.podSecurityContext }}
 | 
			
		||||
      securityContext:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      shareProcessNamespace: {{ .Values.job.shareProcessNamespace }}
 | 
			
		||||
      volumes:
 | 
			
		||||
        - name: {{ include "hydra.name" . }}-config-volume
 | 
			
		||||
          configMap:
 | 
			
		||||
            name: {{ include "hydra.fullname" . }}-migrate
 | 
			
		||||
        {{- if .Values.deployment.extraVolumes }}
 | 
			
		||||
          {{- toYaml .Values.deployment.extraVolumes | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      {{- with $nodeSelector }}
 | 
			
		||||
      nodeSelector:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- with .Values.job.tolerations }}
 | 
			
		||||
      tolerations:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
  backoffLimit: {{ .Values.job.spec.backoffLimit }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										17
									
								
								opencloud/charts/hydra/templates/job-rbac.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								opencloud/charts/hydra/templates/job-rbac.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{{- if .Values.job.serviceAccount.create -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ServiceAccount
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.job.serviceAccountName" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  {{- with .Values.job.serviceAccount.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
automountServiceAccountToken: false
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										18
									
								
								opencloud/charts/hydra/templates/pdb.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								opencloud/charts/hydra/templates/pdb.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{{- if .Values.pdb.enabled -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: policy/v1
 | 
			
		||||
kind: PodDisruptionBudget
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app.kubernetes.io/name: {{ include "hydra.name" . }}
 | 
			
		||||
      app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
  {{- with .Values.pdb.spec.maxUnavailable }}
 | 
			
		||||
  maxUnavailable: {{ . }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- with .Values.pdb.spec.minAvailable }}
 | 
			
		||||
  minAvailable: {{ . }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										53
									
								
								opencloud/charts/hydra/templates/rbac-watcher.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								opencloud/charts/hydra/templates/rbac-watcher.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
{{- if .Values.watcher.enabled }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ServiceAccount
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.serviceAccountName" . }}-watcher
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: {{ include "hydra.name" . }}-watcher
 | 
			
		||||
    app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
automountServiceAccountToken: false
 | 
			
		||||
---
 | 
			
		||||
apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
kind: Role
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-watcher
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
rules:
 | 
			
		||||
  - apiGroups: ["apps"]
 | 
			
		||||
    resources: ["deployments"]
 | 
			
		||||
    verbs: 
 | 
			
		||||
      - list
 | 
			
		||||
      - watch
 | 
			
		||||
      - get
 | 
			
		||||
  - apiGroups: ["apps"]
 | 
			
		||||
    resources: ["deployments"]
 | 
			
		||||
    verbs:
 | 
			
		||||
      - get
 | 
			
		||||
      - list
 | 
			
		||||
      - patch
 | 
			
		||||
      - update
 | 
			
		||||
      - watch
 | 
			
		||||
    resourceNames:
 | 
			
		||||
      - {{ include "hydra.fullname" . }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
kind: RoleBinding
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-watcher
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
roleRef:
 | 
			
		||||
  apiGroup: rbac.authorization.k8s.io
 | 
			
		||||
  kind: Role
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-watcher
 | 
			
		||||
subjects:
 | 
			
		||||
  - kind: ServiceAccount
 | 
			
		||||
    name: {{ include "hydra.fullname" . }}-watcher
 | 
			
		||||
    namespace: {{ .Release.Namespace }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										17
									
								
								opencloud/charts/hydra/templates/rbac.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								opencloud/charts/hydra/templates/rbac.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{{- if .Values.deployment.serviceAccount.create -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ServiceAccount
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.serviceAccountName" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  {{- with .Values.deployment.serviceAccount.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
automountServiceAccountToken: false
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										21
									
								
								opencloud/charts/hydra/templates/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								opencloud/charts/hydra/templates/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
{{- if .Values.secret.enabled -}}
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Secret
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.secretname" . }}
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.secret.secretAnnotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
type: Opaque
 | 
			
		||||
data:
 | 
			
		||||
  # Generate a random secret if the user doesn't give one. User given password has priority
 | 
			
		||||
  secretsSystem: {{ ( include "hydra.secrets.system" . | default ( randAlphaNum 32 )) | required "Value secrets.system can not be empty!" | b64enc | quote }}
 | 
			
		||||
  secretsCookie: {{ ( include "hydra.secrets.cookie" . | default ( randAlphaNum 32 )) | required "Value secrets.cookie can not be empty!" | b64enc | quote }}
 | 
			
		||||
  dsn: {{ include "hydra.dsn" . | b64enc | quote }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										71
									
								
								opencloud/charts/hydra/templates/service-admin.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								opencloud/charts/hydra/templates/service-admin.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
{{- if .Values.service.admin.enabled -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-admin
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.service.admin.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
    app.kubernetes.io/component: admin
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.service.admin.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  type: {{ .Values.service.admin.type }}
 | 
			
		||||
  {{- if eq .Values.service.admin.type "LoadBalancer" }}
 | 
			
		||||
  {{- with .Values.service.admin.loadBalancerIP }}
 | 
			
		||||
  loadBalancerIP: {{ . }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  ports:
 | 
			
		||||
    - port: {{ .Values.service.admin.port }}
 | 
			
		||||
      targetPort: http-admin
 | 
			
		||||
      protocol: TCP
 | 
			
		||||
      name: {{ .Values.service.admin.name }}
 | 
			
		||||
  selector:
 | 
			
		||||
    app.kubernetes.io/name: {{ include "hydra.name" . }}
 | 
			
		||||
    app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
{{- if .Values.serviceMonitor.enabled }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: monitoring.coreos.com/v1
 | 
			
		||||
kind: ServiceMonitor
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-admin
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/component: admin
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
{{- with .Values.serviceMonitor.labels }}
 | 
			
		||||
  {{- toYaml . | nindent 4 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
  {{- with .Values.service.admin.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  endpoints:
 | 
			
		||||
  - path: {{ .Values.service.admin.metricsPath }}
 | 
			
		||||
    port: {{ .Values.service.admin.name }}
 | 
			
		||||
    scheme: {{ .Values.serviceMonitor.scheme }}
 | 
			
		||||
    interval: {{ .Values.serviceMonitor.scrapeInterval }}
 | 
			
		||||
    scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
 | 
			
		||||
    {{- with .Values.serviceMonitor.tlsConfig }}
 | 
			
		||||
    tlsConfig:
 | 
			
		||||
      {{- toYaml . | nindent 6 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app.kubernetes.io/name: {{ include "hydra.name" . }}
 | 
			
		||||
      app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
      app.kubernetes.io/component: admin
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										33
									
								
								opencloud/charts/hydra/templates/service-public.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								opencloud/charts/hydra/templates/service-public.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
{{- if .Values.service.public.enabled -}}
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "hydra.fullname" . }}-public
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.service.public.labels }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- with .Values.service.public.annotations }}
 | 
			
		||||
      {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  type: {{ .Values.service.public.type }}
 | 
			
		||||
  {{- if eq .Values.service.public.type "LoadBalancer" }}
 | 
			
		||||
  {{- with .Values.service.public.loadBalancerIP }}
 | 
			
		||||
  loadBalancerIP: {{ . }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  ports:
 | 
			
		||||
    - port: {{ .Values.service.public.port }}
 | 
			
		||||
      targetPort: http-public
 | 
			
		||||
      protocol: TCP
 | 
			
		||||
      name: {{ .Values.service.public.name }}
 | 
			
		||||
  selector:
 | 
			
		||||
    app.kubernetes.io/name: {{ include "hydra.name" . }}
 | 
			
		||||
    app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										20
									
								
								opencloud/charts/hydra/templates/tests/test-connection.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								opencloud/charts/hydra/templates/tests/test-connection.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Pod
 | 
			
		||||
metadata:
 | 
			
		||||
  name: "{{ include "hydra.fullname" . }}-test-connection"
 | 
			
		||||
  {{- if .Release.Namespace }}
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels: {{- include "hydra.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.test.labels }}
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    "helm.sh/hook": test-success
 | 
			
		||||
spec:
 | 
			
		||||
  containers:
 | 
			
		||||
    - name: healthcheck-ready
 | 
			
		||||
      image: "{{ .Values.test.busybox.repository }}:{{ .Values.test.busybox.tag }}"
 | 
			
		||||
      command: ['wget']
 | 
			
		||||
      args:  ['{{ include "hydra.fullname" . }}-admin:{{ .Values.service.admin.port }}/health/ready']
 | 
			
		||||
  restartPolicy: Never
 | 
			
		||||
		Reference in New Issue
	
	Block a user