Add CUSTOM-README.md
This commit is contained in:
@@ -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
|
||||||
|
```
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user