1. HCP Terraform(旧 Terraform Cloud)の機能と仕組み

    Terraform / HCP Terraform

    HCP Terraform は、Terraform の plan と apply を HashiCorp のクラウドで実行し、state と認証情報もそこに置くサービス。HCP Terraform とは何か、何ができるか、どういう仕組みで動くかを、公式ドキュメントをもとに整理する。

  2. Tilt で DB の起動と初期データの投入をまとめる

    Kubernetes / Tilt

    Tilt で、Go で書いた API と一緒に PostgreSQL を kind のクラスタで動かす。resource_deps で DB の Pod が Ready になるのを待ってから初期データを入れ、そのあと API を起動する。初期データの投入は local_resource で行い、trigger mode を manual にして管理画面のボタンで入れ直す。tilt down で DB も含めて削除されることを確認する。

  3. Tilt の Live Update: image を作り直さずにコンテナを更新する

    Kubernetes / Tilt

    Tilt の Live Update を使い、Go で書いた API のソースの変更を、image を作り直さずに kind のクラスタで動いているコンテナへ反映する。ローカルの開発環境で go build した実行ファイルを sync でコンテナにコピーし、restart_process 拡張でプログラムを起動し直す。保存のあとも Pod の名前・RESTARTS・image のタグが変わらないことを確認する。

  4. Tiltfile と tilt up: Kubernetes 上のアプリにソースの変更を反映する

    Kubernetes / Tilt

    Tilt を使い、自作の API を kind のクラスタで動かす。Tiltfile に docker_build・k8s_yaml・k8s_resource の 3 行を書いて tilt up を実行し、ソースを 1 行変えて保存するだけで image の作成から Pod の入れ替えまでが自動で行われることを確認する。開発用と判定できないクラスタでは Tilt が止まることも、kubeconfig の名前だけを変えて確かめる。

  5. Tilt の概要と役割

    Kubernetes / Tilt

    Tilt は、ローカルの開発環境で動き、アプリのソースを保存するたびに image の作成・Kubernetes への反映・port-forward を自動でやり直すツール。Tilt とは何か、何ができるか、どういう仕組みで動くかを、公式ドキュメントをもとに整理する。

  6. Argo CD と Kustomize で dev と prod 環境を作る

    Kubernetes / ArgoCD

    同じアプリを dev と prod の 2 つの環境に入れる。Kustomize の base と overlay で共通の YAML と環境ごとの差分を分け、Argo CD の Application を環境ごとに作る。sops で暗号化した Secret を Kustomize と同じディレクトリに置けない理由と、その回避のしかたも整理する。

  7. Argo CD で Secret を暗号化して反映する

    Kubernetes / ArgoCD

    Kubernetes の Secret の値を sops と age で暗号化して Git に置き、Argo CD の Config Management Plugin(sops の sidecar)で復号してクラスタに反映する。Argo CD の公式ドキュメントが推奨する方式との違い、鍵・暗号文・平文がそれぞれどこにあるかも整理する。

  8. Argo CD で Kubernetes 上のアプリを公開する

    Kubernetes / ArgoCD

    Argo CD の Application が指す Git のディレクトリに ConfigMap・Service・Ingress の YAML を追加し、Deployment を変更して push するだけで、Ingress Controller(Contour)経由で http://localhost/ にページが表示される状態にする。ConfigMap の内容を Git で変えたときに、Pod を入れ替えずにページが変わることも確認する。

  9. Argo CD の自動同期: automated・selfHeal・prune

    Kubernetes / ArgoCD

    Argo CD の Application に syncPolicy の設定を 3 つ追加し、Git に push するだけでクラスタの中身が Git の内容に合う状態にする。automated で push が自動で反映されること、selfHeal で kubectl scale した Pod の数が Git の数に戻ること、prune で Git から消したファイルの Deployment がクラスタからも消えることを確認する。

Ritolabo