Add landscaping login theme to Keycloak #416
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform!416
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "keycloak-landscaping-theme"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Changes
keycloak/themes/landscaping/login/theme.properties-- theme config extending base keycloak themekeycloak/themes/landscaping/login/resources/css/login.css-- CSS overrides (design tokens, plant icon, form styling)terraform/modules/keycloak/main.tf-- ConfigMap resource, volume mount, volume definitionTest Plan
tofu planshows 1 create (ConfigMap) + 1 update (deployment)tofu applysucceeds, pod restarts with new volume mount/resources/.../login/landscaping/css/login.cssReview Checklist
Related Notes
Closes #415
landscaping-assistant-- project this affectsldraney/pal-e-services #109(realm login_theme),ldraney/landscaping-assistant #173(theme source)PR #416 Review
DOMAIN REVIEW
Tech stack: Terraform (kubernetes provider), Keycloak theme (CSS + properties), k8s ConfigMap volume mounts.
ConfigMap-to-volume key consistency -- VERIFIED:
"theme.properties","login.css"key="theme.properties" -> path="theme.properties",key="login.css" -> path="resources/css/login.css"/opt/keycloak/themes/landscaping/login/opt/keycloak/themes/landscaping/login/resources/css/login.csstheme.propertiesdeclaresstyles=css/login.css-- Keycloak resolves this relative toresources/, so the path is correct.All keys match. The plumbing is sound.
Terraform patterns:
kubernetes_namespace_v1.keycloak.metadata[0].name-- consistent with westside pattern.read_only = true-- correct for a static theme.kubernetes_config_map_v1.keycloak_landscaping_theme.metadata[0].name-- proper resource dependency, no hardcoded strings.CSS review:
:root-- good.!importantextensively -- this is expected and necessary for Keycloak theme overrides where PatternFly defaults must be defeated. Not a code smell in this context.theme.properties:
parent=keycloakandimport=common/keycloak-- correct inheritance from the default Keycloak theme.styles=css/login.css-- single stylesheet, resolved correctly.BLOCKERS
None.
This is a CSS-only theme with infrastructure plumbing. No user input handling, no secrets, no auth logic, no runtime code. The ConfigMap keys align with volume mount paths. The pattern mirrors the existing westside theme exactly (verified by reading both in full).
NITS
CSS filename convention inconsistency: The westside theme names its CSS
westside.css(after the theme), while this theme uses a genericlogin.css. Both work because each theme lives in its own directory tree, but for quick identification when inspecting ConfigMap data orkubectl describe, a name likelandscaping.csswould be more immediately identifiable. Non-blocking -- purely a readability preference.theme.properties formatting: The westside
theme.propertieshas a blank line betweenimport=andstyles=(line 3 is blank). The landscaping version has no blank line. Trivial inconsistency, no functional impact.SOP COMPLIANCE
keycloak-landscaping-theme-- relates to #415 "Deploy landscaping login theme to Keycloak")PROCESS OBSERVATIONS
Recreate(verified in main.tf line 97), so this is expected and controlled.--spi-theme-cache-themes=falseand--spi-theme-static-max-age=-1flags in the Keycloak args (line 120) are flagged with a TODO comment for production hardening. Not introduced by this PR, but worth noting as existing technical debt.VERDICT: APPROVED