Add CUSTOM-README.md

This commit is contained in:
wbsong111
2025-01-14 09:48:16 +09:00
parent e5fa12e621
commit 8c1efa6aa4
2 changed files with 173 additions and 13 deletions
+157
View File
@@ -0,0 +1,157 @@
# keycloak 배포
## 1. 배포 방법
### 1) 배포시 주의 사항
- keycloak을 배포하기 위해서 postgresql이 필요하다.
- postgresql 설치는 내장 DB 또는 [dip-catalog/postgresql-ha](https://github.com/paasup/dip-catalog/tree/postgresql-ha/11.9.4-1/charts/postgresql-ha)를 배포하여 사용할 수 있다.
### 2) 배포 방법
``` sh
git clone https://github.com/paasup/dip-catalog.git
cd charts/keycloak
helm upgrade keycloak ./ -f custom-values.yaml --install -n platform --create-namespace
```
## 2.custom-values.yaml 설명
- custom-values.yaml에 정의된 값에 대한 설명이다.
### 1) pod 설정
- private 환경 배포시 사용한다.
| Name | 설명 | 기본값 |
| ---------------------- | ----------------------------------| ------ |
| `image.repository` | 오프라인 설치 시에 설정. <br />오프라인 설치 시에는 "paasup.io"을 추가. | `"paasup/keycloak"` |
| `resources` | keycloak pod의 자원 설정. | `custom-values.yaml 참조` |
### 2) Postgresql 연동 설정
#### 내장 DB 사용
- custom-values.yaml 수정
``` yaml
postgresql:
enabled: enable
extraEnv: |
- name: KEYCLOAK_USER
value: admin
- name: KEYCLOAK_PASSWORD
value: Paasadm1234!
- name: KEYCLOAK_FRONTEND_URL
value: "https://keycloak.exmaple.org/auth" # keycloak 도메인으로 변경
- name: JGROUPS_DISCOVERY_PROTOCOL
value: dns.DNS_PING
- name: JGROUPS_DISCOVERY_PROPERTIES
value: 'dns_query=keycloak-headless.platform.svc.cluster.local'
- name: CACHE_OWNERS_COUNT
value: "2"
- name: CACHE_OWNERS_AUTH_SESSIONS_COUNT
value: "2"
- name: TZ
value: Asia/Seoul
```
#### dip-catalog/postgresql-ha 배포 시
- custom-values.yaml 수정
``` yaml
postgresql:
enabled: false
# 외부 DB 사용 시
## DB_VENDOR, DB_ADDR, DB_PORT, DB_DATABASE, DB_SCHEMA의 값을 배포된 DB의 값으로 변경
# keycloak 사용자 설정
## KEYCLOAK_USER : 관리자 계정 설정
## KEYCLOAK_PASSWORD : 관리자 계정 비밀번호 설정
# keycloak domain 설정
## KEYCLOAK_FRONTEND_URL: 사용할 keycloak 도메인으로 변경
extraEnv: |
- name: DB_VENDOR
value: postgres
- name: DB_ADDR
value: postgresql-postgresql-ha-postgresql
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
value: keycloak
- name: DB_SCHEMA
value: keycloak
- name: KEYCLOAK_USER
value: admin
- name: KEYCLOAK_PASSWORD
value: Paasadm1234!
- name: KEYCLOAK_FRONTEND_URL
value: "https://keycloak.exmaple.org/auth" # keycloak 도메인으로 변경
- name: JGROUPS_DISCOVERY_PROTOCOL
value: dns.DNS_PING
- name: JGROUPS_DISCOVERY_PROPERTIES
value: 'dns_query=keycloak-headless.platform.svc.cluster.local'
- name: CACHE_OWNERS_COUNT
value: "2"
- name: CACHE_OWNERS_AUTH_SESSIONS_COUNT
value: "2"
- name: TZ
value: Asia/Seoul
extraEnvFrom: |
- secretRef:
name: 'keycloak-db'
secrets:
db:
stringData:
DB_USER: keycloak # keycloak이 사용할 DB의 사용자 이름
DB_PASSWORD: keycloak # keycloak이 사용할 DB의 사용자 비밀번호
```
### 3) Ingress 설정
#### 3.1) tls 시크릿 직접 생성
- flowise에서 ingress 사용을 위해서는 다음과 같이 설정할 수 있다.
``` yaml
ingress:
enabled: true
rules:
- host: keycloak.example.org # keycloak에서 사용할 도메인으로 변경
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- keycloak.exmaple.org # keycloak에서 사용할 도메인으로 변경
secretName: keycloak-tls
```
- ingress 사용을 위해서는 인증서를 secret으로 제공해야한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다.
``` sh
kubectl create secret tls flowise-tls-secret --cert=<path-to-cert-file> --key=<path-to-key-file> -n <namespace>
```
#### 3.2) cert-manager를 이용한 자동 생성
- cert manager를 통해 인증서 자동 생성 시 `custom-values.yaml` 수정한다.
- `ingress.annotations.cert-manager.io/cluster-issuer`에 미리 배포된 Cluster Issuer의 이름으로 변경한다.
``` yaml
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: "selfsigned-issuer"
cert-manager.io/duration: 8760h
cert-manager.io/renew-before: 720h
rules:
- host: keycloak.example.org # keycloak에서 사용할 도메인으로 변경
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- keycloak.exmaple.org # keycloak에서 사용할 도메인으로 변경
secretName: keycloak-tls
```
+16 -13
View File
@@ -5,9 +5,11 @@ image:
ingress: ingress:
enabled: true enabled: true
annotations: annotations:
cert-manager.io/cluster-issuer: "root-ca-issuer" cert-manager.io/cluster-issuer: "selfsigned-issuer"
cert-manager.io/duration: 8760h
cert-manager.io/renew-before: 720h
rules: rules:
- host: keycloak.exmaple.org # keycloak에서 사용할 도메인으로 변경 - host: keycloak.example.org # keycloak에서 사용할 도메인으로 변경
paths: paths:
- path: / - path: /
pathType: Prefix pathType: Prefix
@@ -16,10 +18,20 @@ ingress:
- keycloak.exmaple.org # keycloak에서 사용할 도메인으로 변경 - keycloak.exmaple.org # keycloak에서 사용할 도메인으로 변경
secretName: keycloak-tls secretName: keycloak-tls
resources:
requests:
cpu: 100m
memory: 500Mi
limits:
cpu: 1000m
memory: 1000Mi
# 내장 DB 사용시 enable로 변경
postgresql: postgresql:
enabled: false enabled: false
# 외부 DB 사용시 설정 # 외부 DB 사용
# DB_VENDOR, DB_ADDR, DB_PORT, DB_DATABASE, DB_SCHEMA의 값을 배포된 DB의 값으로 변경
extraEnv: | extraEnv: |
- name: DB_VENDOR - name: DB_VENDOR
value: postgres value: postgres
@@ -36,7 +48,7 @@ extraEnv: |
- name: KEYCLOAK_PASSWORD - name: KEYCLOAK_PASSWORD
value: Paasadm1234! value: Paasadm1234!
- name: KEYCLOAK_FRONTEND_URL - name: KEYCLOAK_FRONTEND_URL
value: "https://keycloak.exmaple.org/auth" # keycloak 도메인으로 변경 value: "https://keycloak.example.org/auth" # keycloak 도메인으로 변경
- name: JGROUPS_DISCOVERY_PROTOCOL - name: JGROUPS_DISCOVERY_PROTOCOL
value: dns.DNS_PING value: dns.DNS_PING
- name: JGROUPS_DISCOVERY_PROPERTIES - name: JGROUPS_DISCOVERY_PROPERTIES
@@ -58,15 +70,6 @@ secrets:
DB_USER: keycloak # keycloak이 사용할 DB의 사용자 이름 DB_USER: keycloak # keycloak이 사용할 DB의 사용자 이름
DB_PASSWORD: keycloak # keycloak이 사용할 DB의 사용자 비밀번호 DB_PASSWORD: keycloak # keycloak이 사용할 DB의 사용자 비밀번호
resources:
requests:
cpu: 100m
memory: 500Mi
limits:
cpu: 1000m
memory: 1000Mi
## themes 추가 시 주석 해제 / keycloak theme 컨테이너 생성 필요 ## themes 추가 시 주석 해제 / keycloak theme 컨테이너 생성 필요
## Additional init containers, e. g. for providing custom themes ## Additional init containers, e. g. for providing custom themes