コンテンツにスキップ

【HCP Terraform】: workspace を削除する

概要

hcp-terraform-operator で管理する workspace は、Kubernetes のリソースを削除しても、デフォルトでは HCP Terraform 上に残る。spec.deletionPolicyを設定して、Kubernetes 側の削除に合わせて workspace も削除する方法を紹介する。

解決方法

デフォルトの設定だとkubectl delete ...のように Kubernetes 上でリソースを削除しても、HCP Terraform 上では workspace が削除されない。 Kubernetes 上でリソースを削除した時に、HCP Terraform 上でも workspace を削除するようにするには、spec.deletionPolicyを設定する。 ちなみに、HCP Terraform 上で workspace が残っても UI 操作で削除できる。

HCP Terraform で workspace を作成する

HCP Terraform で workspace を作成するまでの手順をまとめる。

setup hcp-terraform-operator

1
2
3
4
5
6
$ helm repo add hashicorp https://helm.releases.hashicorp.com
$ helm repo update
$ helm install demo hashicorp/hcp-terraform-operator \
  --version 2.8.0 \
  --namespace tfc-operator-system \
  --create-namespace

create secret

1
2
3
$ kubectl create secret generic tfc-operator \
  --namespace tfc-operator-system \
  --from-literal=token=<token>

create workspace

apiVersion: app.terraform.io/v1alpha2
kind: Workspace
metadata:
  name: this
spec:
  organization: kubernetes-operator # set your organization
  token:
    secretKeyRef:
      name: tfc-operator
      key: token
  name: workspace-demo
  description: Kubernetes Operator Automated Workspace
  applyMethod: auto
  terraformVersion: 1.3.2
  executionMode: remote
  terraformVariables:
    - name: counter
      hcl: true
      value: >
        [
        1,
        2,
        4,
        8,
        16,
        32
        ]
  tags:
    - demo

Kubernetes 上でリソースを消した時に、HCP Terraform 上でも workspace を削除するようにするには、spec.deletionPolicyを設定する。

参考