Files
ingress_migrate_annotations/README.md
2026-01-02 16:31:41 +09:00

96 lines
2.8 KiB
Markdown

# 구성 (Local 실행 기준)
1. mapping.yaml
> 마이그레이션 할 어노테이션 정의가 작성 되는 파일
```yaml
# 예시
nginx.ingress.kubernetes.io/ssl-redirect:
haproxy: haproxy.org/ssl-redirect
support: full
nginx.ingress.kubernetes.io/force-ssl-redirect:
haproxy: haproxy.org/ssl-redirect
support: full
nginx.ingress.kubernetes.io/backend-protocol:
haproxy: haproxy.org/backend-protocol
support: full
nginx.ingress.kubernetes.io/load-balance:
haproxy: haproxy.org/load-balance
support: full
```
support 기준은 아래와 같음
```yaml
full : 1:1 매핑 되는 옵션
# ex)
# nginx.ingress.kubernetes.io/ssl-redirect: "true"
# haproxy.org/ssl-redirect: "true"
partial : 기능은 같으나, 방식이 다름
# nginx.ingress.kubernetes.io/limit-rps: "10"
# haproxy.org/rate-limit-requests: "10"
# haproxy.org/warning-limit-rps: "burst/period semantics differ"
unsupported : 지원 되지 않음
# ex)
# nginx.ingress.kubernetes.io/configuration-snippet: |
# more_set_headers "X-Test: foo";
```
2. migrate.py
> 실행 파일, 옵션은 아래와 같음 (pip install ruamel.yaml 실행 필요)
```shell
--single : 하나의 파일로 결과물 생성
--split : 각각의 yaml 파일로 저장
--out : 저장 경로 설정
--ingress-class : ingressClassName 설정
--report : report 파일 저장 경로
--mapping : 맵핑 파일 지정 (default : mapping.yaml)
--from-ingress-class : 기존 ingressclassname 지정 (지정된 대상만 변환)
--namespace : 지정시 해당 namespace 내 ingress만 변환
```
# 구성 (Kubernetes 실행 기준)
1. Dockerfile
> 이미지 빌드 수행
2. mapping.yaml 파일 configmap으로 Kubernetes에 배포
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: ingress-annotation-mapping
namespace: default
data:
mapping.yaml: |
nginx.ingress.kubernetes.io/ssl-redirect:
haproxy: haproxy.org/ssl-redirect
support: full
nginx.ingress.kubernetes.io/force-ssl-redirect:
haproxy: haproxy.org/ssl-redirect
support: full
nginx.ingress.kubernetes.io/backend-protocol:
haproxy: haproxy.org/backend-protocol
support: full
nginx.ingress.kubernetes.io/load-balance:
haproxy: haproxy.org/load-balance
support: full
nginx.ingress.kubernetes.io/rewrite-target:
haproxy: haproxy.org/path-rewrite
support: full
nginx.ingress.kubernetes.io/proxy-connect-timeout:
haproxy: haproxy.org/proxy-connect-timeout
support: full
```
3. Pod 배포
```
작성중
```