feat: configure keycloak using crossplane provider

This commit is contained in:
Vegard Hagen
2024-11-17 17:03:26 +01:00
parent 76ab7a71a2
commit 4cb40d3282
11 changed files with 67 additions and 6 deletions
@@ -0,0 +1,20 @@
apiVersion: openidclient.keycloak.crossplane.io/v1alpha1
kind: Client
metadata:
name: cloudflare
spec:
deletionPolicy: Delete
forProvider:
name: Cloudflare
accessType: CONFIDENTIAL
clientId: cloudflare
realmIdRef:
name: homelab
clientSecretSecretRef:
name: cloudflare-oidc-credentials
namespace: keycloak
key: secret
standardFlowEnabled: true
baseUrl: "https://stonegarden.cloudflareaccess.com"
validRedirectUris:
- "https://stonegarden.cloudflareaccess.com/cdn-cgi/access/callback"
@@ -0,0 +1,14 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: cloudflare-oidc-credentials
namespace: keycloak
spec:
encryptedData:
key: AgB1jFD1jq7ri58egGkilGnaULqMvx3V6nsOoJNrn10OshfyouMHKVaC+6LywQATe88/5AIW37PMwh1XfLFjXH4EFoqA/93S44gxHtLoJ08Im59MnGJStn3gr9ClxNmukOUVE25vUkcKqDvlUa7UqHwoeppr/QN2byuwXB/cRhoZnG/KJuI5358SBjl1QseXqm5R5Gk7g36pXUhlDnsVicN7uYwxOE0BlYHtdlihWyecBWOIxKkLXIeSALmKcxDpE5v08wmN1MARSV58YfZiTEFWFWmpnPvxWZS3fHhHpppZjD6uRrKnXQlNH1KjN5Ccs29LB/tBVD9qt4fvvISKzWCXRkb2BCgAZo2MyhScemIq3MkTG7lMD2hEW9TAviOqZKmLg1OILKTKG5bq84ygB5vsseVNtj+jfUCyzaHyCH2bANfTDZA0HyhQl1WFhpXOX8k3kBhhCKOnpYa2XYDEHMtnVXgqsIf1lMOrG9+PADjrVTLu0Zh+gxpRNvs8aIfrrLxOzoMi6jOzuj2NoydRNLkfn8cAGsoO4MQREZdytCLbU+dXcXSr+ZKJOpStR8fwmNZzoK92sU7ya+a3NceYjrIOwpG2EyWrdUDNmX5RcUPBnaenmPfFgm3ry6EivrILRG5VV8kn8uyOXHL3qNmzHe24Y8mm92UCPWAFSxYqhru/EXMGEMriHepJlaahdTLLI/uEcSwNRvleWFoS
secret: AgCLgiXGxb1QP79KDOJanMq/wt+yTU4kDfEqc1D0zwJZCJD0kSzplKiUPuWjazRfa8abkh02Hv9HnpxblF2GE9jSq/bLCdszp2QhJFoWJlCpyBikTnwZWeXJVPu7ho40R6MuRsQC4hf1uysQgrnQItY730npI1dfxl7VLbkZX0QNPagHTUT01LsQ9u1i1mmfh0S0SLIQw8BAiQfZR8FSDkEuxjmIWVvtgs1Ok3sC6IbSocVnzQ6DlCntkJVef2W6/S9F+GqOrEgNdIWZI/rPClFUPXdhWd+JsuEGiw51xgF6PApcxo2QTOQngXAITnsYR1pYWR/VaQ9wcx6jUYzkknzlU1sVZgcU9TxKofIXNPAP5uabPD3NX6ZmmXEpNa8DwO2h0LnXOOHEKmNhb+zAT5o8T4Bf9GmsGCP19+xc2+ebTV/bIvV9PDwEJjyBZ9sSXirXcfu04ToyKdLsDW28QTwHRD48fA10aWqxRbeKEFIQ9tfAWEdBZ2dhLnwhUMvyEVKiCGAi0AeLNRlZFN/IMEq+WoZu4iugSgm1GRjQnTYROdxJWBC/gL2OVMWpGFhr9We0ZeuH79OtMQrvOdfopqk7d7sCWAhiSk3iCbupnyOpkQKRSvYxD5mwD0DteFc1gABBdSdK03qcG+d4MsiC98F9OFZguaOtEHlIFHa4wSIOWdGPAQK4GhuVTkHm9oAp4PXQSKwqFOi4PLoL37A8gGSWAr/Z3aYuRrcwDi8U+42HHz8rEmpc8y8c
template:
metadata:
name: cloudflare-oidc-credentials
namespace: keycloak
type: Opaque
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- realms.yaml
- users.yaml
- client-cloudflare.yaml
- cloudflare-oidc-credentials.yaml
@@ -0,0 +1,7 @@
apiVersion: realm.keycloak.crossplane.io/v1alpha1
kind: Realm
metadata:
name: homelab
spec:
forProvider:
realm: homelab
+13
View File
@@ -0,0 +1,13 @@
apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: User
metadata:
name: veh
spec:
forProvider:
enabled: true
email: [email protected]
firstName: Vegard
lastName: Hagen
username: veh
realmIdRef:
name: homelab
@@ -7,6 +7,7 @@ resources:
- secret-keycloak-admin.yaml
- secret-keycloak-db-credentials.yaml
- http-route.yaml
- config
helmCharts:
- name: keycloak
@@ -5,7 +5,7 @@ metadata:
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
credentials: AgC01M3DaKy//JFVDlXhXfN24aL8vMlwtvSqBK61MIiDEqzEfWmjQq1h2dUF4+dmY5nel6165m8AEUWPhsslyUA8BMkD2XyP9rEJlsLdfcpFDUwHe0fSJDXlSho7MEllK08VVVwjk2rZnOil9LBTOGT7FFuXCuaiR5CWKjby/SLHoxynlCQqEHYMTQtT5iwwjkbrBa3LPh+VM8z2VrQzF5yx8fmundnNVxcMhV6V9fKiWj+8+gZsZtifNEcSp2MpVUQyTo1q5YExz1hGyA2LAWBqzhyoGJ+L4iqn+H2C7ZvPX+j040ZMo+d0LmiQwbrscAb/HJXv1zZFOlC0+HQecn8aLOPga+ITsAXdnNOXQ/3CjuyngwJXi6xn8aThpCNF12ut0OxvGtrPYSTs1F909c1jsHbFcpMlncxK28OMYfcO3Vhx/K+ZynCo50XhyGv52fueEvynTMv9eFQngQeX64UqXHC8P7NclbeFKswH6MMWPME9+RZLU4hHy/LuxhI5EH+9w/ucDDLpkiBTZgSfOcmGJI8h2cQERKF4Y09Br1jT/ZIYF6DSCFsmKAeFnkgBTtVsi2yr/wXeftOHUYv/WDjfPMtKQcUAdtZgZ8sdXk9wCwHcv+uTbQr6BFRX9R2oemOIiSfBXJZW79k5HAghlva2KocVCOsvydeBrWKihNf9grqO2jvEmQwjU/yb9vFXvLhdEZZkk0v3dFhE01qZOp4kqo2Z7PS5axJFGLA6NKegiWzjVlDA1E5ODBYNi9b5PHc/Jff058YU3bhQECKqm5T37+4zesfwdZ+/T/r5DU4qlS3P8hE4JAr2SORQ7ExYYCWBXUCTXOsPQobkIvvWuRrPTU3wEwgzGMuVEqn0S5Sp/fVG3M6PBIenwTvhKCOJZckpt6gwI3FyUbrr6uLvIbs=
template:
metadata:
labels:
@@ -1,6 +1,6 @@
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: keycloak
name: provider-keycloak
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-keycloak:v1.0.0
+2
View File
@@ -11,6 +11,8 @@ spec:
server: '*'
- namespace: 'cert-manager'
server: '*'
- namespace: 'crossplane'
server: '*'
- namespace: 'node-feature-discovery'
server: '*'
- namespace: 'intel-device-plugins'
-2
View File
@@ -3,8 +3,6 @@ kind: Application
metadata:
name: applications
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: app-of-apps
source:
-2
View File
@@ -3,8 +3,6 @@ kind: Application
metadata:
name: infrastructure
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: app-of-apps
source: