Graph Studio Deployment with Keycloak Authentication and Extra Imports
Overview & Use Case
This configuration is used to deploy Graph Studio integrated with Keycloak Single Sign-On (SSO) authentication and custom dataset/configuration imports using extraImports. It is designed for enterprise deployments requiring centralized OIDC-based identity management via Keycloak, alongside automated mounting and importing of custom TriG RDF datasets or OSGi/system configurations during Graph Studio startup.
Key Highlights
- Keycloak SSO Integration: Configures
spec.auth.authMode: EXTERNAL_KEYCLOAKandspec.auth.keycloakparameters including Keycloak host, SSL port, client credentials, realm details, display title, scope, and central logout behavior. The operator automatically generates the correspondinginit.jsonauthentication settings andkeycloak.trigSSO provider file. - Extra Imports: Uses
spec.extraImportsto supply custom.trigdatasets or configuration files (e.g.,custom-config.trig) that are mounted into the extra-imports directory and imported into Graph Studio on initial boot.
Custom Resource Definition
apiVersion: anzo.cambridgesemantics.com/v2
kind: Anzo
metadata:
name: server
namespace: "${NAMESPACE}"
spec:
role: AnzoServer
jsonActivation: true
initJSON: |-
{
"sysadminUser": "k8s://anzo-server/admin_user",
"password": "k8s://anzo-server/admin_password",
"hostname": "server",
"serverId": "${SERVER_ID}",
"licenseEncoded": "${CSI_LICENSE}"
}
auth:
authMode: EXTERNAL_KEYCLOAK
keycloak:
keycloakHost: keycloak.example.com
keycloakSslPort: 443
keycloakClientId: graph-studio-client
keycloakClientRealm: graph-studio-realm
keycloakClientSecret: ${KEYCLOAK_CLIENT_SECRET}
title: Keycloak SSO
callbackUserKey: email
scope: openid
trustAll: false
useCentralLogout: true
extraImports:
custom-config.trig: |-
@prefix ex: <http://example.com/> .
ex:s ex:p ex:o .
nodeConfig:
spec:
replicas: 1
serviceName: graph-studio-server
selector:
matchLabels:
app: graph-studio
template:
metadata:
labels:
app: graph-studio
spec:
serviceAccountName: anzo-operator
containers:
- name: graph-studio
image: artifacts.altair.com/graph-docker/anzo:6.3.1