9. 나만의 헬름차트 만들기 (2)

2024. 11. 19. 23:50·devops/minikube

이제 istio-gateway차트를 만들도록 하겠다. istio에서 service-mesh를 사용하기 위해서는 virtualservice와 gateway가 세트로 움직이는데 이 2개를 세트로 서비스를 만들때마다 만드는 것은 여간 귀찮은 일이 아니다. 그래서 helm repository에다가 만들어서 추후에 계속 사용하도록 하겠다.(사실상 이게 처음에 더 귀찮다.) 그러나 앞으로 argocd가 되었든 서비스가 추가 될 때마다 이 차트를 이용하면 되므로 앞으로는 이게 더 편해질거다. 처음에만 조금 고생하는 식으로 하자. ㅠㅠ

 

처음에 devopscharts에서

$ helm create istio-gateway
$ cd istio-gateway

 

이렇게 들어가면

 

이런식으로 파일이 만들어지게 되는데

templates 폴더안에 모든 파일을 지운다. 그리고 templates폴더안에 2개의 파일을 만든다.

 

gateway.yaml

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: {{ .Values.name }}
  namespace: {{ .Release.Namespace }}
spec:
  selector:
    istio: ingressgateway
  servers:
  {{- range .Values.gatewayPort }}
  - port:
      number: {{ .number }}
      name: {{ .name }}
      protocol: {{ .protocol }}
      {{- end }}
    hosts:
    {{- range .Values.hosts }}
    - {{ . | quote }}
    {{- end }}

 

virtualservice.yaml

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: {{ .Values.name }}
  namespace: {{ .Release.Namespace }}
spec:
  hosts:
  {{- range .Values.hosts }}
  - {{ . | quote }}
  {{- end }}
  gateways:
  - {{ .Values.name }}
  http:
  {{- toYaml .Values.virtualService.http | nindent 2}}

 

 

파일을 만들고 나면 values.yaml내용을 전부 지우고 아래 내용으로 덮어 써준다.

name: istiogateway-name
hosts:
- your.domain.com

gatewayPort:
  - number: 8090
    name: http2
    protocol: HTTP2 

virtualService:
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: productpage
        port:
          number: 9080

 

 

Chart.yaml도 수정한다.

apiVersion: v2
name: istio-gateway
description: istio-gateway for kubernetes
type: application
version: 1.0.0
appVersion: "1.0.0"

 

devopscharts폴더에서 다음 명령어를 입력하게 되면

$ helm package istio-gateway

istio-gateway-1.0.0.tgz 파일이 만들어진다.

 

쓸데 없는 파일도 지워주고 repo 명령어로 index.yaml도 만들어준다.

$ rm -rf foo-0.1.0.tgz
$ rm -rf istio-gateway
$ helm repo index .

 

 

이런식으로 tgz zip 파일과 index.yaml이 만들어지는데 이 것을 main branch에 푸쉬하도록 하겠다.

차트작업은 마무리했으니 github에서 배포를 하면 된다.

 


github에 본인 레파지토리를 가면 중앙에 compare & pull request라는 것이 뜰텐데 이것을 눌러도되고 만약 이 창이 안보인다면 상단에 pull request를 눌러도된다.

 

 

Pull request를 만들도록 하자. 여기서 주의할점은 compare 브랜치를 main으로 바꿔야 한다는 점이다.

 

마지막으로 Merge pull request를 눌러서 마무리한다.

 

 

Actions를 눌러서 현재 상황을 체크해볼 수 있다. 노란불이 꺼지고 녹색불이 되면 배포가 완료된거다.

 

아래 명령어를 이용해서 helm chart가 정상적으로 배포되었는지 확인해본다.

$ helm repo update 
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ggocamping" chart repository
Update Complete. ⎈Happy Helming!⎈

$ helm search repo ggocamping
NAME                            CHART VERSION   APP VERSION     DESCRIPTION
ggocamping/istio-gateway        1.0.0           1.0.0           istio-gateway for kubernetes

 

아주 예쁘게 들어간걸 보니 기분이 매우 좋구나~

'devops > minikube' 카테고리의 다른 글

11. argocd 접속  (24) 2024.11.20
10. argocd 설치  (0) 2024.11.20
8. 나만의 헬름차트 만들기 (1)  (24) 2024.11.19
7. [Ubuntu] 서비스 등록 (systemd)  (0) 2024.11.19
6. Istio: 서비스 메쉬의 선두주자  (25) 2024.11.19
'devops/minikube' 카테고리의 다른 글
  • 11. argocd 접속
  • 10. argocd 설치
  • 8. 나만의 헬름차트 만들기 (1)
  • 7. [Ubuntu] 서비스 등록 (systemd)
꼬락이
꼬락이
ggorockee 님의 블로그 입니다.
  • 꼬락이
    꼬락이의 개발일지
    꼬락이
  • 전체
    오늘
    어제
    • 분류 전체보기 (30)
      • devops (28)
        • aws (0)
        • minikube (18)
        • go (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    k8s
    JWT
    yq
    aws
    Github
    golang
    clean-archtiecture
    Clean Architecture
    쿠버네티스
    CI
    systemd
    SWAGGER
    Github action
    Minikube
    port-forwarding
    Kubernetes
    DB 연결
    db 우회
    rds
    Teleport
    ArgoCD
    EC2
    istio
    GO
    Gorm
    argoc
    CICD
    cert-manager
    repository
    helm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
꼬락이
9. 나만의 헬름차트 만들기 (2)
상단으로

티스토리툴바