keycloak / keycloak-benchmark

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

Use Hosted Control Planes for ROSA to speed up cluster creation #748

Closed ryanemerson closed 4 months ago

ryanemerson commented 4 months ago

I have removed the multi-az cluster options associated with creating rosa clusters as we haven't been using these and we don't have a need for this functionality, at least in the short term. If there are any objections I can attempt to reinstate these.

Resolves #673 Resolves #750

Remaining actions:

ryanemerson commented 4 months ago

Multi-az clusters created and deployed as expected on inspection: https://github.com/ryanemerson/keycloak-benchmark/actions/runs/8452406289

ahus1 commented 4 months ago

@ryanemerson - great job, happy to see the first working cluster created via OpenTofu!

ryanemerson commented 4 months ago

I've addressed all comments and have executed a new GH run to verify: https://github.com/ryanemerson/keycloak-benchmark/actions/runs/8465601858

ryanemerson commented 4 months ago

The previous run uncovered an issue with the EFS script. All working as expected now:

https://github.com/ryanemerson/keycloak-benchmark/actions/runs/8466454176

mhajas commented 4 months ago

I just realized one more thing. I probably know the answer as we are using the same script for choosing CIDR but I think it is worth double-checking. Can we run cluster creation in parallel with the new approach? https://github.com/keycloak/keycloak-benchmark/blob/main/.github/workflows/rosa-multi-az-cluster-create.yml#L61-L62

ahus1 commented 4 months ago

Can we run cluster creation in parallel with the new approach?

Not yet, AFAIK, as we're still using the same script. Still it is a worthy next step. At the moment the script checks only the available IP address, but doesn't allocate it. Maybe we can find a mechanism to reserve the CIDR by setting some expiring information somewhere (maybe a S3 bucket entry with a timeout?) No idea what the most lightweight approach would be. cc: @ryanemerson

ryanemerson commented 4 months ago

I think the simplest way, i.e. no additional dependencies, to allow parallel creation would be to utilise a terraform module that creates multiple clusters in a single workspace as suggested by @mhajas https://github.com/keycloak/keycloak-benchmark/pull/748#discussion_r1547461490.