[{"data":1,"prerenderedAt":1405},["ShallowReactive",2],{"navigation":3,"docs-navigation-en":4,"\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak":115,"\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak-surround":1400},[],[5,24,36,67,108],{"title":6,"path":7,"stem":8,"children":9,"icon":23},"Getting Started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[10,13,18],{"title":11,"path":7,"stem":8,"icon":12},"Introduction","i-lucide-house",{"title":14,"path":15,"stem":16,"icon":17},"Get Started","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"How It Works","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fhow-it-works","en\u002F1.docs\u002F1.getting-started\u002F3.how-it-works","i-lucide-lightbulb",false,{"title":25,"path":26,"stem":27,"children":28,"icon":23},"Guides","\u002Fen\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[29,31],{"title":25,"path":26,"stem":27,"icon":30},"i-lucide-book-open",{"title":32,"path":33,"stem":34,"icon":35},"Connect a Container Registry","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries","en\u002F1.docs\u002F2.guides\u002F2.container-registries","i-lucide-container",{"title":37,"path":38,"stem":39,"children":40,"icon":23},"App Services","\u002Fen\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[41,42,47,52,57,62],{"title":37,"path":38,"stem":39,"icon":17},{"title":43,"path":44,"stem":45,"icon":46},"Build Settings","\u002Fen\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings","i-lucide-settings",{"title":48,"path":49,"stem":50,"icon":51},"Env Variables","\u002Fen\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":53,"path":54,"stem":55,"icon":56},"Custom Domains","\u002Fen\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains","i-lucide-globe",{"title":58,"path":59,"stem":60,"icon":61},"Health Checks","\u002Fen\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":63,"path":64,"stem":65,"icon":66},"Autoscaling","\u002Fen\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling","i-lucide-scaling",{"title":68,"path":69,"stem":70,"children":71,"icon":23},"Helm Releases","\u002Fen\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[72,74,79,84,88,93,98,103],{"title":68,"path":69,"stem":70,"icon":73},"i-lucide-package",{"title":75,"path":76,"stem":77,"icon":78},"Deploy PostgreSQL","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql","i-lucide-database",{"title":80,"path":81,"stem":82,"icon":83},"Deploy Redis","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":85,"path":86,"stem":87,"icon":83},"Deploy Valkey","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-valkey","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-valkey",{"title":89,"path":90,"stem":91,"icon":92},"Deploy n8n","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":94,"path":95,"stem":96,"icon":97},"Deploy RustFS","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs","i-lucide-hard-drive",{"title":99,"path":100,"stem":101,"icon":102},"Deploy OpenSearch","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":104,"path":105,"stem":106,"icon":107},"Deploy Keycloak","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":109,"path":110,"stem":111,"children":112,"icon":23},"Glossary","\u002Fen\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[113],{"title":109,"path":110,"stem":111,"icon":114},"i-lucide-book-a",{"id":116,"title":104,"body":117,"description":1393,"extension":1394,"lastUpdated":1395,"meta":1396,"navigation":1397,"path":105,"seo":1398,"stem":106,"__hash__":1399},"docs\u002Fen\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak.md",{"type":118,"value":119,"toc":1378},"minimark",[120,124,135,147,152,162,166,169,304,316,320,323,624,628,633,644,648,655,659,665,844,848,859,863,866,1193,1197,1200,1231,1238,1242,1245,1336,1347,1351,1374],[121,122,123],"p",{},"Keycloak is an open-source Identity and Access Management solution. With the lowcloud Helm Release, you deploy Keycloak in your Kubernetes cluster – including an embedded PostgreSQL database, Ingress support, and optional Realm import.",[121,125,126,130,131],{},[127,128,129],"strong",{},"Chart Registry:"," ",[132,133,134],"code",{},"oci:\u002F\u002Fregistry-1.docker.io\u002Fcloudpirates\u002Fkeycloak",[121,136,137,138,146],{},"The Helm Release is provided and maintained by ",[139,140,145],"a",{"href":141,"rel":142,"target":144},"https:\u002F\u002Fartifacthub.io\u002Fpackages\u002Fhelm\u002Fcloudpirates-keycloak\u002Fkeycloak",[143],"nofollow","\\_blank","Cloud Pirates",".",[148,149,151],"h2",{"id":150},"prerequisites","Prerequisites",[153,154,155,159],"ul",{},[156,157,158],"li",{},"A lowcloud account with an active cluster",[156,160,161],{},"Access to the lowcloud Dashboard",[148,163,165],{"id":164},"quick-start","Quick Start",[121,167,168],{},"Minimal configuration to get Keycloak up and running:",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","keycloak:\n  adminUser: admin\n  adminPassword: your-secure-password\n  hostname: https:\u002F\u002Fauth.example.com\n  proxyHeaders: xforwarded\n\npostgres:\n  enabled: true\n  auth:\n    database: keycloak\n    username: keycloak\n    password: your-db-password\n","yaml","",[132,177,178,191,204,215,226,237,244,252,264,272,283,293],{"__ignoreMap":175},[179,180,183,187],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"swJcz","keycloak",[179,188,190],{"class":189},"sMK4o",":\n",[179,192,194,197,200],{"class":181,"line":193},2,[179,195,196],{"class":185},"  adminUser",[179,198,199],{"class":189},":",[179,201,203],{"class":202},"sfazB"," admin\n",[179,205,207,210,212],{"class":181,"line":206},3,[179,208,209],{"class":185},"  adminPassword",[179,211,199],{"class":189},[179,213,214],{"class":202}," your-secure-password\n",[179,216,218,221,223],{"class":181,"line":217},4,[179,219,220],{"class":185},"  hostname",[179,222,199],{"class":189},[179,224,225],{"class":202}," https:\u002F\u002Fauth.example.com\n",[179,227,229,232,234],{"class":181,"line":228},5,[179,230,231],{"class":185},"  proxyHeaders",[179,233,199],{"class":189},[179,235,236],{"class":202}," xforwarded\n",[179,238,240],{"class":181,"line":239},6,[179,241,243],{"emptyLinePlaceholder":242},true,"\n",[179,245,247,250],{"class":181,"line":246},7,[179,248,249],{"class":185},"postgres",[179,251,190],{"class":189},[179,253,255,258,260],{"class":181,"line":254},8,[179,256,257],{"class":185},"  enabled",[179,259,199],{"class":189},[179,261,263],{"class":262},"sfNiH"," true\n",[179,265,267,270],{"class":181,"line":266},9,[179,268,269],{"class":185},"  auth",[179,271,190],{"class":189},[179,273,275,278,280],{"class":181,"line":274},10,[179,276,277],{"class":185},"    database",[179,279,199],{"class":189},[179,281,282],{"class":202}," keycloak\n",[179,284,286,289,291],{"class":181,"line":285},11,[179,287,288],{"class":185},"    username",[179,290,199],{"class":189},[179,292,282],{"class":202},[179,294,296,299,301],{"class":181,"line":295},12,[179,297,298],{"class":185},"    password",[179,300,199],{"class":189},[179,302,303],{"class":202}," your-db-password\n",[305,306,309],"callout",{"color":307,"icon":308},"warning","i-lucide-triangle-alert",[121,310,311,312,315],{},"Set ",[132,313,314],{},"keycloak.proxyHeaders: xforwarded"," when running Keycloak behind an nginx Ingress or any other reverse proxy. Without this setting, redirects and token validation will not work correctly.",[148,317,319],{"id":318},"configuration","Configuration",[121,321,322],{},"The most important configuration options at a glance:",[324,325,326,342],"table",{},[327,328,329],"thead",{},[330,331,332,336,339],"tr",{},[333,334,335],"th",{},"Parameter",[333,337,338],{},"Description",[333,340,341],{},"Default",[343,344,345,361,376,393,405,426,445,459,473,487,501,513,528,543,558,573,588,603],"tbody",{},[330,346,347,353,356],{},[348,349,350],"td",{},[132,351,352],{},"image.tag",[348,354,355],{},"Keycloak image version",[348,357,358],{},[132,359,360],{},"26.5.6",[330,362,363,368,371],{},[348,364,365],{},[132,366,367],{},"keycloak.adminUser",[348,369,370],{},"Keycloak admin username",[348,372,373],{},[132,374,375],{},"admin",[330,377,378,383,390],{},[348,379,380],{},[132,381,382],{},"keycloak.adminPassword",[348,384,385,386,389],{},"Admin password (or use ",[132,387,388],{},"existingSecret",")",[348,391,392],{},"—",[330,394,395,400,403],{},[348,396,397],{},[132,398,399],{},"keycloak.hostname",[348,401,402],{},"Public URL of the Keycloak instance",[348,404,392],{},[330,406,407,412,422],{},[348,408,409],{},[132,410,411],{},"keycloak.proxyHeaders",[348,413,414,415,418,419,389],{},"Proxy header mode (",[132,416,417],{},"xforwarded"," or ",[132,420,421],{},"forwarded",[348,423,424],{},[132,425,417],{},[330,427,428,433,440],{},[348,429,430],{},[132,431,432],{},"keycloak.production",[348,434,435,436,439],{},"Production mode (",[132,437,438],{},"start",") or dev mode",[348,441,442],{},[132,443,444],{},"true",[330,446,447,452,455],{},[348,448,449],{},[132,450,451],{},"database.type",[348,453,454],{},"Database type",[348,456,457],{},[132,458,249],{},[330,460,461,466,469],{},[348,462,463],{},[132,464,465],{},"postgres.enabled",[348,467,468],{},"Enable embedded PostgreSQL",[348,470,471],{},[132,472,444],{},[330,474,475,480,483],{},[348,476,477],{},[132,478,479],{},"postgres.auth.database",[348,481,482],{},"Database name for embedded PostgreSQL",[348,484,485],{},[132,486,186],{},[330,488,489,494,497],{},[348,490,491],{},[132,492,493],{},"postgres.auth.username",[348,495,496],{},"Username for embedded PostgreSQL",[348,498,499],{},[132,500,186],{},[330,502,503,508,511],{},[348,504,505],{},[132,506,507],{},"postgres.auth.password",[348,509,510],{},"Password for embedded PostgreSQL",[348,512,392],{},[330,514,515,520,523],{},[348,516,517],{},[132,518,519],{},"resources.requests.cpu",[348,521,522],{},"CPU request",[348,524,525],{},[132,526,527],{},"250m",[330,529,530,535,538],{},[348,531,532],{},[132,533,534],{},"resources.requests.memory",[348,536,537],{},"Memory request",[348,539,540],{},[132,541,542],{},"512Mi",[330,544,545,550,553],{},[348,546,547],{},[132,548,549],{},"resources.limits.cpu",[348,551,552],{},"CPU limit",[348,554,555],{},[132,556,557],{},"1000m",[330,559,560,565,568],{},[348,561,562],{},[132,563,564],{},"resources.limits.memory",[348,566,567],{},"Memory limit",[348,569,570],{},[132,571,572],{},"1024Mi",[330,574,575,580,583],{},[348,576,577],{},[132,578,579],{},"ingress.enabled",[348,581,582],{},"Enable Ingress",[348,584,585],{},[132,586,587],{},"false",[330,589,590,595,601],{},[348,591,592],{},[132,593,594],{},"ingress.className",[348,596,597,598,389],{},"Ingress class (e.g. ",[132,599,600],{},"nginx",[348,602,392],{},[330,604,605,610,620],{},[348,606,607],{},[132,608,609],{},"cache.stack",[348,611,612,613,418,616,619],{},"Cache mode (",[132,614,615],{},"local",[132,617,618],{},"ispn"," for multi-replica)",[348,621,622],{},[132,623,615],{},[148,625,627],{"id":626},"step-by-step-guide","Step-by-Step Guide",[629,630,632],"h3",{"id":631},"_1-add-the-service","1. Add the service",[121,634,635,636,639,640,643],{},"In the lowcloud Dashboard, navigate to ",[127,637,638],{},"Add Service"," and select ",[127,641,642],{},"Helm Release",". Search for the Keycloak registry in the popup:",[121,645,646],{},[132,647,134],{},[121,649,650,651,654],{},"Select the desired version. ",[127,652,653],{},"\"latest\""," is a good choice in most cases.",[629,656,658],{"id":657},"_2-configure-values","2. Configure values",[121,660,661,662,664],{},"Give the service a meaningful name (e.g. ",[132,663,186],{},"). Then adjust the values:",[170,666,668],{"className":172,"code":667,"language":174,"meta":175,"style":175},"keycloak:\n  adminUser: admin\n  adminPassword: your-secure-password\n  hostname: https:\u002F\u002Fauth.example.com\n  proxyHeaders: xforwarded\n\npostgres:\n  enabled: true\n  auth:\n    database: keycloak\n    username: keycloak\n    password: your-db-password\n\ningress:\n  enabled: true\n  className: nginx\n  hosts:\n    - host: auth.example.com\n      paths:\n        - path: \u002F\n          pathType: Prefix\n",[132,669,670,676,684,692,700,708,712,718,726,732,740,748,756,761,769,778,789,797,811,819,833],{"__ignoreMap":175},[179,671,672,674],{"class":181,"line":182},[179,673,186],{"class":185},[179,675,190],{"class":189},[179,677,678,680,682],{"class":181,"line":193},[179,679,196],{"class":185},[179,681,199],{"class":189},[179,683,203],{"class":202},[179,685,686,688,690],{"class":181,"line":206},[179,687,209],{"class":185},[179,689,199],{"class":189},[179,691,214],{"class":202},[179,693,694,696,698],{"class":181,"line":217},[179,695,220],{"class":185},[179,697,199],{"class":189},[179,699,225],{"class":202},[179,701,702,704,706],{"class":181,"line":228},[179,703,231],{"class":185},[179,705,199],{"class":189},[179,707,236],{"class":202},[179,709,710],{"class":181,"line":239},[179,711,243],{"emptyLinePlaceholder":242},[179,713,714,716],{"class":181,"line":246},[179,715,249],{"class":185},[179,717,190],{"class":189},[179,719,720,722,724],{"class":181,"line":254},[179,721,257],{"class":185},[179,723,199],{"class":189},[179,725,263],{"class":262},[179,727,728,730],{"class":181,"line":266},[179,729,269],{"class":185},[179,731,190],{"class":189},[179,733,734,736,738],{"class":181,"line":274},[179,735,277],{"class":185},[179,737,199],{"class":189},[179,739,282],{"class":202},[179,741,742,744,746],{"class":181,"line":285},[179,743,288],{"class":185},[179,745,199],{"class":189},[179,747,282],{"class":202},[179,749,750,752,754],{"class":181,"line":295},[179,751,298],{"class":185},[179,753,199],{"class":189},[179,755,303],{"class":202},[179,757,759],{"class":181,"line":758},13,[179,760,243],{"emptyLinePlaceholder":242},[179,762,764,767],{"class":181,"line":763},14,[179,765,766],{"class":185},"ingress",[179,768,190],{"class":189},[179,770,772,774,776],{"class":181,"line":771},15,[179,773,257],{"class":185},[179,775,199],{"class":189},[179,777,263],{"class":262},[179,779,781,784,786],{"class":181,"line":780},16,[179,782,783],{"class":185},"  className",[179,785,199],{"class":189},[179,787,788],{"class":202}," nginx\n",[179,790,792,795],{"class":181,"line":791},17,[179,793,794],{"class":185},"  hosts",[179,796,190],{"class":189},[179,798,800,803,806,808],{"class":181,"line":799},18,[179,801,802],{"class":189},"    -",[179,804,805],{"class":185}," host",[179,807,199],{"class":189},[179,809,810],{"class":202}," auth.example.com\n",[179,812,814,817],{"class":181,"line":813},19,[179,815,816],{"class":185},"      paths",[179,818,190],{"class":189},[179,820,822,825,828,830],{"class":181,"line":821},20,[179,823,824],{"class":189},"        -",[179,826,827],{"class":185}," path",[179,829,199],{"class":189},[179,831,832],{"class":202}," \u002F\n",[179,834,836,839,841],{"class":181,"line":835},21,[179,837,838],{"class":185},"          pathType",[179,840,199],{"class":189},[179,842,843],{"class":202}," Prefix\n",[629,845,847],{"id":846},"_3-start-deployment","3. Start deployment",[121,849,850,851,854,855,858],{},"Open the created service and click ",[127,852,853],{},"Deploy",". Wait until the label in the Dashboard switches to ",[127,856,857],{},"\"Deployed\"",". Keycloak will then be accessible at the configured hostname URL.",[148,860,862],{"id":861},"advanced-values","Advanced Values",[121,864,865],{},"For production use, a complete configuration with persistence, resource limits, and TLS is recommended:",[170,867,869],{"className":172,"code":868,"language":174,"meta":175,"style":175},"image:\n  tag: \"26.5.6\"\n\nkeycloak:\n  adminUser: admin\n  adminPassword: your-secure-password\n  hostname: https:\u002F\u002Fauth.example.com\n  proxyHeaders: xforwarded\n  production: true\n\ndatabase:\n  type: postgres\n\npostgres:\n  enabled: true\n  auth:\n    database: keycloak\n    username: keycloak\n    password: your-db-password\n\ningress:\n  enabled: true\n  className: nginx\n  hosts:\n    - host: auth.example.com\n      paths:\n        - path: \u002F\n          pathType: Prefix\n  tls:\n    - secretName: auth-tls\n      hosts:\n        - auth.example.com\n\nresources:\n  requests:\n    cpu: 250m\n    memory: 512Mi\n  limits:\n    cpu: 1000m\n    memory: 1024Mi\n",[132,870,871,878,893,897,903,911,919,927,935,944,948,955,965,969,975,983,989,997,1005,1013,1017,1023,1032,1041,1048,1059,1066,1077,1086,1094,1107,1115,1122,1127,1135,1143,1154,1165,1173,1183],{"__ignoreMap":175},[179,872,873,876],{"class":181,"line":182},[179,874,875],{"class":185},"image",[179,877,190],{"class":189},[179,879,880,883,885,888,890],{"class":181,"line":193},[179,881,882],{"class":185},"  tag",[179,884,199],{"class":189},[179,886,887],{"class":189}," \"",[179,889,360],{"class":202},[179,891,892],{"class":189},"\"\n",[179,894,895],{"class":181,"line":206},[179,896,243],{"emptyLinePlaceholder":242},[179,898,899,901],{"class":181,"line":217},[179,900,186],{"class":185},[179,902,190],{"class":189},[179,904,905,907,909],{"class":181,"line":228},[179,906,196],{"class":185},[179,908,199],{"class":189},[179,910,203],{"class":202},[179,912,913,915,917],{"class":181,"line":239},[179,914,209],{"class":185},[179,916,199],{"class":189},[179,918,214],{"class":202},[179,920,921,923,925],{"class":181,"line":246},[179,922,220],{"class":185},[179,924,199],{"class":189},[179,926,225],{"class":202},[179,928,929,931,933],{"class":181,"line":254},[179,930,231],{"class":185},[179,932,199],{"class":189},[179,934,236],{"class":202},[179,936,937,940,942],{"class":181,"line":266},[179,938,939],{"class":185},"  production",[179,941,199],{"class":189},[179,943,263],{"class":262},[179,945,946],{"class":181,"line":274},[179,947,243],{"emptyLinePlaceholder":242},[179,949,950,953],{"class":181,"line":285},[179,951,952],{"class":185},"database",[179,954,190],{"class":189},[179,956,957,960,962],{"class":181,"line":295},[179,958,959],{"class":185},"  type",[179,961,199],{"class":189},[179,963,964],{"class":202}," postgres\n",[179,966,967],{"class":181,"line":758},[179,968,243],{"emptyLinePlaceholder":242},[179,970,971,973],{"class":181,"line":763},[179,972,249],{"class":185},[179,974,190],{"class":189},[179,976,977,979,981],{"class":181,"line":771},[179,978,257],{"class":185},[179,980,199],{"class":189},[179,982,263],{"class":262},[179,984,985,987],{"class":181,"line":780},[179,986,269],{"class":185},[179,988,190],{"class":189},[179,990,991,993,995],{"class":181,"line":791},[179,992,277],{"class":185},[179,994,199],{"class":189},[179,996,282],{"class":202},[179,998,999,1001,1003],{"class":181,"line":799},[179,1000,288],{"class":185},[179,1002,199],{"class":189},[179,1004,282],{"class":202},[179,1006,1007,1009,1011],{"class":181,"line":813},[179,1008,298],{"class":185},[179,1010,199],{"class":189},[179,1012,303],{"class":202},[179,1014,1015],{"class":181,"line":821},[179,1016,243],{"emptyLinePlaceholder":242},[179,1018,1019,1021],{"class":181,"line":835},[179,1020,766],{"class":185},[179,1022,190],{"class":189},[179,1024,1026,1028,1030],{"class":181,"line":1025},22,[179,1027,257],{"class":185},[179,1029,199],{"class":189},[179,1031,263],{"class":262},[179,1033,1035,1037,1039],{"class":181,"line":1034},23,[179,1036,783],{"class":185},[179,1038,199],{"class":189},[179,1040,788],{"class":202},[179,1042,1044,1046],{"class":181,"line":1043},24,[179,1045,794],{"class":185},[179,1047,190],{"class":189},[179,1049,1051,1053,1055,1057],{"class":181,"line":1050},25,[179,1052,802],{"class":189},[179,1054,805],{"class":185},[179,1056,199],{"class":189},[179,1058,810],{"class":202},[179,1060,1062,1064],{"class":181,"line":1061},26,[179,1063,816],{"class":185},[179,1065,190],{"class":189},[179,1067,1069,1071,1073,1075],{"class":181,"line":1068},27,[179,1070,824],{"class":189},[179,1072,827],{"class":185},[179,1074,199],{"class":189},[179,1076,832],{"class":202},[179,1078,1080,1082,1084],{"class":181,"line":1079},28,[179,1081,838],{"class":185},[179,1083,199],{"class":189},[179,1085,843],{"class":202},[179,1087,1089,1092],{"class":181,"line":1088},29,[179,1090,1091],{"class":185},"  tls",[179,1093,190],{"class":189},[179,1095,1097,1099,1102,1104],{"class":181,"line":1096},30,[179,1098,802],{"class":189},[179,1100,1101],{"class":185}," secretName",[179,1103,199],{"class":189},[179,1105,1106],{"class":202}," auth-tls\n",[179,1108,1110,1113],{"class":181,"line":1109},31,[179,1111,1112],{"class":185},"      hosts",[179,1114,190],{"class":189},[179,1116,1118,1120],{"class":181,"line":1117},32,[179,1119,824],{"class":189},[179,1121,810],{"class":202},[179,1123,1125],{"class":181,"line":1124},33,[179,1126,243],{"emptyLinePlaceholder":242},[179,1128,1130,1133],{"class":181,"line":1129},34,[179,1131,1132],{"class":185},"resources",[179,1134,190],{"class":189},[179,1136,1138,1141],{"class":181,"line":1137},35,[179,1139,1140],{"class":185},"  requests",[179,1142,190],{"class":189},[179,1144,1146,1149,1151],{"class":181,"line":1145},36,[179,1147,1148],{"class":185},"    cpu",[179,1150,199],{"class":189},[179,1152,1153],{"class":202}," 250m\n",[179,1155,1157,1160,1162],{"class":181,"line":1156},37,[179,1158,1159],{"class":185},"    memory",[179,1161,199],{"class":189},[179,1163,1164],{"class":202}," 512Mi\n",[179,1166,1168,1171],{"class":181,"line":1167},38,[179,1169,1170],{"class":185},"  limits",[179,1172,190],{"class":189},[179,1174,1176,1178,1180],{"class":181,"line":1175},39,[179,1177,1148],{"class":185},[179,1179,199],{"class":189},[179,1181,1182],{"class":202}," 1000m\n",[179,1184,1186,1188,1190],{"class":181,"line":1185},40,[179,1187,1159],{"class":185},[179,1189,199],{"class":189},[179,1191,1192],{"class":202}," 1024Mi\n",[629,1194,1196],{"id":1195},"realm-import","Realm Import",[121,1198,1199],{},"You can automatically import a realm on startup. Store your realm configuration as a Kubernetes Secret and reference it:",[170,1201,1203],{"className":172,"code":1202,"language":174,"meta":175,"style":175},"realm:\n  import: true\n  existingSecret: my-realm-secret\n",[132,1204,1205,1212,1221],{"__ignoreMap":175},[179,1206,1207,1210],{"class":181,"line":182},[179,1208,1209],{"class":185},"realm",[179,1211,190],{"class":189},[179,1213,1214,1217,1219],{"class":181,"line":193},[179,1215,1216],{"class":185},"  import",[179,1218,199],{"class":189},[179,1220,263],{"class":262},[179,1222,1223,1226,1228],{"class":181,"line":206},[179,1224,1225],{"class":185},"  existingSecret",[179,1227,199],{"class":189},[179,1229,1230],{"class":202}," my-realm-secret\n",[121,1232,1233,1234,1237],{},"The Secret must contain a key ",[132,1235,1236],{},"realm.json"," with the realm JSON content.",[629,1239,1241],{"id":1240},"external-database","External Database",[121,1243,1244],{},"If you want to use an existing PostgreSQL instance, disable the embedded database and configure the external connection:",[170,1246,1248],{"className":172,"code":1247,"language":174,"meta":175,"style":175},"postgres:\n  enabled: false\n\ndatabase:\n  type: postgres\n  host: my-postgres-service\n  port: '5432'\n  name: keycloak\n  username: keycloak\n  password: your-db-password\n",[132,1249,1250,1256,1265,1269,1275,1283,1293,1309,1318,1327],{"__ignoreMap":175},[179,1251,1252,1254],{"class":181,"line":182},[179,1253,249],{"class":185},[179,1255,190],{"class":189},[179,1257,1258,1260,1262],{"class":181,"line":193},[179,1259,257],{"class":185},[179,1261,199],{"class":189},[179,1263,1264],{"class":262}," false\n",[179,1266,1267],{"class":181,"line":206},[179,1268,243],{"emptyLinePlaceholder":242},[179,1270,1271,1273],{"class":181,"line":217},[179,1272,952],{"class":185},[179,1274,190],{"class":189},[179,1276,1277,1279,1281],{"class":181,"line":228},[179,1278,959],{"class":185},[179,1280,199],{"class":189},[179,1282,964],{"class":202},[179,1284,1285,1288,1290],{"class":181,"line":239},[179,1286,1287],{"class":185},"  host",[179,1289,199],{"class":189},[179,1291,1292],{"class":202}," my-postgres-service\n",[179,1294,1295,1298,1300,1303,1306],{"class":181,"line":246},[179,1296,1297],{"class":185},"  port",[179,1299,199],{"class":189},[179,1301,1302],{"class":189}," '",[179,1304,1305],{"class":202},"5432",[179,1307,1308],{"class":189},"'\n",[179,1310,1311,1314,1316],{"class":181,"line":254},[179,1312,1313],{"class":185},"  name",[179,1315,199],{"class":189},[179,1317,282],{"class":202},[179,1319,1320,1323,1325],{"class":181,"line":266},[179,1321,1322],{"class":185},"  username",[179,1324,199],{"class":189},[179,1326,282],{"class":202},[179,1328,1329,1332,1334],{"class":181,"line":274},[179,1330,1331],{"class":185},"  password",[179,1333,199],{"class":189},[179,1335,303],{"class":202},[305,1337,1340],{"color":1338,"icon":1339},"info","i-lucide-link",[121,1341,1342,1343,1346],{},"If you are using an external PostgreSQL instance from another Helm Release, connect the two services via ",[127,1344,1345],{},"Helm Release Dependencies"," in the lowcloud Dashboard.",[148,1348,1350],{"id":1349},"further-reading","Further Reading",[153,1352,1353,1360,1367],{},[156,1354,1355],{},[139,1356,1359],{"href":1357,"rel":1358,"target":144},"https:\u002F\u002Fartifacthub.io\u002Fpackages\u002Fhelm\u002Fcloudpirates\u002Fkeycloak",[143],"Keycloak Chart on ArtifactHub",[156,1361,1362],{},[139,1363,1366],{"href":1364,"rel":1365,"target":144},"https:\u002F\u002Fgithub.com\u002FCloudPirates-io\u002Fhelm-charts\u002Ftree\u002Fmain\u002Fcharts\u002Fkeycloak",[143],"Keycloak Helm Chart on GitHub",[156,1368,1369],{},[139,1370,1373],{"href":1371,"rel":1372,"target":144},"https:\u002F\u002Fwww.keycloak.org\u002Fdocumentation",[143],"Keycloak Documentation",[1375,1376,1377],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":175,"searchDepth":193,"depth":193,"links":1379},[1380,1381,1382,1383,1388,1392],{"id":150,"depth":193,"text":151},{"id":164,"depth":193,"text":165},{"id":318,"depth":193,"text":319},{"id":626,"depth":193,"text":627,"children":1384},[1385,1386,1387],{"id":631,"depth":206,"text":632},{"id":657,"depth":206,"text":658},{"id":846,"depth":206,"text":847},{"id":861,"depth":193,"text":862,"children":1389},[1390,1391],{"id":1195,"depth":206,"text":1196},{"id":1240,"depth":206,"text":1241},{"id":1349,"depth":193,"text":1350},"Learn how to deploy Keycloak as a Helm Release via lowcloud – including database setup, Ingress configuration, and Realm import.","md","2026-04-08",{},{"icon":107},{"title":104,"description":1393},"7yJeoDXX9KmDZnBf2dTZtDQGogFnGlMDK0YG7LQn7yE",[1401,1403],{"title":99,"path":100,"stem":101,"description":1402,"icon":102,"children":-1},"Learn how to deploy OpenSearch as a search and analytics engine on your Kubernetes cluster using lowcloud.",{"title":109,"path":110,"stem":111,"description":1404,"icon":114,"children":-1},"Key terms from the fields of cloud computing, Kubernetes, and DevOps explained clearly.",1776519811502]