---
title: "Terraform に Helm チャートを組み込む | grasys blog"
url: "https://blog.grasys.io/post/te-watanabe/integrating-helm-terraform"
description: "はじめに 弊社では、インフラ構築に Terraform を使用しています。 Terraform は クラウド プラットフォームのリソースを作成するため、provider と呼ばれるプラグインを利用する必要があります。 Google Cloud のリソースを作成する場合は google provider を使用します。…"
---

# Terraform に Helm チャートを組み込む

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[te.watanabe](/authors/te-watanabe/)
-   公開日：2026年5月27日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#GKE](/tags/gke/)[#Google Cloud](/tags/google-cloud/)[#Helm](/tags/helm/)[#Kubernetes](/tags/kubernetes/)[#Terraform](/tags/terraform/)

![Terraform に Helm チャートを組み込む](/_astro/hero.C84Lq2XV_8leI3.webp)

## はじめに

弊社では、インフラ構築に Terraform を使用しています。

Terraform は クラウド プラットフォームのリソースを作成するため、provider と呼ばれるプラグインを利用する必要があります。

Google Cloud のリソースを作成する場合は [google provider](https://registry.terraform.io/providers/hashicorp/google/latest) を使用します。

provider はクラウド プラットフォームのリソース構築だけでなく、他にも使い方があります。

今回は Google Kubernetes Engine のクラスタへ、Terraform と Helm provider を組み合わせてソフトウェアをインストールする方法をご紹介します。

## Helm provider を使用するメリット

[Helm](https://helm.sh/ja/) は、Kubernetes のパッケージマネージャーです。  
Kubernetes アプリケーションを作成するために必要な情報をチャートと呼ばれるパッケージにまとめる事で、複雑な Kubernetes アプリケーションのインストール、更新などを管理しやすくします。

Google Cloud の Google Kubernetes Engine クラスタを構築する際、google provider はクラスタとノードプールを作成するまでを可能にしてくれます。  
そこに、Helm provider を追加する事で、構築したクラスタにソフトウェアをインストールすることができます。

Terraform で構築するインフラと、基盤としてインストールするソフトウェアを Terraform で一括管理、設定することができ、構築の手間が減るのが嬉しいところです。

## 使用例

案件における使用例として、Terraform で構築した Google Kubernetes Engine クラスタに Helm で Agones をインストールする構成があります。

Agones は、ゲームサーバーのホスティングやスケーリングを行うプラットフォームソフトウェアです。  
Agones についてはこちらの [過去記事](https://blog.grasys.io/post/te-watanabe/agones-gameserver/) をご参照ください

Agones は Helm コマンドでインストールする際、以下のようなコマンドを必要とします。  
([https://agones.dev/site/docs/installation/install-agones/helm/](https://agones.dev/site/docs/installation/install-agones/helm/) より引用)

Plain textcontent\_copy

```
helm repo add agones https://agones.dev/chart/stable
helm repo update
helm install my-release --namespace agones-system --create-namespace agones/agones
```

こちらを、Terraform コードに組み込むと下記のようなコードになります。

Plain textcontent\_copy

```
terraform {
  required_providers {
    # google provider を宣言
    google = {
      source  = "hashicorp/google"
      version = "7.33.0"
    }
    # helm provider を宣言
    helm = {
      source  = "hashicorp/helm"
      version = "3.21.0"
    }
  }
}

data "google_client_config" "default" {
}

resource "google_container_cluster" "default" {
# GKE クラスタの宣言部、長いため省略
}

provider "helm" {
  # Terraform がクラスタに対して Helm チャートのインストールを実施するために必要な認証情報
  kubernetes {
    host  = "https://${data.google_container_cluster.default.endpoint}"
    token = data.google_client_config.default.access_token
    cluster_ca_certificate = base64decode(
      data.google_container_cluster.default.master_auth[0].cluster_ca_certificate,
    )
  }
}

resource "helm_release" "agones" {
  name             = "agones"
  repository       = "https://agones.dev/chart/stable"
  chart            = "agones"
  # version          = <agones version> 特定バージョンが必要な場合は記載する
  namespace        = "agones-system"
  create_namespace = true
}
```

Helm provider に GKE クラスタの認証情報を渡すのがポイントです。

## まとめ

Helm チャートを Terraform で管理すると、インフラと、基盤としてインストールするソフトウェアを一括で管理することができ、便利です。

Helm チャートでインストールできる Kubernetes アプリケーションは多種多様です。

どんなアプリケーションが Helm で提供されているか気になった方は、まずは CNCF がホストしている Web サイト、Artifact Hub で調べてみるのがオススメです。

[https://artifacthub.io](https://artifacthub.io)

## この記事を書いた人

[![](/_astro/noicon.CTHOhNiB_Z24aAgM.webp)](/authors/te-watanabe/)

### [te.watanabe](/authors/te-watanabe/)

te.watanabeのプロフィールと執筆記事をご覧いただけます。

[プロフィールと記事一覧](/authors/te-watanabe/)