Supported commands: ls, cd ${PATH}

Tilt at Dev Env

Dec. 7, 2021

부제: 개발 환경을 구축하려고 애쓰다.

목차

Tilt란?

Using k8s with Tilt

Using Helm with Tilt

참고

Tilt란?

“value 변경, helm chart 변경이 너무 불편합니다.”

일반적으로 쿠버네티스에 배포하는 것은

  1. 코드 작성

  2. 도커 이미지 빌드

  3. 이미지 레지스트리 푸시

  4. 쿠버네티스 팟 생성

을 반복하는 것인데 조금 더 편하게 배포할 수는 없을까요?

tilt up # Tilt Control Loop가 개발 환경을 갱신하게 하는 명령어

을 사용하면

등이 가능합니다.

Second Time, Same as the First 1

Build in Cloud 2

Using k8s with Tilt

k8s와 tilt를 함께 사용하려면 kubernetes 클러스터를 본인의 노트북 로컬에서 바로 접근할 수 있어야 합니다.

# 노트북 로컬

cat "${클러스터IP} kubernetes" | sudo tee -a /etc/hosts

cat << EOD > kubeconfig
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ${CAD}
    server: https://kubernetes:6443
  name: dev
contexts:
- context:
    cluster: dev
    user: kubernetes-admin-dev
  name: kubernetes-admin-dev@dev
current-context: kubernetes-admin-dev@dev
kind: Config
preferences: {}
users:
- name: kubernetes-admin-dev
  user:
    client-certificate-data: ${CCD}
    client-key-data: ${CKD}
EOD

그리고 tilt를 설치합니다.

brew install tilt

이제 아래와 같이 사용하실 수 있습니다.

kubectl --kubeconfig=./kubeconfig get ns

Using Helm with Tilt

이제 Tiltfile을 작성해 봅시다. 그런데 Tiltfile이란 무엇인가요?

Summary

To wrap this up, let’s have a quick recap of Tilt’s control flow:

따라서 아래와 같이 Tiltfile을 작성합니다.

cat << EOD > Tiltfile
allow_k8s_contexts('kubernetes-admin-dev@dev')

yaml = helm(
  'path/to/chart/dir',
  # The release name, equivalent to helm --name
  name='release-name',
  # The namespace to install in, equivalent to helm --namespace
  namespace='my-namespace',
  # The values file to substitute into the chart.
  values=['./path/to/chart/dir/values-dev.yaml'],
  # Values to set from the command-line
  set=['service.port=1234', 'ingress.enabled=true']
  )
k8s_yaml(yaml)
EOD

아래 명령어로 결과를 확인할 수 있습니다.

tilt up

참고