Fixing ldap conf, initializing keto, oc-auth and co
This commit is contained in:
33
opencloud/charts/keto/templates/NOTES.txt
Normal file
33
opencloud/charts/keto/templates/NOTES.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if or .Values.ingress.read.enabled .Values.ingress.write.enabled -}}
|
||||
Read endpoint available at:
|
||||
{{- range $host := .Values.ingress.read.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.read.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Write endpoint available at:
|
||||
{{- range $host := .Values.ingress.write.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.write.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if or ( contains "NodePort" .Values.service.read.type ) ( contains "NodePort" .Values.service.write.type ) }}
|
||||
export NODE_PORT_READ=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "keto.fullname" . }}-read)
|
||||
export NODE_PORT_READ=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "keto.fullname" . }}-write)
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
Read endpoint available at: http://$NODE_IP:$NODE_PORT_READ
|
||||
Write endpoint available at: http://$NODE_IP:$NODE_PORT_WRITE
|
||||
{{- else if or ( contains "LoadBalancer" .Values.service.read.type ) ( contains "LoadBalancer" .Values.service.read.type ) }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "keto.fullname" . }}-read'
|
||||
export SERVICE_IP_READ=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "keto.fullname" . }}-read --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
export SERVICE_IP_WRITE=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "keto.fullname" . }}-write --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
Read endpoint available at: http://$SERVICE_IP_READ:{{ .Values.service.read.port }}
|
||||
Write endpoint available at: http://$SERVICE_IP_READ:{{ .Values.service.write.port }}
|
||||
{{- else if or ( contains "ClusterIP" .Values.service.read.type ) ( contains "ClusterIP" .Values.service.read.type ) }}
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ include "keto.fullname" . }}-read {{ .Values.keto.config.serve.read.port }}:80
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ include "keto.fullname" . }}-write {{ .Values.keto.config.serve.write.port }}:80
|
||||
Read endpoint available at: http://127.0.0.1:{{ .Values.keto.config.serve.read.port }}
|
||||
Write endpoint available at: http://127.0.0.1:{{ .Values.keto.config.serve.write.port }}
|
||||
{{- end }}
|
||||
130
opencloud/charts/keto/templates/_helpers.tpl
Normal file
130
opencloud/charts/keto/templates/_helpers.tpl
Normal file
@@ -0,0 +1,130 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "keto.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 "keto.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 a secret name which can be overridden.
|
||||
*/}}
|
||||
{{- define "keto.secretname" -}}
|
||||
{{- if .Values.secret.nameOverride -}}
|
||||
{{- .Values.secret.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{ include "keto.fullname" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "keto.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Generate the dsn value
|
||||
*/}}
|
||||
{{- define "keto.dsn" -}}
|
||||
{{- if and .Values.secret.nameOverride (not .Values.secret.enabled) -}}
|
||||
dsn-loaded-from-env
|
||||
{{- else if not (empty (.Values.keto.config.dsn)) -}}
|
||||
{{- .Values.keto.config.dsn }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Generate the configmap data, redacting secrets
|
||||
*/}}
|
||||
{{- define "keto.configmap" -}}
|
||||
{{- $config := omit .Values.keto.config "dsn" -}}
|
||||
{{- tpl (toYaml $config) . -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "keto.labels" -}}
|
||||
helm.sh/chart: {{ include "keto.chart" . }}
|
||||
{{ include "keto.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if $.Values.watcher.enabled }}
|
||||
{{ printf "\"%s\": \"%s\"" $.Values.watcher.watchLabelKey (include "keto.name" .) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "keto.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "keto.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "keto.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account for the Job to use
|
||||
*/}}
|
||||
{{- define "keto.job.serviceAccountName" -}}
|
||||
{{- if .Values.job.serviceAccount.create }}
|
||||
{{- printf "%s-job" (default (include "keto.fullname" .) .Values.job.serviceAccount.name) }}
|
||||
{{- else }}
|
||||
{{- include "keto.serviceAccountName" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Checksum annotations generated from configmaps and secrets
|
||||
*/}}
|
||||
{{- define "keto.annotations.checksum" -}}
|
||||
{{- if .Values.configmap.hashSumEnabled }}
|
||||
checksum/keto-config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if and .Values.secret.enabled .Values.secret.hashSumEnabled }}
|
||||
checksum/keto-secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Check the migration type value and fail if unexpected
|
||||
*/}}
|
||||
{{- define "keto.automigration.typeVerification" -}}
|
||||
{{- if and .Values.keto.automigration.enabled .Values.keto.automigration.type }}
|
||||
{{- if and (ne .Values.keto.automigration.type "initContainer") (ne .Values.keto.automigration.type "job") }}
|
||||
{{- fail "keto.automigration.type must be either 'initContainer' or 'job'" -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
18
opencloud/charts/keto/templates/configmap-migrate.yaml
Normal file
18
opencloud/charts/keto/templates/configmap-migrate.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
{{- if and ( .Values.keto.automigration.enabled ) ( eq .Values.keto.automigration.type "job" ) }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-migrate
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{ include "keto.labels" . | indent 4 }}
|
||||
annotations:
|
||||
helm.sh/hook-weight: "0"
|
||||
helm.sh/hook: "pre-install, pre-upgrade"
|
||||
helm.sh/hook-delete-policy: "before-hook-creation"
|
||||
data:
|
||||
"keto.yaml": |
|
||||
{{- include "keto.configmap" . | nindent 4 }}
|
||||
{{- end }}
|
||||
12
opencloud/charts/keto/templates/configmap.yaml
Normal file
12
opencloud/charts/keto/templates/configmap.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-config
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{ include "keto.labels" . | indent 4 }}
|
||||
data:
|
||||
"keto.yaml": |
|
||||
{{- include "keto.configmap" . | nindent 4 }}
|
||||
75
opencloud/charts/keto/templates/deployment-watcher.yaml
Normal file
75
opencloud/charts/keto/templates/deployment-watcher.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
{{- if .Values.watcher.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-watcher
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "keto.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 "keto.name" . }}-watcher
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "keto.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 "keto.serviceAccountName" . }}-watcher
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.deployment.terminationGracePeriodSeconds }}
|
||||
containers:
|
||||
- name: watcher
|
||||
{{- if .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | 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 "keto.name" . }}'
|
||||
resources:
|
||||
{{- toYaml .Values.watcher.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
{{- with .Values.deployment.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Values.deployment.extraVolumes }}
|
||||
{{- toYaml .Values.deployment.extraVolumes | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
232
opencloud/charts/keto/templates/deployment.yaml
Normal file
232
opencloud/charts/keto/templates/deployment.yaml
Normal file
@@ -0,0 +1,232 @@
|
||||
{{- $podAnnotations := ternary .Values.deployment.podAnnotations .Values.podAnnotations (not (empty .Values.deployment.podAnnotations )) -}}
|
||||
{{- $automountServiceAccountToken := ternary .Values.deployment.automountServiceAccountToken .Values.automountServiceAccountToken (not (empty .Values.deployment.automountServiceAccountToken )) -}}
|
||||
{{- $livenessProbe := ternary .Values.deployment.livenessProbe .Values.livenessProbe (not (empty .Values.deployment.livenessProbe )) -}}
|
||||
{{- $readinessProbe := ternary .Values.deployment.readinessProbe .Values.readinessProbe (not (empty .Values.deployment.readinessProbe )) -}}
|
||||
{{- $autoscaling := ternary .Values.deployment.autoscaling .Values.autoscaling (not (empty .Values.deployment.autoscaling )) -}}
|
||||
{{- $resources := ternary .Values.deployment.resources .Values.resources (not (empty .Values.deployment.resources )) -}}
|
||||
{{- $extraInitContainers := ternary .Values.deployment.extraInitContainers .Values.extraInitContainers (not (empty .Values.deployment.extraInitContainers )) -}}
|
||||
{{- $extraContainers := ternary .Values.deployment.extraContainers .Values.extraContainers (not (empty .Values.deployment.extraContainers )) -}}
|
||||
{{- $extraLabels := ternary .Values.deployment.extraLabels .Values.extraLabels (not (empty .Values.deployment.extraLabels )) -}}
|
||||
{{- $extraVolumeMounts := ternary .Values.deployment.extraVolumeMounts .Values.extraVolumeMounts (not (empty .Values.deployment.extraVolumeMounts )) -}}
|
||||
{{- $extraVolumes := ternary .Values.deployment.extraVolumes .Values.extraVolumes (not (empty .Values.deployment.extraVolumes )) -}}
|
||||
{{- $nodeSelector := ternary .Values.deployment.nodeSelector .Values.nodeSelector (not (empty .Values.deployment.nodeSelector )) -}}
|
||||
{{- $affinity := ternary .Values.deployment.affinity .Values.affinity (not (empty .Values.deployment.affinity )) -}}
|
||||
{{- $tolerations := ternary .Values.deployment.tolerations .Values.tolerations (not (empty .Values.deployment.tolerations )) -}}
|
||||
{{- $topologySpreadConstraints := ternary .Values.deployment.topologySpreadConstraints .Values.topologySpreadConstraints (not (empty .Values.deployment.topologySpreadConstraints )) -}}
|
||||
{{- include "keto.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 "keto.fullname" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with $extraLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- with .Values.deployment.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
minReadySeconds: {{ .Values.deployment.minReadySeconds }}
|
||||
{{- if not $autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.deployment.revisionHistoryLimit }}
|
||||
strategy:
|
||||
{{- toYaml .Values.deployment.strategy | nindent 4 }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "keto.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{- include "keto.annotations.checksum" . | indent 8 -}}
|
||||
{{- with $podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $.Values.deployment.podMetadata.annotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.selectorLabels" . | nindent 8 }}
|
||||
{{- with $extraLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $.Values.deployment.podMetadata.labels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- if $extraInitContainers}}
|
||||
{{- tpl $extraInitContainers . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if and ( .Values.keto.automigration.enabled ) ( eq .Values.keto.automigration.type "initContainer" ) }}
|
||||
- name: {{ .Chart.Name }}-automigrate
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- if .Values.keto.automigration.customCommand }}
|
||||
command: {{- toYaml .Values.keto.automigration.customCommand | nindent 12 }}
|
||||
{{- else }}
|
||||
command: ["keto"]
|
||||
{{- end }}
|
||||
{{- if .Values.keto.automigration.customArgs }}
|
||||
args: {{- toYaml .Values.keto.automigration.customArgs | nindent 12 }}
|
||||
{{- else }}
|
||||
args: [ "migrate", "up", "-y", "--config", "/etc/config/keto.yaml" ]
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: {{ include "keto.name" . }}-config-volume
|
||||
mountPath: /etc/config
|
||||
readOnly: true
|
||||
{{- with $extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if not (empty ( include "keto.dsn" . )) }}
|
||||
{{- if not (include "ory.extraEnvContainsEnvName" (list $migrationExtraEnv "DSN")) }}
|
||||
- name: DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "keto.secretname" . }}
|
||||
key: dsn
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $migrationExtraEnv }}
|
||||
{{- tpl (toYaml $migrationExtraEnv) . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.keto.automigration.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "keto.serviceAccountName" . }}
|
||||
automountServiceAccountToken: {{ $automountServiceAccountToken }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
terminationGracePeriodSeconds: {{ .Values.deployment.terminationGracePeriodSeconds }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- with .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
command: {{- toYaml .Values.keto.command | nindent 12 }}
|
||||
{{- if .Values.keto.customArgs }}
|
||||
args: {{- toYaml .Values.keto.customArgs | nindent 12 }}
|
||||
{{- else }}
|
||||
args:
|
||||
- serve
|
||||
- --config
|
||||
- /etc/config/keto.yaml
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: {{ .Values.service.read.name }}
|
||||
containerPort: {{ .Values.keto.config.serve.read.port }}
|
||||
protocol: TCP
|
||||
- name: {{ .Values.service.write.name }}
|
||||
containerPort: {{ .Values.keto.config.serve.write.port }}
|
||||
protocol: TCP
|
||||
- name: {{ .Values.service.metrics.name }}
|
||||
containerPort: {{ .Values.keto.config.serve.metrics.port }}
|
||||
protocol: TCP
|
||||
{{- with .Values.deployment.extraPorts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
lifecycle:
|
||||
{{- toYaml .Values.deployment.lifecycle | nindent 12 }}
|
||||
{{- 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.keto.config.serve.write.port }}
|
||||
httpHeaders:
|
||||
- name: Host
|
||||
value: '127.0.0.1'
|
||||
{{- toYaml $readinessProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
startupProbe:
|
||||
{{- if .Values.deployment.customStartupProbe }}
|
||||
{{- toYaml .Values.deployment.customStartupProbe | nindent 12 }}
|
||||
{{- else }}
|
||||
httpGet:
|
||||
path: /health/ready
|
||||
port: {{ .Values.keto.config.serve.write.port }}
|
||||
httpHeaders:
|
||||
- name: Host
|
||||
value: '127.0.0.1'
|
||||
{{- toYaml .Values.deployment.startupProbe | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml $resources | nindent 12 }}
|
||||
env:
|
||||
{{- if not (empty ( include "keto.dsn" . )) }}
|
||||
{{- if not (include "ory.extraEnvContainsEnvName" (list .Values.deployment.extraEnv "DSN")) }}
|
||||
- name: DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "keto.secretname" . }}
|
||||
key: dsn
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.deployment.extraEnv }}
|
||||
{{- tpl (toYaml .Values.deployment.extraEnv) . | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: {{ include "keto.name" . }}-config-volume
|
||||
mountPath: /etc/config
|
||||
readOnly: true
|
||||
{{- with $extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if $extraContainers }}
|
||||
{{- tpl $extraContainers . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: {{ include "keto.name" . }}-config-volume
|
||||
configMap:
|
||||
name: {{ include "keto.fullname" . }}-config
|
||||
{{- with $extraVolumes }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with $nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.deployment.dnsConfig }}
|
||||
dnsConfig:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
38
opencloud/charts/keto/templates/hpa.yaml
Normal file
38
opencloud/charts/keto/templates/hpa.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
{{- $autoscaling := ternary .Values.deployment.autoscaling .Values.autoscaling (not (empty .Values.deployment.autoscaling )) -}}
|
||||
|
||||
{{- if $autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- with $autoscaling.behavior }}
|
||||
behavior: {{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "keto.fullname" . }}
|
||||
minReplicas: {{ $autoscaling.minReplicas }}
|
||||
maxReplicas: {{ $autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- with $autoscaling.targetMemory }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $autoscaling.targetCPU}}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
54
opencloud/charts/keto/templates/ingress-read.yaml
Normal file
54
opencloud/charts/keto/templates/ingress-read.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
{{- if .Values.ingress.read.enabled -}}
|
||||
{{- $fullName := include "keto.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 }}-read
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.read.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
ingressClassName: {{ .Values.ingress.read.className }}
|
||||
{{- if .Values.ingress.read.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.read.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.read.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 }}-read
|
||||
port:
|
||||
name: {{ $.Values.service.read.name }}
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $.Values.service.read.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
54
opencloud/charts/keto/templates/ingress-write.yaml
Normal file
54
opencloud/charts/keto/templates/ingress-write.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
{{- if .Values.ingress.write.enabled -}}
|
||||
{{- $fullName := include "keto.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 }}-write
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.write.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
ingressClassName: {{ .Values.ingress.write.className }}
|
||||
{{- if .Values.ingress.write.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.write.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.write.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 }}-write
|
||||
port:
|
||||
name: {{ $.Values.service.write.name }}
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $.Values.service.write.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
123
opencloud/charts/keto/templates/job-migration.yaml
Normal file
123
opencloud/charts/keto/templates/job-migration.yaml
Normal file
@@ -0,0 +1,123 @@
|
||||
{{- include "keto.automigration.typeVerification" . -}}
|
||||
{{- if and ( .Values.keto.automigration.enabled ) ( eq .Values.keto.automigration.type "job" ) }}
|
||||
{{- $extraLabels := ternary .Values.deployment.extraLabels .Values.extraLabels (not (empty .Values.deployment.extraLabels )) -}}
|
||||
{{- $extraVolumeMounts := ternary .Values.deployment.extraVolumeMounts .Values.extraVolumeMounts (not (empty .Values.deployment.extraVolumeMounts )) -}}
|
||||
{{- $extraVolumes := ternary .Values.deployment.extraVolumes .Values.extraVolumes (not (empty .Values.deployment.extraVolumes )) -}}
|
||||
{{- $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 )) -}}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-automigrate
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with $extraLabels }}
|
||||
{{- 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 "keto.fullname" . }}-automigrate
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- with $extraLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.job.podMetadata.labels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "keto.job.serviceAccountName" . }}
|
||||
automountServiceAccountToken: {{ .Values.job.automountServiceAccountToken }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}-automigrate
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- if .Values.keto.automigration.customCommand }}
|
||||
command: {{- toYaml .Values.keto.automigration.customCommand | nindent 10 }}
|
||||
{{- else }}
|
||||
command: ["keto"]
|
||||
{{- end }}
|
||||
{{- if .Values.keto.automigration.customArgs }}
|
||||
args: {{- toYaml .Values.keto.automigration.customArgs | nindent 10 }}
|
||||
{{- else }}
|
||||
args: [ "migrate", "up", "-y", "--config", "/etc/config/keto.yaml" ]
|
||||
{{- end }}
|
||||
{{- if .Values.job.lifecycle }}
|
||||
{{- tpl .Values.job.lifecycle . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: {{ include "keto.name" . }}-config-volume
|
||||
mountPath: /etc/config
|
||||
readOnly: true
|
||||
{{- with $extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if not (empty ( include "keto.dsn" . )) }}
|
||||
{{- if not (include "ory.extraEnvContainsEnvName" (list $migrationExtraEnv "DSN")) }}
|
||||
- name: DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "keto.secretname" . }}
|
||||
key: dsn
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with $migrationExtraEnv }}
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.job.resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | 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
|
||||
volumes:
|
||||
- name: {{ include "keto.name" . }}-config-volume
|
||||
configMap:
|
||||
name: {{ include "keto.fullname" . }}-migrate
|
||||
{{- with $extraVolumes }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with $nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.job.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
shareProcessNamespace: {{ .Values.job.shareProcessNamespace }}
|
||||
backoffLimit: {{ .Values.job.spec.backoffLimit }}
|
||||
{{- end }}
|
||||
17
opencloud/charts/keto/templates/job-rbac.yaml
Normal file
17
opencloud/charts/keto/templates/job-rbac.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
{{- if .Values.job.serviceAccount.create -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "keto.job.serviceAccountName" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with .Values.job.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: false
|
||||
{{- end -}}
|
||||
20
opencloud/charts/keto/templates/pdb.yaml
Normal file
20
opencloud/charts/keto/templates/pdb.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
{{- if .Values.pdb.enabled -}}
|
||||
---
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "keto.selectorLabels" . | nindent 6 }}
|
||||
{{- with .Values.pdb.spec.maxUnavailable }}
|
||||
maxUnavailable: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.pdb.spec.minAvailable }}
|
||||
minAvailable: {{ . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
55
opencloud/charts/keto/templates/rbac-watcher.yaml
Normal file
55
opencloud/charts/keto/templates/rbac-watcher.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
{{- if .Values.watcher.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "keto.serviceAccountName" . }}-watcher
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}-watcher
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
automountServiceAccountToken: false
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-watcher
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments"]
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- get
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments"]
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
resourceNames:
|
||||
- {{ include "keto.fullname" . }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-watcher
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: {{ include "keto.fullname" . }}-watcher
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "keto.fullname" . }}-watcher
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
17
opencloud/charts/keto/templates/rbac.yaml
Normal file
17
opencloud/charts/keto/templates/rbac.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "keto.serviceAccountName" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: false
|
||||
{{- end }}
|
||||
18
opencloud/charts/keto/templates/secrets.yaml
Normal file
18
opencloud/charts/keto/templates/secrets.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
{{- if .Values.secret.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "keto.secretname" . }}
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{ include "keto.labels" . | indent 4 }}
|
||||
annotations:
|
||||
{{- with .Values.secret.secretAnnotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
dsn: {{ include "keto.dsn" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
32
opencloud/charts/keto/templates/service-extraServices.yaml
Normal file
32
opencloud/charts/keto/templates/service-extraServices.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
{{- range $ServiceName, $ServiceData := .Values.extraServices }}
|
||||
|
||||
{{- if $ServiceData.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" $ }}-{{ $ServiceName }}
|
||||
{{- if $.Release.Namespace }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/component: {{ $ServiceName }}
|
||||
{{- include "keto.labels" $ | nindent 4 }}
|
||||
spec:
|
||||
type: {{ $ServiceData.type }}
|
||||
{{- if eq $ServiceData.type "LoadBalancer" }}
|
||||
{{- with $ServiceData.loadBalancerIP }}
|
||||
loadBalancerIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ $ServiceData.port }}
|
||||
targetPort: {{ $ServiceData.name }}
|
||||
protocol: TCP
|
||||
name: {{ $ServiceData.name }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" $ }}
|
||||
app.kubernetes.io/instance: {{ $.Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
27
opencloud/charts/keto/templates/service-metrics.yaml
Normal file
27
opencloud/charts/keto/templates/service-metrics.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
{{- if .Values.service.metrics.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-metrics
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.metrics.type }}
|
||||
{{- if eq .Values.service.metrics.type "LoadBalancer" }}
|
||||
{{- with .Values.service.metrics.loadBalancerIP }}
|
||||
loadBalancerIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.service.metrics.port }}
|
||||
targetPort: {{ .Values.service.metrics.name }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.metrics.name }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{ end }}
|
||||
60
opencloud/charts/keto/templates/service-read.yaml
Normal file
60
opencloud/charts/keto/templates/service-read.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
{{- if .Values.service.read.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-read
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/component: read
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.read.type }}
|
||||
{{- if eq .Values.service.read.type "LoadBalancer" }}
|
||||
{{- with .Values.service.read.loadBalancerIP }}
|
||||
loadBalancerIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.service.read.type "ClusterIP" }}
|
||||
{{- with .Values.service.read.clusterIP }}
|
||||
clusterIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.service.read.port }}
|
||||
targetPort: {{ .Values.service.read.name }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.read.name }}
|
||||
appProtocol: {{ .Values.service.read.appProtocol }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Values.service.read.headless.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-read-headless
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
service.ory.sh/type: headless
|
||||
app.kubernetes.io/component: read
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: "ClusterIP"
|
||||
clusterIP: "None"
|
||||
ports:
|
||||
- port: {{ .Values.keto.config.serve.read.port }}
|
||||
targetPort: {{ .Values.service.read.name }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.read.name }}
|
||||
appProtocol: {{ .Values.service.read.appProtocol }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
59
opencloud/charts/keto/templates/service-write.yaml
Normal file
59
opencloud/charts/keto/templates/service-write.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
{{- if .Values.service.write.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-write
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/component: write
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.write.type }}
|
||||
{{- if eq .Values.service.write.type "LoadBalancer" }}
|
||||
{{- with .Values.service.write.loadBalancerIP }}
|
||||
loadBalancerIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.service.write.type "ClusterIP" }}
|
||||
{{- with .Values.service.write.clusterIP }}
|
||||
clusterIP: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.service.write.port }}
|
||||
targetPort: {{ .Values.service.write.name }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.write.name }}
|
||||
appProtocol: {{ .Values.service.write.appProtocol }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Values.service.write.headless.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-write-headless
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
service.ory.sh/type: headless
|
||||
app.kubernetes.io/component: write
|
||||
{{- include "keto.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: "ClusterIP"
|
||||
clusterIP: "None"
|
||||
ports:
|
||||
- port: {{ .Values.keto.config.serve.write.port }}
|
||||
targetPort: {{ .Values.service.write.name }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.write.name }}
|
||||
appProtocol: {{ .Values.service.write.appProtocol }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
36
opencloud/charts/keto/templates/servicemonitor-metrics.yaml
Normal file
36
opencloud/charts/keto/templates/servicemonitor-metrics.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") (.Values.service.metrics.enabled) }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "keto.fullname" . }}-metrics
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/component: metrics
|
||||
{{ include "keto.labels" . | indent 4 }}
|
||||
{{- with .Values.serviceMonitor.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.service.metrics.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
endpoints:
|
||||
- path: /metrics/prometheus
|
||||
port: {{ .Values.service.metrics.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 "keto.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- end -}}
|
||||
20
opencloud/charts/keto/templates/tests/test-connection.yaml
Normal file
20
opencloud/charts/keto/templates/tests/test-connection.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: "{{ include "keto.fullname" . }}-test-connection"
|
||||
{{- if .Release.Namespace }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels: {{- include "keto.labels" . | nindent 4 }}
|
||||
{{- with .Values.test.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
helm.sh/hook: test-success
|
||||
spec:
|
||||
containers:
|
||||
- name: wget
|
||||
image: "{{ .Values.test.busybox.repository }}:{{ .Values.test.busybox.tag }}"
|
||||
command: ['wget']
|
||||
args: ['{{ include "keto.fullname" . }}-write:{{ .Values.service.write.port }}/health/ready']
|
||||
restartPolicy: Never
|
||||
Reference in New Issue
Block a user