keycloak: switch jobs to vault injector
This commit is contained in:
parent
92fbde08eb
commit
58c880d9ce
@ -20,6 +20,34 @@ spec:
|
|||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: keycloak
|
app: keycloak
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
affinity:
|
affinity:
|
||||||
@ -73,7 +101,7 @@ spec:
|
|||||||
command: ["/bin/sh", "-c"]
|
command: ["/bin/sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- >-
|
- >-
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
&& exec /opt/keycloak/bin/kc.sh start
|
&& exec /opt/keycloak/bin/kc.sh start
|
||||||
env:
|
env:
|
||||||
- name: KC_DB
|
- name: KC_DB
|
||||||
@ -132,25 +160,9 @@ spec:
|
|||||||
mountPath: /opt/keycloak/data
|
mountPath: /opt/keycloak/data
|
||||||
- name: providers
|
- name: providers
|
||||||
mountPath: /opt/keycloak/providers
|
mountPath: /opt/keycloak/providers
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: keycloak-data
|
claimName: keycloak-data
|
||||||
- name: providers
|
- name: providers
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,12 +2,23 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: harbor-oidc-secret-ensure-4
|
name: harbor-oidc-secret-ensure-5
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso-secrets"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-admin-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-admin-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: mas-secrets-ensure
|
serviceAccountName: mas-secrets-ensure
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
@ -16,16 +27,6 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: harbor-oidc-secret-ensure-script
|
name: harbor-oidc-secret-ensure-script
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
affinity:
|
affinity:
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
@ -44,9 +45,3 @@ spec:
|
|||||||
- name: harbor-oidc-secret-ensure-script
|
- name: harbor-oidc-secret-ensure-script
|
||||||
mountPath: /scripts
|
mountPath: /scripts
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
|
|||||||
@ -28,9 +28,6 @@ resources:
|
|||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: sso-vault-env
|
|
||||||
files:
|
|
||||||
- keycloak_vault_env.sh=scripts/keycloak_vault_env.sh
|
|
||||||
- name: portal-e2e-tests
|
- name: portal-e2e-tests
|
||||||
files:
|
files:
|
||||||
- test_portal_token_exchange.py=scripts/tests/test_portal_token_exchange.py
|
- test_portal_token_exchange.py=scripts/tests/test_portal_token_exchange.py
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-ldap-federation-6
|
name: keycloak-ldap-federation-7
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 2
|
backoffLimit: 2
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
affinity:
|
affinity:
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
@ -41,7 +70,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -348,20 +377,3 @@ spec:
|
|||||||
print(f"WARNING: LDAP cleanup failed (continuing): {e}")
|
print(f"WARNING: LDAP cleanup failed (continuing): {e}")
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,12 +2,23 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: logs-oidc-secret-ensure-3
|
name: logs-oidc-secret-ensure-4
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso-secrets"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-admin-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-admin-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: mas-secrets-ensure
|
serviceAccountName: mas-secrets-ensure
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
@ -18,7 +29,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-admin-env.sh
|
||||||
apk add --no-cache curl jq kubectl openssl >/dev/null
|
apk add --no-cache curl jq kubectl openssl >/dev/null
|
||||||
|
|
||||||
KC_URL="http://keycloak.sso.svc.cluster.local"
|
KC_URL="http://keycloak.sso.svc.cluster.local"
|
||||||
@ -110,20 +121,4 @@ spec:
|
|||||||
--from-literal=cookie_secret="${COOKIE_SECRET}" \
|
--from-literal=cookie_secret="${COOKIE_SECRET}" \
|
||||||
--dry-run=client -o yaml | kubectl -n logging apply -f - >/dev/null
|
--dry-run=client -o yaml | kubectl -n logging apply -f - >/dev/null
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -10,28 +10,30 @@ imagePullSecrets:
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: mas-secrets-ensure-15
|
name: mas-secrets-ensure-16
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/agent-init-first: "true"
|
||||||
|
vault.hashicorp.com/role: "sso-secrets"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-admin-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-admin-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: mas-secrets-ensure
|
serviceAccountName: mas-secrets-ensure
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
volumes:
|
volumes:
|
||||||
- name: work
|
- name: work
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: generate
|
- name: generate
|
||||||
image: alpine:3.20
|
image: alpine:3.20
|
||||||
@ -39,7 +41,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-admin-env.sh
|
||||||
umask 077
|
umask 077
|
||||||
apk add --no-cache curl openssl jq >/dev/null
|
apk add --no-cache curl openssl jq >/dev/null
|
||||||
|
|
||||||
@ -84,12 +86,6 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: work
|
- name: work
|
||||||
mountPath: /work
|
mountPath: /work
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
containers:
|
containers:
|
||||||
- name: apply
|
- name: apply
|
||||||
image: registry.bstein.dev/bstein/kubectl:1.35.0
|
image: registry.bstein.dev/bstein/kubectl:1.35.0
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-portal-e2e-client-3
|
name: keycloak-portal-e2e-client-4
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
@ -22,7 +51,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -228,20 +257,4 @@ spec:
|
|||||||
raise SystemExit(f"Role mapping update failed (status={status}) resp={resp}")
|
raise SystemExit(f"Role mapping update failed (status={status}) resp={resp}")
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-portal-e2e-execute-actions-email-6
|
name: keycloak-portal-e2e-execute-actions-email-7
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 3
|
backoffLimit: 3
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
@ -30,30 +59,14 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python /scripts/test_keycloak_execute_actions_email.py
|
python /scripts/test_keycloak_execute_actions_email.py
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: tests
|
- name: tests
|
||||||
mountPath: /scripts
|
mountPath: /scripts
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: tests
|
- name: tests
|
||||||
configMap:
|
configMap:
|
||||||
name: portal-e2e-tests
|
name: portal-e2e-tests
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-portal-e2e-target-2
|
name: keycloak-portal-e2e-target-3
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
@ -24,7 +53,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -129,20 +158,4 @@ spec:
|
|||||||
print(f"OK: ensured token exchange enabled on client {target_client_id}")
|
print(f"OK: ensured token exchange enabled on client {target_client_id}")
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-portal-e2e-token-exchange-permissions-6
|
name: keycloak-portal-e2e-token-exchange-permissions-7
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 6
|
backoffLimit: 6
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
@ -26,7 +55,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -262,20 +291,3 @@ spec:
|
|||||||
print("OK: configured token exchange permissions for portal E2E client")
|
print("OK: configured token exchange permissions for portal E2E client")
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,12 +2,41 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-portal-e2e-token-exchange-test-2
|
name: keycloak-portal-e2e-token-exchange-test-3
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 6
|
backoffLimit: 6
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
serviceAccountName: sso-vault
|
serviceAccountName: sso-vault
|
||||||
@ -31,30 +60,14 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python /scripts/test_portal_token_exchange.py
|
python /scripts/test_portal_token_exchange.py
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: tests
|
- name: tests
|
||||||
mountPath: /scripts
|
mountPath: /scripts
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: tests
|
- name: tests
|
||||||
configMap:
|
configMap:
|
||||||
name: portal-e2e-tests
|
name: portal-e2e-tests
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-realm-settings-18
|
name: keycloak-realm-settings-19
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
affinity:
|
affinity:
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
@ -44,7 +73,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -439,20 +468,3 @@ spec:
|
|||||||
)
|
)
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ set -euo pipefail
|
|||||||
|
|
||||||
apk add --no-cache curl jq kubectl >/dev/null
|
apk add --no-cache curl jq kubectl >/dev/null
|
||||||
|
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-admin-env.sh
|
||||||
|
|
||||||
KC_URL="http://keycloak.sso.svc.cluster.local"
|
KC_URL="http://keycloak.sso.svc.cluster.local"
|
||||||
ACCESS_TOKEN=""
|
ACCESS_TOKEN=""
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
vault_dir="/vault/secrets"
|
|
||||||
|
|
||||||
read_secret() {
|
|
||||||
cat "${vault_dir}/$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
admin_user="$(read_secret keycloak-admin__username)"
|
|
||||||
admin_password="$(read_secret keycloak-admin__password)"
|
|
||||||
|
|
||||||
export KEYCLOAK_ADMIN="${admin_user}"
|
|
||||||
export KEYCLOAK_ADMIN_USER="${admin_user}"
|
|
||||||
export KEYCLOAK_ADMIN_PASSWORD="${admin_password}"
|
|
||||||
|
|
||||||
export KC_DB_URL_DATABASE="$(read_secret keycloak-db__POSTGRES_DATABASE)"
|
|
||||||
export KC_DB_USERNAME="$(read_secret keycloak-db__POSTGRES_USER)"
|
|
||||||
export KC_DB_PASSWORD="$(read_secret keycloak-db__POSTGRES_PASSWORD)"
|
|
||||||
|
|
||||||
export PORTAL_E2E_CLIENT_ID="$(read_secret portal-e2e-client__client_id)"
|
|
||||||
export PORTAL_E2E_CLIENT_SECRET="$(read_secret portal-e2e-client__client_secret)"
|
|
||||||
|
|
||||||
export LDAP_ADMIN_PASSWORD="$(read_secret openldap-admin__LDAP_ADMIN_PASSWORD)"
|
|
||||||
export LDAP_CONFIG_PASSWORD="$(read_secret openldap-admin__LDAP_CONFIG_PASSWORD)"
|
|
||||||
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
|
||||||
|
|
||||||
export KEYCLOAK_SMTP_USER="$(read_secret postmark-relay__relay-username)"
|
|
||||||
export KEYCLOAK_SMTP_PASSWORD="$(read_secret postmark-relay__relay-password)"
|
|
||||||
@ -3,7 +3,7 @@ set -euo pipefail
|
|||||||
|
|
||||||
apk add --no-cache curl jq kubectl >/dev/null
|
apk add --no-cache curl jq kubectl >/dev/null
|
||||||
|
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-admin-env.sh
|
||||||
|
|
||||||
KC_URL="http://keycloak.sso.svc.cluster.local"
|
KC_URL="http://keycloak.sso.svc.cluster.local"
|
||||||
ACCESS_TOKEN=""
|
ACCESS_TOKEN=""
|
||||||
|
|||||||
@ -10,27 +10,6 @@ spec:
|
|||||||
vaultAddress: "http://vault.vault.svc.cluster.local:8200"
|
vaultAddress: "http://vault.vault.svc.cluster.local:8200"
|
||||||
roleName: "sso"
|
roleName: "sso"
|
||||||
objects: |
|
objects: |
|
||||||
- objectName: "keycloak-db__POSTGRES_DATABASE"
|
|
||||||
secretPath: "kv/data/atlas/sso/keycloak-db"
|
|
||||||
secretKey: "POSTGRES_DATABASE"
|
|
||||||
- objectName: "keycloak-db__POSTGRES_USER"
|
|
||||||
secretPath: "kv/data/atlas/sso/keycloak-db"
|
|
||||||
secretKey: "POSTGRES_USER"
|
|
||||||
- objectName: "keycloak-db__POSTGRES_PASSWORD"
|
|
||||||
secretPath: "kv/data/atlas/sso/keycloak-db"
|
|
||||||
secretKey: "POSTGRES_PASSWORD"
|
|
||||||
- objectName: "keycloak-admin__username"
|
|
||||||
secretPath: "kv/data/atlas/shared/keycloak-admin"
|
|
||||||
secretKey: "username"
|
|
||||||
- objectName: "keycloak-admin__password"
|
|
||||||
secretPath: "kv/data/atlas/shared/keycloak-admin"
|
|
||||||
secretKey: "password"
|
|
||||||
- objectName: "portal-e2e-client__client_id"
|
|
||||||
secretPath: "kv/data/atlas/shared/portal-e2e-client"
|
|
||||||
secretKey: "client_id"
|
|
||||||
- objectName: "portal-e2e-client__client_secret"
|
|
||||||
secretPath: "kv/data/atlas/shared/portal-e2e-client"
|
|
||||||
secretKey: "client_secret"
|
|
||||||
- objectName: "openldap-admin__LDAP_ADMIN_PASSWORD"
|
- objectName: "openldap-admin__LDAP_ADMIN_PASSWORD"
|
||||||
secretPath: "kv/data/atlas/sso/openldap-admin"
|
secretPath: "kv/data/atlas/sso/openldap-admin"
|
||||||
secretKey: "LDAP_ADMIN_PASSWORD"
|
secretKey: "LDAP_ADMIN_PASSWORD"
|
||||||
@ -46,12 +25,6 @@ spec:
|
|||||||
- objectName: "oauth2-proxy-oidc__cookie_secret"
|
- objectName: "oauth2-proxy-oidc__cookie_secret"
|
||||||
secretPath: "kv/data/atlas/sso/oauth2-proxy-oidc"
|
secretPath: "kv/data/atlas/sso/oauth2-proxy-oidc"
|
||||||
secretKey: "cookie_secret"
|
secretKey: "cookie_secret"
|
||||||
- objectName: "postmark-relay__relay-username"
|
|
||||||
secretPath: "kv/data/atlas/shared/postmark-relay"
|
|
||||||
secretKey: "relay-username"
|
|
||||||
- objectName: "postmark-relay__relay-password"
|
|
||||||
secretPath: "kv/data/atlas/shared/postmark-relay"
|
|
||||||
secretKey: "relay-password"
|
|
||||||
- objectName: "harbor-pull__dockerconfigjson"
|
- objectName: "harbor-pull__dockerconfigjson"
|
||||||
secretPath: "kv/data/atlas/harbor-pull/sso"
|
secretPath: "kv/data/atlas/harbor-pull/sso"
|
||||||
secretKey: "dockerconfigjson"
|
secretKey: "dockerconfigjson"
|
||||||
|
|||||||
@ -2,12 +2,23 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: synapse-oidc-secret-ensure-5
|
name: synapse-oidc-secret-ensure-6
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso-secrets"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-admin-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-admin-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: mas-secrets-ensure
|
serviceAccountName: mas-secrets-ensure
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
@ -18,7 +29,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-admin-env.sh
|
||||||
apk add --no-cache curl jq >/dev/null
|
apk add --no-cache curl jq >/dev/null
|
||||||
|
|
||||||
KC_URL="http://keycloak.sso.svc.cluster.local"
|
KC_URL="http://keycloak.sso.svc.cluster.local"
|
||||||
@ -70,20 +81,4 @@ spec:
|
|||||||
curl -sS -X POST -H "X-Vault-Token: ${vault_token}" \
|
curl -sS -X POST -H "X-Vault-Token: ${vault_token}" \
|
||||||
-d "${payload}" "${vault_addr}/v1/kv/data/atlas/comms/synapse-oidc" >/dev/null
|
-d "${payload}" "${vault_addr}/v1/kv/data/atlas/comms/synapse-oidc" >/dev/null
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,11 +2,40 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: keycloak-user-overrides-2
|
name: keycloak-user-overrides-3
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/keycloak-db" -}}
|
||||||
|
export KC_DB_URL_DATABASE="{{ .Data.data.POSTGRES_DATABASE }}"
|
||||||
|
export KC_DB_USERNAME="{{ .Data.data.POSTGRES_USER }}"
|
||||||
|
export KC_DB_PASSWORD="{{ .Data.data.POSTGRES_PASSWORD }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/portal-e2e-client" -}}
|
||||||
|
export PORTAL_E2E_CLIENT_ID="{{ .Data.data.client_id }}"
|
||||||
|
export PORTAL_E2E_CLIENT_SECRET="{{ .Data.data.client_secret }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/sso/openldap-admin" -}}
|
||||||
|
export LDAP_ADMIN_PASSWORD="{{ .Data.data.LDAP_ADMIN_PASSWORD }}"
|
||||||
|
export LDAP_CONFIG_PASSWORD="{{ .Data.data.LDAP_CONFIG_PASSWORD }}"
|
||||||
|
export LDAP_BIND_PASSWORD="${LDAP_ADMIN_PASSWORD}"
|
||||||
|
{{- end }}
|
||||||
|
{{- with secret "kv/data/atlas/shared/postmark-relay" -}}
|
||||||
|
export KEYCLOAK_SMTP_USER="{{ index .Data.data "relay-username" }}"
|
||||||
|
export KEYCLOAK_SMTP_PASSWORD="{{ index .Data.data "relay-password" }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
affinity:
|
affinity:
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
@ -36,7 +65,7 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
. /vault/scripts/keycloak_vault_env.sh
|
. /vault/secrets/keycloak-env.sh
|
||||||
python - <<'PY'
|
python - <<'PY'
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -136,20 +165,3 @@ spec:
|
|||||||
raise SystemExit(f"Unexpected user update response: {status}")
|
raise SystemExit(f"Unexpected user update response: {status}")
|
||||||
PY
|
PY
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
|
|||||||
@ -2,12 +2,23 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: vault-oidc-secret-ensure-2
|
name: vault-oidc-secret-ensure-3
|
||||||
namespace: sso
|
namespace: sso
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
ttlSecondsAfterFinished: 3600
|
ttlSecondsAfterFinished: 3600
|
||||||
template:
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
|
vault.hashicorp.com/role: "sso-secrets"
|
||||||
|
vault.hashicorp.com/agent-inject-secret-keycloak-admin-env.sh: "kv/data/atlas/shared/keycloak-admin"
|
||||||
|
vault.hashicorp.com/agent-inject-template-keycloak-admin-env.sh: |
|
||||||
|
{{- with secret "kv/data/atlas/shared/keycloak-admin" -}}
|
||||||
|
export KEYCLOAK_ADMIN="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_USER="{{ .Data.data.username }}"
|
||||||
|
export KEYCLOAK_ADMIN_PASSWORD="{{ .Data.data.password }}"
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: mas-secrets-ensure
|
serviceAccountName: mas-secrets-ensure
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
@ -16,16 +27,6 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: vault-oidc-secret-ensure-script
|
name: vault-oidc-secret-ensure-script
|
||||||
defaultMode: 0555
|
defaultMode: 0555
|
||||||
- name: vault-secrets
|
|
||||||
csi:
|
|
||||||
driver: secrets-store.csi.k8s.io
|
|
||||||
readOnly: true
|
|
||||||
volumeAttributes:
|
|
||||||
secretProviderClass: sso-vault
|
|
||||||
- name: vault-scripts
|
|
||||||
configMap:
|
|
||||||
name: sso-vault-env
|
|
||||||
defaultMode: 0555
|
|
||||||
affinity:
|
affinity:
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
@ -44,9 +45,3 @@ spec:
|
|||||||
- name: vault-oidc-secret-ensure-script
|
- name: vault-oidc-secret-ensure-script
|
||||||
mountPath: /scripts
|
mountPath: /scripts
|
||||||
readOnly: true
|
readOnly: true
|
||||||
- name: vault-secrets
|
|
||||||
mountPath: /vault/secrets
|
|
||||||
readOnly: true
|
|
||||||
- name: vault-scripts
|
|
||||||
mountPath: /vault/scripts
|
|
||||||
readOnly: true
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user