From 76ab7a71a2a294e03b323e1229429432994b3aed Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Tue, 23 Jul 2024 00:15:12 +0200 Subject: [PATCH] feat: add crossplane.io Planning to use Crossplane to declaratively create OIDC-clients for Keycloak --- k8s/infra/auth/keycloak/kustomization.yaml | 2 +- .../controllers/crossplane/kustomization.yaml | 15 +++++++++++++++ k8s/infra/controllers/crossplane/ns.yaml | 4 ++++ .../providers/keycloak/default-config.yaml | 11 +++++++++++ .../providers/keycloak/keycloak-credentials.yaml | 15 +++++++++++++++ .../providers/keycloak/kustomization.yaml | 7 +++++++ .../crossplane/providers/keycloak/provider.yaml | 6 ++++++ 7 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 k8s/infra/controllers/crossplane/kustomization.yaml create mode 100644 k8s/infra/controllers/crossplane/ns.yaml create mode 100644 k8s/infra/controllers/crossplane/providers/keycloak/default-config.yaml create mode 100644 k8s/infra/controllers/crossplane/providers/keycloak/keycloak-credentials.yaml create mode 100644 k8s/infra/controllers/crossplane/providers/keycloak/kustomization.yaml create mode 100644 k8s/infra/controllers/crossplane/providers/keycloak/provider.yaml diff --git a/k8s/infra/auth/keycloak/kustomization.yaml b/k8s/infra/auth/keycloak/kustomization.yaml index 5686e06..2dd2592 100644 --- a/k8s/infra/auth/keycloak/kustomization.yaml +++ b/k8s/infra/auth/keycloak/kustomization.yaml @@ -11,7 +11,7 @@ resources: helmCharts: - name: keycloak repo: oci://registry-1.docker.io/bitnamicharts - version: 21.5.0 releaseName: keycloak namespace: keycloak + version: 21.5.0 valuesFile: values.yaml diff --git a/k8s/infra/controllers/crossplane/kustomization.yaml b/k8s/infra/controllers/crossplane/kustomization.yaml new file mode 100644 index 0000000..34d94b7 --- /dev/null +++ b/k8s/infra/controllers/crossplane/kustomization.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ns.yaml + - providers/keycloak +# - https://doc.crds.dev/raw/github.com/crossplane/crossplane@v1.16.0 # renovate: helm=crossplane registry=https://charts.crossplane.io/stable +# - https://doc.crds.dev/raw/github.com/crossplane-contrib/provider-keycloak@v1.1.0 # renovate: github-releases=crossplane-contrib/provider-keycloak + +helmCharts: + - name: crossplane + repo: https://charts.crossplane.io/stable + releaseName: crossplane + namespace: crossplane + version: 1.16.0 diff --git a/k8s/infra/controllers/crossplane/ns.yaml b/k8s/infra/controllers/crossplane/ns.yaml new file mode 100644 index 0000000..9f55d26 --- /dev/null +++ b/k8s/infra/controllers/crossplane/ns.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: crossplane diff --git a/k8s/infra/controllers/crossplane/providers/keycloak/default-config.yaml b/k8s/infra/controllers/crossplane/providers/keycloak/default-config.yaml new file mode 100644 index 0000000..f2b3e20 --- /dev/null +++ b/k8s/infra/controllers/crossplane/providers/keycloak/default-config.yaml @@ -0,0 +1,11 @@ +apiVersion: keycloak.crossplane.io/v1beta1 +kind: ProviderConfig +metadata: + name: default +spec: + credentials: + source: Secret + secretRef: + name: keycloak-credentials + namespace: crossplane + key: credentials diff --git a/k8s/infra/controllers/crossplane/providers/keycloak/keycloak-credentials.yaml b/k8s/infra/controllers/crossplane/providers/keycloak/keycloak-credentials.yaml new file mode 100644 index 0000000..98b7c28 --- /dev/null +++ b/k8s/infra/controllers/crossplane/providers/keycloak/keycloak-credentials.yaml @@ -0,0 +1,15 @@ +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: keycloak-credentials + namespace: crossplane +spec: + encryptedData: + credentials: AgC1UwnOntsUCENt8DDyhkJ4mAYNbprWN1ebddr/A9CpLoZGhAArw3GqehUKmknAIog4nCzMb3VeJKmR3RC3OXoOjKmCWeiifrBrXArvtbApPkK3juSwNiJJ0KCDp23e/bXujYuvWIY83CadY01HTIfKcT9pLB/LFRwFHmcoDhdw7Yc1QPgx11gxtBPJyYe6MDRDlLso45rzfuO9HxWao/bh44OK5IND3W2zcIrDBYaPChN77fEiJN0XjZL4u6fnJwH72D1eHiNycAzanxKLQNaEl/Y/2fjQPkvEqpG08IkKtANFBGyC72bNnRwIxX3tIBV6dXnVoWYV5MEn5qhPPiEuqPVjlTYCfaQK5ZZAc6dKTpdGzA+s9MYbjLbdFtUa0VbYvdVKfrxjiJYWk/8kgktcR/hdo/mntGoKwdDTNHycXJduPKtzx02yj1hAXQ/1kyWhuX5YsEZ0xdzE2aO1TvxJ7wIeQ7ozHq2h6W0F0N9w/lpLfWn654321Ca3KxWN3HGqqzIM3yAsMfX0RsmafepNEDyGPHlCkpNHvouBm3QFBNXiMprJeqcwDuM0SnrrHQdTNGBpmN0V9TxQO06tgva31aA/2vkFJJ+tq90J6yBMNRSsiySJD7MvQ6yt0s5O8es765fxszG+tR5sJTHgbWrMPlVdLIz5JR+LS+L+g7ek6AlqpU7WgMuylb+XAvDfJQH3rjtyNArKR+qaAxpIcSMZUlAUHvhdnn/nmudDg+3UBZQmfkriVrA+tCeeH84reHOPFO5aJBM/+if/qgibGHCXqf/JS/vJZX168XZcDBVkhd9ue7iH0j7on0lji8ch0HTqP6FQgZ9Mm2zZVL035jtZWN77UCwD0Pn2q4C+dq6mgh79KQABMuPwI5GiOeattecFY9SRAD+n4cqNnbAtVECP + template: + metadata: + labels: + type: provider-credentials + name: keycloak-credentials + namespace: crossplane + type: Opaque diff --git a/k8s/infra/controllers/crossplane/providers/keycloak/kustomization.yaml b/k8s/infra/controllers/crossplane/providers/keycloak/kustomization.yaml new file mode 100644 index 0000000..324ae5f --- /dev/null +++ b/k8s/infra/controllers/crossplane/providers/keycloak/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - provider.yaml + - keycloak-credentials.yaml + - default-config.yaml diff --git a/k8s/infra/controllers/crossplane/providers/keycloak/provider.yaml b/k8s/infra/controllers/crossplane/providers/keycloak/provider.yaml new file mode 100644 index 0000000..84e759a --- /dev/null +++ b/k8s/infra/controllers/crossplane/providers/keycloak/provider.yaml @@ -0,0 +1,6 @@ +apiVersion: pkg.crossplane.io/v1 +kind: Provider +metadata: + name: keycloak +spec: + package: xpkg.upbound.io/crossplane-contrib/provider-keycloak:v1.0.0