keycloak / keycloak-benchmark

Keycloak Benchmark
https://www.keycloak.org/keycloak-benchmark/
Apache License 2.0
124 stars 66 forks source link

Utilise CrossPlane to manage Keycloak deployment related cloud infrastructure #792

Open ryanemerson opened 2 months ago

ryanemerson commented 2 months ago

Description

Crossplane allows users to provision cloud infrastructure using K8s CRDs. We can greatly simplify our current Taskfiles by replacing the various AWS bash scripts with a Helm based solution that deploys Crossplane CRs.

As Crossplane requires a K8s cluster to exist, the provisioning of ROSA clusters will continue to be OpenTofu based.

Discussion

Pros

Cons

Alternatives

Terraform/OpenTofu could also be used for this purpose, however there are drawbacks to such an approach:

ryanemerson commented 2 months ago

A challenge with Crossplane is how to manage cloud state that is relied upon by a deployment that exists on multiple K8s clusters, e.g. Aurora clusters for Active/Passive deployments.

It seems like many people solve this problem by having a dedicated K8s cluster that acts as a control-plane for all other K8 clusters. This seems overkill for our needs.

An alternative solution is to deploy resources on Site A with Crossplane CRs and then utilise Observe Only Resources on Site B to allow retrieval of resource config and state.