feat(ops/keycloak): import github identity provider configuration

For some reason Terraform decided that it would otherwise like
to *delete* this configuration, which is undesirable.

Note that there is a "magic" special behaviour when the `alias` and
`provider_id` are set to the name of a built-in supported
provider (github, gitlab etc.), which lets us skip the
authorization_url setup.

Change-Id: Ib66154c2896dda162c57bdc2d7964a9fa4e15f20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6706
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
This commit is contained in:
Vincent Ambo 2022-09-20 12:19:54 +03:00 committed by tazjin
parent 3a1f4831a8
commit 6576c2f15f
3 changed files with 24 additions and 1 deletions

View file

@ -1,6 +1,6 @@
# Configure TVL Keycloak instance. # Configure TVL Keycloak instance.
# #
# TODO(tazjin): Configure GitHub/GitLab IDP # TODO(tazjin): Configure GitLab IDP
terraform { terraform {
required_providers { required_providers {

View file

@ -2,6 +2,10 @@
# information (either by accessing a system like LDAP or integration # information (either by accessing a system like LDAP or integration
# through protocols like OIDC). # through protocols like OIDC).
variable "github_client_secret" {
type = string
}
resource "keycloak_ldap_user_federation" "tvl_ldap" { resource "keycloak_ldap_user_federation" "tvl_ldap" {
name = "tvl-ldap" name = "tvl-ldap"
realm_id = keycloak_realm.tvl.id realm_id = keycloak_realm.tvl.id
@ -19,3 +23,22 @@ resource "keycloak_ldap_user_federation" "tvl_ldap" {
"organizationalPerson", "organizationalPerson",
] ]
} }
# keycloak_oidc_identity_provider.github will be destroyed
# (because keycloak_oidc_identity_provider.github is not in configuration)
resource "keycloak_oidc_identity_provider" "github" {
alias = "github"
provider_id = "github"
client_id = "6d7f8bb2e82bb6739556"
client_secret = var.github_client_secret
realm = keycloak_realm.tvl.id
backchannel_supported = false
gui_order = "1"
store_token = false
sync_mode = "IMPORT"
trust_email = true
# These default to built-in values for the `github` provider_id.
authorization_url = ""
token_url = ""
}

Binary file not shown.