OpenTacoでTerraformリソースを削除してみた

OpenTacoでTerraformリソースを削除してみた

2026.01.30

Pull Requestのコメント上では、digger plandigger applyが実行可能です。(それぞれ、terraform plan terraform apply相当のコマンド)

terraform destroy相当のコマンドは実行できません。

リソースを削除したいときは、ローカルでterraform destroyを実行するなどOpenTaco以外の手段を使う必要があります。

他に良い方法がないか探していたところ、公式ドキュメントに以下の記載がありました。

https://docs.opentaco.dev/ce/howto/destroy-manual

terraform destroy用のGitHub Actionsワークフローを作成する方法です。

今回はこちらを試してみます。

リソース削除用GitHub Actionsワークフローファイルの作成

GitHubリポジトリに以下のGitHub Actionsワークフローファイルを作成します。

.github/workflows/digger_destroy.yml
name: Digger Destroy

on:
  workflow_dispatch:
    inputs:
      project:
        description: 'Digger project to perform destroy on'
        required: true
jobs:
  destroy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    steps:
    - name: digger destroy
      uses: diggerhq/digger@vLatest
      with:
        mode: manual
        command: "digger destroy"
        project: "${{ inputs.project }}"
        setup-terraform: true
        setup-aws: true
        aws-role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
        no-backend: true
      env:
        GITHUB_CONTEXT: ${{ toJson(github) }}
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

workflow_dispatchで手動実行をトリガーにしています。

inputsでOpenTacoのプロジェクト名を受け取る形にしています。

以下の設定の場合、productionの部分がプロジェクト名になります。

digger.yml
projects:
- name: production
  dir: prod

OpenTaco経由でのリソース削除には、digger destroyコマンドを使います。

引数にプロジェクト名を渡すことで、プロジェクト単位でリソース削除が行われます。

手動トリガーを設定しており、OpenTacoからトリガーすることがないワークフローのため、no-backend: trueを設定しています。

no-backend: trueについては以下で補足しています。

https://dev.classmethod.jp/articles/open-taco-drift-detection/

動作確認: リソース削除

実際にワークフローを実行してリソース削除をやってみます。

リソース削除用のワークフローを選択します。

Run workflow -> <プロジェクト名を入力> -> Run workflowを選択します。

Digger_Destroy_·_Workflow_runs_·_msato0731_quickstart-actions-aws.png

ワークフローのログからterraform destroyが実行されリソースが削除されたことが確認できました。

Digger_Destroy_·_msato0731_quickstart-actions-aws_bbafefd.png

おわりに

OpenTacoを使ったTerraformリソースの削除方法についてでした。

Pull Requestのコメントではdigger destroyが実行できないため、GitHub Actionsワークフローで解決するアプローチを試しました。

GitHub Actionsを実行するユーザーを制御することで、リソース削除できるユーザーを制御可能です。

ワークフローの実行権限を適切に設定することで、安全なリソース削除運用が実現できますね。

参考

https://docs.opentaco.dev/ce/reference/action-inputs
https://github.com/diggerhq/digger/issues/361

この記事をシェアする

FacebookHatena blogX

関連記事