# 구성 (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) ``` # 구성 (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 배포 ``` 작성중 ```