titan-iac/services/keycloak/oneoffs/vault-oidc-secret-ensure-job.yaml

54 lines
2.1 KiB
YAML
Raw Normal View History

2026-01-28 01:48:32 -03:00
# services/keycloak/oneoffs/vault-oidc-secret-ensure-job.yaml
# One-off job for sso/vault-oidc-secret-ensure-8.
# Purpose: vault oidc secret ensure 8 (see container args/env in this file).
# Run by setting spec.suspend to false, reconcile, then set it back to true.
# Safe to delete the finished Job/pod; it should not run continuously.
2026-01-14 02:24:32 -03:00
apiVersion: batch/v1
kind: Job
metadata:
2026-01-17 01:41:39 -03:00
name: vault-oidc-secret-ensure-8
2026-01-14 02:24:32 -03:00
namespace: sso
spec:
2026-01-28 01:48:32 -03:00
suspend: true
2026-01-14 02:24:32 -03:00
backoffLimit: 0
ttlSecondsAfterFinished: 3600
template:
metadata:
annotations:
vault.hashicorp.com/agent-inject: "true"
2026-01-14 14:29:29 -03:00
vault.hashicorp.com/agent-pre-populate-only: "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 }}
2026-01-14 02:24:32 -03:00
spec:
serviceAccountName: mas-secrets-ensure
restartPolicy: Never
volumes:
- name: vault-oidc-secret-ensure-script
configMap:
name: vault-oidc-secret-ensure-script
defaultMode: 0555
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values: ["arm64"]
- key: node-role.kubernetes.io/worker
operator: Exists
containers:
- name: apply
image: bitnami/kubectl@sha256:554ab88b1858e8424c55de37ad417b16f2a0e65d1607aa0f3fe3ce9b9f10b131
2026-01-14 02:24:32 -03:00
command: ["/scripts/vault_oidc_secret_ensure.sh"]
volumeMounts:
- name: vault-oidc-secret-ensure-script
mountPath: /scripts
readOnly: true