We are currently working with Crossplane and the tool upjet https://github.com/upbound/upjet
This tool allows us to generate Crossplane providers from a terraform provider, the aim is to manage keycloak ressources in kubernetes using Crossplane. We successfully created a keycloak provider that allows us to manage ressources.
What it basically does is converting the CRUD methods (Create, Read, Update, Delete) of the terraform provider and generating go code out of it as well as CRDs
However, we now faced an issue:
Currently there is a keycloak_openid_client and a keycloak_saml_client ressource
The keycloak_role ressource is able to differentiate between client roles and realm roles
If we create a client role using keycloak_role we need to reference a client by it's client ID.
However, If we want to reference a client we would need to differentiate between a keycloak_openid_client and keycloak_saml_client
In our current state that would not be possible, since the OIDC client and the SAML client are different Types of Objects.
Question
Would it be possible to create a keycloak_generic_client that unites both client types?
example:
Context
We are currently working with Crossplane and the tool upjet https://github.com/upbound/upjet This tool allows us to generate Crossplane providers from a terraform provider, the aim is to manage keycloak ressources in kubernetes using Crossplane. We successfully created a keycloak provider that allows us to manage ressources.
What it basically does is converting the CRUD methods (Create, Read, Update, Delete) of the terraform provider and generating go code out of it as well as CRDs
However, we now faced an issue:
keycloak_openid_client
and akeycloak_saml_client
ressourcekeycloak_role
ressource is able to differentiate between client roles and realm roleskeycloak_role
we need to reference a client by it's client ID.keycloak_openid_client
andkeycloak_saml_client
Question
Would it be possible to create a
keycloak_generic_client
that unites both client types? example:saml
oidc
where
type
defines the type of client