You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.6 KiB
157 lines
4.6 KiB
# 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
|
|
``` |