Chart 개발 흐름 정리

  1. helm create로 chart template을 생성하고, 의존성 chart를 추가해둔다.

  2. 완성된 k8s manifest files을 준비한다.

  3. 1.에서 변수화 할 수 있는 부분을 마킹한다.

  4. 변수화 할 수 있는 부분을 values.yaml에 작성하고, 변수화 된 부분을 template화 한다.

    (+ helm hook이 필요한 부분이 있는지 생각해본다.)

  5. NOTES.txt을 작성한다.

  6. Chart.yaml에 Chart에 대한 metadata를 작성한다.

  7. 작성한 chart로 release 하여 동작확인한다.

  8. helm 패키징하고 배포한다.

작성해두었던 manifest file에서 변수화 할 수 있는 부분 마킹하기

configmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-env
data:
  DEBUG: "False"
  ALLOWED_HOSTS: "wrtn.lsh23.site,127.0.0.1"
  DB_NAME: "wrtn_dev"
  DB_USER: "sehyeong"
  DB_PASSWORD: "sehyeong1!"
  DB_HOST: "10.10.194.32"
  DB_PORT: "3306"

service.yml

apiVersion: v1
kind: Service
metadata:
  name: wrtn-django
  labels:
    app: wrtn
spec:
  ports:
    - name: web-port
      port: 8080
      targetPort: 8080
  selector:
    app: wrtn
    tier: was

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: wrtn-django-ingress-route
spec:
  entryPoints:
    - websecure
  routes:
  - match: Host(`wrtn.lsh23.site`)
    kind: Rule
    services:
    - name: wrtn-django
      port: 8080
  tls:
    secretName: lsh23.site

deployment.yml