コンテンツにスキップ

【HCP Terraform】: workspace を削除する

概要

HCP Terraform のリソースを hcp-terraform-operator で管理していた。workspace を削除しようとしたところ、Kubernetes 上でリソースを削除しても、HCP Terraform 上では 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を設定する。

参考