From b2855ccba385b73aee42e24d99518b792a3a146f Mon Sep 17 00:00:00 2001 From: wbsong111 Date: Fri, 30 Jan 2026 15:57:37 +0900 Subject: [PATCH] Move file path and Add flink sql gateway document --- .../{ => 1.13.0}/BUILD-README.md | 0 .../{ => 1.13.0}/CUSTOM-README.md | 0 .../flink-sql-gateway/0.1.0/BUILD-README.md | 100 +++++++ .../flink-sql-gateway/0.1.0/CUSTOM-README.md | 262 ++++++++++++++++++ .../flink-sql-gateway/{ => 0.1.0}/Chart.yaml | 2 +- .../flink-sql-gateway/{ => 0.1.0}/README.md | 0 .../{ => 0.1.0}/custom-values.yaml | 6 +- .../{ => 0.1.0}/templates/_helpers.tpl | 0 .../{ => 0.1.0}/templates/configmaps.yaml | 0 .../templates/flink-session-cluster.yaml | 0 .../templates/flink-sql-gateway.yaml | 0 .../{ => 0.1.0}/templates/hadoop-config.yaml | 0 .../{ => 0.1.0}/templates/rbac.yaml | 0 .../{ => 0.1.0}/templates/services.yaml | 0 .../{ => 0.1.0}/templates/sql-client.yaml | 0 .../flink-sql-gateway/{ => 0.1.0}/values.yaml | 0 16 files changed, 366 insertions(+), 4 deletions(-) rename manifests/helm/flink-kubernetes-operator/{ => 1.13.0}/BUILD-README.md (100%) rename manifests/helm/flink-kubernetes-operator/{ => 1.13.0}/CUSTOM-README.md (100%) create mode 100644 manifests/helm/flink-sql-gateway/0.1.0/BUILD-README.md create mode 100644 manifests/helm/flink-sql-gateway/0.1.0/CUSTOM-README.md rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/Chart.yaml (95%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/README.md (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/custom-values.yaml (95%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/_helpers.tpl (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/configmaps.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/flink-session-cluster.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/flink-sql-gateway.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/hadoop-config.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/rbac.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/services.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/templates/sql-client.yaml (100%) rename manifests/helm/flink-sql-gateway/{ => 0.1.0}/values.yaml (100%) diff --git a/manifests/helm/flink-kubernetes-operator/BUILD-README.md b/manifests/helm/flink-kubernetes-operator/1.13.0/BUILD-README.md similarity index 100% rename from manifests/helm/flink-kubernetes-operator/BUILD-README.md rename to manifests/helm/flink-kubernetes-operator/1.13.0/BUILD-README.md diff --git a/manifests/helm/flink-kubernetes-operator/CUSTOM-README.md b/manifests/helm/flink-kubernetes-operator/1.13.0/CUSTOM-README.md similarity index 100% rename from manifests/helm/flink-kubernetes-operator/CUSTOM-README.md rename to manifests/helm/flink-kubernetes-operator/1.13.0/CUSTOM-README.md diff --git a/manifests/helm/flink-sql-gateway/0.1.0/BUILD-README.md b/manifests/helm/flink-sql-gateway/0.1.0/BUILD-README.md new file mode 100644 index 0000000..58e3321 --- /dev/null +++ b/manifests/helm/flink-sql-gateway/0.1.0/BUILD-README.md @@ -0,0 +1,100 @@ +# flink-sql-gateway 버전 갱신 가이드 + +## 1. git 작업 환경 구성 + +- DIP 카탈로그 git 다운로드 +``` +$ git clone https://github.com/paasup/dip-catalog.git +``` + +- 작업 브랜치로 체크아웃 +``` +$ git checkout -b update-flink-sql-gateway/0.1.0 +``` + +## 2. helm 차트 개발 및 업데이트 + +- 현재 flink-sql-gateway 차트는 직접 작성하여 업데이트 중입니다. +- 기존 오픈소스 차트를 기반으로 하지 않고, 프로젝트 요구사항에 맞게 커스텀 개발하고 있습니다. + +### 2.1 차트 구조 +``` +flink-sql-gateway/0.1.0/ +├── Chart.yaml # 차트 메타데이터 +├── values.yaml # 기본 설정값 +├── custom-values.yaml # 커스텀 설정값 +├── BUILD-README.md # 빌드 가이드 (본 파일) +├── CUSTOM-README.md # 배포 가이드 +├── deployment.md # 상세 배포 문서 +└── templates/ + ├── _helpers.tpl # 헬퍼 템플릿 + ├── configmaps.yaml # 설정 맵 + ├── flink-session-cluster.yaml # Flink 클러스터 + ├── flink-sql-gateway.yaml # SQL Gateway + ├── rbac.yaml # 권한 설정 + ├── services.yaml # 서비스 정의 + └── sql-client.yaml # SQL 클라이언트 +``` + +### 2.2 개발 중인 주요 기능 +- Apache Flink SQL Gateway 배포 +- Flink Session Cluster 통합 +- 외부 Python 클라이언트 접근 최적화 +- SSL/TLS 인증서 지원 +- Kafka 연동 설정 +- MinIO/S3 스토리지 연동 + +## 3. git push 및 tag 추가 + +- 갱신작업 진행후 commit +```sh +$ git add . +$ git commit -m "update flink-sql-gateway/0.1.0" +``` + +- main 브랜치에 체크아웃 후 merge +```sh +$ git checkout main +$ git merge update-flink-sql-gateway/0.1.0 +``` + +- git에 push 후 작업 브랜치 삭제 +```sh +$ git push -u origin main +$ git branch -d update-flink-sql-gateway/0.1.0 +``` + +- git tag 추가 후 push +```sh +$ git tag flink-sql-gateway/0.1.0 +$ git push origin flink-sql-gateway/0.1.0 +``` + +## 4. 차트 버전 정보 + +- flink-sql-gateway/0.1.0 + - Apache Flink SQL Gateway 2.0.1 기반 + - 외부 Python 클라이언트 접근에 최적화된 구성 + - SSL/TLS 인증서 및 Truststore 지원 + - Kafka, MinIO 연동 설정 포함 + - 서비스 배포를 위하여 custom-values.yaml에 정의하였다. + - 차트의 빌드 방법과 배포 방법을 BUILD-README.md, CUSTOM-README.md 문서에 작성하였다. + +## 5. 개발 참고사항 + +### 5.1 커스텀 이미지 +- 기본 이미지: `paasup/flink-sql:2.0.1` +- Kafka 커넥터 및 SSL 인증서 지원 포함 + +### 5.2 주요 의존성 +- Flink Kubernetes Operator 필요 +- Kubernetes 1.20+ 권장 +- Helm 3.x 필요 + +### 5.3 보안 설정 +- Truststore 기반 SSL/TLS 인증서 관리 +- Kubernetes Secret을 통한 인증서 배포 +- 환경 변수를 통한 보안 정보 주입 + +## 참고) 관련 문서 +- [Flink SQL Gateway 공식 문서](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql-gateway/) \ No newline at end of file diff --git a/manifests/helm/flink-sql-gateway/0.1.0/CUSTOM-README.md b/manifests/helm/flink-sql-gateway/0.1.0/CUSTOM-README.md new file mode 100644 index 0000000..7ccbd6a --- /dev/null +++ b/manifests/helm/flink-sql-gateway/0.1.0/CUSTOM-README.md @@ -0,0 +1,262 @@ +# Flink SQL Gateway 배포 + +## 1. 배포 방법 + +- 명령어 + + ``` sh + $ helm upgrade --install flink-sql-gateway ./ \ + --namespace flink-sql-test \ + --create-namespace \ + -f custom-values.yaml + ``` + +## 2. custom-values.yaml 설명 + +- custom-values.yaml에 정의된 값에 대한 설명이다. + +### 1) 글로벌 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `global.namespace` | 배포할 네임스페이스 | `flink-sql-test` | +| `global.image.repository` | Flink SQL Gateway 이미지 저장소 | `paasup/flink-sql` | +| `global.image.tag` | Flink SQL Gateway 이미지 태그 | `2.0.1` | +| `global.image.pullPolicy` | 이미지 풀 정책 | `IfNotPresent` | + +### 2) Flink Session Cluster 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `sessionCluster.flinkVersion` | Flink 버전 | `v2_0` | +| `sessionCluster.jobManager.resources.memory` | JobManager 메모리 할당량 | `2048m` | +| `sessionCluster.jobManager.resources.cpu` | JobManager CPU 할당량 | `1` | +| `sessionCluster.taskManager.resources.memory` | TaskManager 메모리 할당량 | `4096m` | +| `sessionCluster.taskManager.resources.cpu` | TaskManager CPU 할당량 | `2` | +| `sessionCluster.flinkConfiguration.taskmanager.numberOfTaskSlots` | TaskManager 슬롯 수 | `"4"` | + +### 3) SQL Gateway 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `sqlGateway.resources.requests.memory` | SQL Gateway 요청 메모리 | `1Gi` | +| `sqlGateway.resources.requests.cpu` | SQL Gateway 요청 CPU | `0.5` | +| `sqlGateway.resources.limits.memory` | SQL Gateway 제한 메모리 | `2Gi` | +| `sqlGateway.resources.limits.cpu` | SQL Gateway 제한 CPU | `1` | + +### 4) S3/MinIO 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `sessionCluster.flinkConfiguration.fs.s3.impl` | S3 파일시스템 구현체 | `org.apache.hadoop.fs.s3a.S3AFileSystem` | +| `sessionCluster.flinkConfiguration.fs.s3a.impl` | S3A 파일시스템 구현체 | `org.apache.hadoop.fs.s3a.S3AFileSystem` | +| `sessionCluster.flinkConfiguration.fs.s3a.endpoint` | MinIO 엔드포인트 | `"https://minio.example.org"` | +| `sessionCluster.flinkConfiguration.fs.s3a.path.style.access` | Path Style Access 사용 여부 | `"true"` | + +### 5) SQL Client 설정 +| Name | 설명 | 기본값 | +| ---------------------- | ------------------------------------------------------------ | ------ | +| `sqlClient.enabled` | SQL Client 활성화 여부 | `true` | + +## 3. 사설 인증서 등록 + +### 3.1 Kubernetes 클러스터 +- Kubernetes 1.20+ 권장 +- 충분한 리소스 (최소 10GB 메모리, 5 CPU 코어) + +### 3.2 필수 Operator 설치 +- Flink Kubernetes Operator 설치 필요 + ```bash + helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.8.0/ + helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator + ``` + +### 3.3 SSL/TLS 인증서 설정 +- 외부 시스템(Kafka, MinIO 등)과의 HTTPS 통신을 위한 사설 인증서 등록이 필요합니다. +- Flink의 모든 컴포넌트(JobManager, TaskManager, SQL Gateway)에서 동일한 Truststore를 사용합니다. + +#### 3.3.1 인증서 파일 준비 +포함되어야 할 인증서들: + +| Namespace | Secret Name | 파일 | 설명 | +|-----------|-------------|------|------| +| `kafka-cluster` | `kafka-cluster-cluster-ca-cert` | `ca.crt` | Kafka 클러스터 CA 인증서 | +| `cert-manager` | `root-ca-secret` | `ca.crt` | Ingress에 사용되는 Root CA 인증서 | + +#### 3.3.2 인증서 추출 및 Truststore 생성 +```bash +# 1. Kafka CA 인증서 추출 +kubectl get secret kafka-cluster-cluster-ca-cert -n kafka-cluster -o jsonpath='{.data.ca\.crt}' | base64 -d > kafka-ca.crt + +# 2. Root CA 인증서 추출 +kubectl get secret root-ca-secret -n cert-manager -o jsonpath='{.data.ca\.crt}' | base64 -d > root-ca.crt + +# 3. 빈 truststore 생성 +keytool -genkeypair -alias temp -keystore ca.p12 -storetype PKCS12 -storepass YOUR_TRUSTSTORE_PASSWORD -keypass YOUR_TRUSTSTORE_PASSWORD -dname "CN=temp" -keyalg RSA +keytool -delete -alias temp -keystore ca.p12 -storetype PKCS12 -storepass YOUR_TRUSTSTORE_PASSWORD + +# 4. Kafka CA 인증서 추가 +keytool -import -trustcacerts -keystore ca.p12 \ + -storetype PKCS12 \ + -storepass YOUR_TRUSTSTORE_PASSWORD \ + -alias kafka-ca \ + -file kafka-ca.crt \ + -noprompt + +# 5. Root CA 인증서 추가 +keytool -import -trustcacerts -keystore ca.p12 \ + -storetype PKCS12 \ + -storepass YOUR_TRUSTSTORE_PASSWORD \ + -alias root-ca \ + -file root-ca.crt \ + -noprompt + +# 6. truststore 내용 확인 +keytool -list -keystore ca.p12 -storetype PKCS12 -storepass YOUR_TRUSTSTORE_PASSWORD + +# 7. Kubernetes Secret 생성 +kubectl create secret generic truststore-secret \ + --from-file=ca.p12=ca.p12 \ + --from-literal=ca.password=YOUR_TRUSTSTORE_PASSWORD \ + -n flink-sql-test +``` + +#### 3.3.3 custom-values.yaml에서 SSL 설정 적용 + +```yaml +# Flink Session Cluster SSL 설정 +sessionCluster: + flinkConfiguration: + # JVM SSL 시스템 속성 설정 + env.java.opts.jobmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" + env.java.opts.taskmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" + + # 환경 변수 설정 + env: + - name: TRUSTSTORE_PASSWORD + valueFrom: + secretKeyRef: + name: truststore-secret + key: ca.password + + # 볼륨 마운트 설정 + volumeMounts: + - name: truststore-certs + mountPath: /opt/flink/certs + readOnly: true + + # 볼륨 정의 + volumes: + - name: truststore-certs + secret: + secretName: truststore-secret + +# SQL Gateway SSL 설정 +sqlGateway: + flinkConfiguration: + # JVM SSL 시스템 속성 설정 + env.java.opts: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" + + # 환경 변수, 볼륨 마운트, 볼륨 설정 (sessionCluster와 동일) + env: + - name: TRUSTSTORE_PASSWORD + valueFrom: + secretKeyRef: + name: truststore-secret + key: ca.password + volumeMounts: + - name: truststore-certs + mountPath: /opt/flink/certs + readOnly: true + volumes: + - name: truststore-certs + secret: + secretName: truststore-secret + +# SQL Client SSL 설정 (선택적) +sqlClient: + enabled: true + env: + - name: TRUSTSTORE_PASSWORD + valueFrom: + secretKeyRef: + name: truststore-secret + key: ca.password + volumeMounts: + - name: truststore-certs + mountPath: /opt/flink/certs + readOnly: true + volumes: + - name: truststore-certs + secret: + secretName: truststore-secret +``` + +#### 3.3.4 SSL 설정 동작 원리 +1. **Secret 생성**: Truststore 파일(`ca.p12`)과 패스워드를 Kubernetes Secret으로 생성 +2. **볼륨 마운트**: Secret을 각 컴포넌트의 `/opt/flink/certs` 경로에 마운트 +3. **환경 변수 주입**: Secret의 패스워드를 `TRUSTSTORE_PASSWORD` 환경 변수로 주입 +4. **JVM 옵션 설정**: Java 시스템 속성을 통해 SSL Truststore 경로와 설정 지정 +5. **SSL 통신**: 외부 시스템(Kafka, MinIO 등)과의 HTTPS 통신 시 Truststore 사용 + +## 4. 배포 후 확인 + +### 4.1 Pod 상태 확인 +```bash +kubectl get pods -n flink-sql-test +``` + +### 4.2 서비스 접근 +```bash +# SQL Gateway API 접근을 위한 포트 포워딩 +kubectl port-forward svc/flink-sql-gateway 8083:8083 -n flink-sql-test + +# Flink Web UI 접근을 위한 포트 포워딩 +kubectl port-forward svc/flink-session-cluster-rest 8081:8081 -n flink-sql-test +``` + +### 4.3 API 테스트 +- pod 내 실행 +```bash +# SQL Gateway 정보 확인 +curl http://localhost:8083/v1/info + +# 세션 생성 테스트 +curl -X POST http://localhost:8083/v1/sessions \ + -H "Content-Type: application/json" \ + -d '{"properties": {"execution.runtime-mode": "streaming"}}' +``` + +## 5. Python 클라이언트 사용 예제 + +```python +import requests +import json + +# SQL Gateway 연결 +gateway_url = "http://localhost:8083" + +# 1. 세션 생성 +response = requests.post(f"{gateway_url}/v1/sessions") +session_handle = response.json()["sessionHandle"] +print(f"Session created: {session_handle}") + +# 2. SQL 실행 +sql_request = { + "statement": "SHOW TABLES" +} +response = requests.post( + f"{gateway_url}/v1/sessions/{session_handle}/statements", + json=sql_request +) +operation_handle = response.json()["operationHandle"] + +# 3. 결과 조회 +result_response = requests.get( + f"{gateway_url}/v1/sessions/{session_handle}/operations/{operation_handle}/result/0" +) +print("Query result:", result_response.json()) +``` + +## 6. 주요 특징 + +- **외부 Python 클라이언트 최적화**: Port Forward를 통한 직접 REST API 접근 +- **SSL/TLS 지원**: 사설 인증서를 사용하는 외부 시스템 연동 지원 +- **S3/MinIO 연동**: 객체 스토리지 연동을 위한 설정 포함 +- **유연한 구성**: 필요한 컴포넌트만 선택적 활성화 가능 \ No newline at end of file diff --git a/manifests/helm/flink-sql-gateway/Chart.yaml b/manifests/helm/flink-sql-gateway/0.1.0/Chart.yaml similarity index 95% rename from manifests/helm/flink-sql-gateway/Chart.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/Chart.yaml index 89ac131..23a89da 100644 --- a/manifests/helm/flink-sql-gateway/Chart.yaml +++ b/manifests/helm/flink-sql-gateway/0.1.0/Chart.yaml @@ -2,7 +2,7 @@ annotations: category: Analytics licenses: Apache-2.0 apiVersion: v2 -appVersion: 1.20.0 +appVersion: 2.0.1 description: A Helm chart for Flink SQL Gateway with Kafka integration home: https://github.com/your-org/flink-sql-gateway-helm keywords: diff --git a/manifests/helm/flink-sql-gateway/README.md b/manifests/helm/flink-sql-gateway/0.1.0/README.md similarity index 100% rename from manifests/helm/flink-sql-gateway/README.md rename to manifests/helm/flink-sql-gateway/0.1.0/README.md diff --git a/manifests/helm/flink-sql-gateway/custom-values.yaml b/manifests/helm/flink-sql-gateway/0.1.0/custom-values.yaml similarity index 95% rename from manifests/helm/flink-sql-gateway/custom-values.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/custom-values.yaml index 38acef4..db4d3f7 100644 --- a/manifests/helm/flink-sql-gateway/custom-values.yaml +++ b/manifests/helm/flink-sql-gateway/0.1.0/custom-values.yaml @@ -27,8 +27,8 @@ sessionCluster: # security.ssl.internal.truststore: "/opt/flink/certs/ca.p12" # security.ssl.internal.truststore-type: "PKCS12" # JVM SSL system properties for JobManager and TaskManager - env.java.opts.jobmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=TBnYvX5Hp7y2" - env.java.opts.taskmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=TBnYvX5Hp7y2" + env.java.opts.jobmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" + env.java.opts.taskmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" # Iceberg REST Catalog SSL Configuration table.exec.resource.default-parallelism: "2" @@ -67,7 +67,7 @@ sqlGateway: flinkConfiguration: # JVM SSL system properties for SQL Gateway # env.java.opts.all: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=${TRUSTSTORE_PASSWORD}" - env.java.opts: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=TBnYvX5Hp7y2" + env.java.opts: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD" env: - name: TRUSTSTORE_PASSWORD valueFrom: diff --git a/manifests/helm/flink-sql-gateway/templates/_helpers.tpl b/manifests/helm/flink-sql-gateway/0.1.0/templates/_helpers.tpl similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/_helpers.tpl rename to manifests/helm/flink-sql-gateway/0.1.0/templates/_helpers.tpl diff --git a/manifests/helm/flink-sql-gateway/templates/configmaps.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/configmaps.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/configmaps.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/configmaps.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/flink-session-cluster.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/flink-session-cluster.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/flink-session-cluster.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/flink-session-cluster.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/flink-sql-gateway.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/flink-sql-gateway.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/flink-sql-gateway.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/flink-sql-gateway.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/hadoop-config.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/hadoop-config.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/hadoop-config.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/hadoop-config.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/rbac.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/rbac.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/rbac.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/rbac.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/services.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/services.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/services.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/services.yaml diff --git a/manifests/helm/flink-sql-gateway/templates/sql-client.yaml b/manifests/helm/flink-sql-gateway/0.1.0/templates/sql-client.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/templates/sql-client.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/templates/sql-client.yaml diff --git a/manifests/helm/flink-sql-gateway/values.yaml b/manifests/helm/flink-sql-gateway/0.1.0/values.yaml similarity index 100% rename from manifests/helm/flink-sql-gateway/values.yaml rename to manifests/helm/flink-sql-gateway/0.1.0/values.yaml