Skip to content

1. API Backendリソースの削除

デプロイした API Backend リソースの削除手順について解説します。

1-1. QVS Configの編集

  1. QVS Config に記述したリソース宣言をコメントアウトします。

Qmonus Value Stream では、リポジトリに登録されている QVS Config の内容を編集して AssemblyLine を再実行することで、リソースを削除できます。今回は、本チュートリアルで作成した以下の QVS Config を編集します。

  • /path/to/repository/.valuestream/gcp-api-backend.yaml
  • /path/to/repository/.valuestream/gcp-shared-infra.yaml

削除するリソースは、QVS Config の designPatterns フィールドに記載された Cloud Native Adapter の内容をコメントアウトすることで指定できます。 ここでは、本チュートリアルで作成したリソースを削除するため、以下のように QVS Config を編集します。

yaml
params:
  - name: appName
    type: string
  - name: gcpProjectId
    type: string
  - name: dnsZoneProjectId
    type: string
  - name: dnsZoneName
    type: string
  - name: dnsARecordSubdomain
    type: string
  - name: mysqlInstanceId
    type: string
  - name: mysqlDatabaseName
    type: string
  - name: mysqlUserName
    type: string
  - name: k8sNamespace
    type: string
  - name: imageName
    type: string
  - name: port
    type: string
  - name: mysqlInstanceIpAddress
    type: string
  - name: env1
    type: string
  - name: cloudArmorAllowedSourceIps
    type: array
modules:
  - name: qmonus.net/adapter/official
    revision: v0.26.0
designPatterns:
-  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend
-    params:
-      appName: $(params.appName)
-      mysqlInstanceIpAddress: $(params.mysqlInstanceIpAddress)
-      dnsZoneProjectId: $(params.dnsZoneProjectId)
-      gcpProjectId: $(params.gcpProjectId)
-      mysqlDatabaseName: $(params.mysqlDatabaseName)
-      mysqlUserName: $(params.mysqlUserName)
-      dnsARecordSubdomain: $(params.dnsARecordSubdomain)
-      mysqlInstanceId: $(params.mysqlInstanceId)
-      dnsZoneName: $(params.dnsZoneName)
-      imageName: $(params.imageName)
-      k8sNamespace: $(params.k8sNamespace)
-      port: $(params.port)
-      environmentVariables:
-        - TLS_OPTION: $(params.env1)
-      cloudArmorAllowedSourceIps:
-        - $(params.cloudArmorAllowedSourceIps[*])
+#  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend
+#    params:
+#      appName: $(params.appName)
+#      mysqlInstanceIpAddress: $(params.mysqlInstanceIpAddress)
+#      dnsZoneProjectId: $(params.dnsZoneProjectId)
+#      gcpProjectId: $(params.gcpProjectId)
+#      mysqlDatabaseName: $(params.mysqlDatabaseName)
+#      mysqlUserName: $(params.mysqlUserName)
+#      dnsARecordSubdomain: $(params.dnsARecordSubdomain)
+#      mysqlInstanceId: $(params.mysqlInstanceId)
+#      dnsZoneName: $(params.dnsZoneName)
+#      imageName: $(params.imageName)
+#      k8sNamespace: $(params.k8sNamespace)
+#      port: $(params.port)
+#      environmentVariables:
+#        - TLS_OPTION: $(params.env1)
+#      cloudArmorAllowedSourceIps:
+#        - $(params.cloudArmorAllowedSourceIps[*])
  - pattern: qmonus.net/adapter/official/pipeline/scan:trivyGcp
yaml
params:
  - name: appName
    type: string
  - name: gcpProjectId
    type: string
  - name: dnsZoneProjectId
    type: string
  - name: dnsZoneName
    type: string
  - name: dnsARecordSubdomain
    type: string
  - name: mysqlInstanceId
    type: string
  - name: mysqlDatabaseName
    type: string
  - name: mysqlUserName
    type: string
  - name: k8sNamespace
    type: string
  - name: imageName
    type: string
  - name: port
    type: string
  - name: mysqlInstanceIpAddress
    type: string
  - name: env1
    type: string
  - name: cloudArmorAllowedSourceIps
    type: array
modules:
  - name: qmonus.net/adapter/official
    revision: v0.26.0
designPatterns:
#  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend
#    params:
#      appName: $(params.appName)
#      mysqlInstanceIpAddress: $(params.mysqlInstanceIpAddress)
#      dnsZoneProjectId: $(params.dnsZoneProjectId)
#      gcpProjectId: $(params.gcpProjectId)
#      mysqlDatabaseName: $(params.mysqlDatabaseName)
#      mysqlUserName: $(params.mysqlUserName)
#      dnsARecordSubdomain: $(params.dnsARecordSubdomain)
#      mysqlInstanceId: $(params.mysqlInstanceId)
#      dnsZoneName: $(params.dnsZoneName)
#      imageName: $(params.imageName)
#      k8sNamespace: $(params.k8sNamespace)
#      port: $(params.port)
#      environmentVariables:
#        - TLS_OPTION: $(params.env1)
#      cloudArmorAllowedSourceIps:
#        - $(params.cloudArmorAllowedSourceIps[*])
  - pattern: qmonus.net/adapter/official/pipeline/scan:trivyGcp
yaml
params:
  - name: appName
    type: string
  - name: gcpProjectId
    type: string
modules:
  - name: qmonus.net/adapter/official
    revision: v0.26.0
designPatterns:
-  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend/sharedInfrastructure
-    params:
-      appName: $(params.appName)
-      gcpProjectId: $(params.gcpProjectId)
+#  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend/sharedInfrastructure
+#    params:
+#      appName: $(params.appName)
+#      gcpProjectId: $(params.gcpProjectId)
yaml
params:
  - name: appName
    type: string
  - name: gcpProjectId
    type: string
modules:
  - name: qmonus.net/adapter/official
    revision: v0.26.0
designPatterns:
#  - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend/sharedInfrastructure
#    params:
#      appName: $(params.appName)
#      gcpProjectId: $(params.gcpProjectId)
  1. 変更をステージに追加します。
git add .valuestream/gcp-shared-infra.yaml .valuestream/gcp-api-backend.yaml
  1. リポジトリに変更をコミットします。
git commit -m "Delete api backend resources"
  1. リポジトリに変更をプッシュします。
git push
  1. Git コミットのハッシュ値を取得します。
git rev-parse HEAD

1-2. AssemblyLineの実行

本チュートリアルでは、先に gcp-shared-infra の AssemblyLine を実行して基盤となるクラウドリソースをデプロイした後、gcp-api-backend の AssemblyLine を実行して API Backend をデプロイしました。 このため、リソースの削除においては、先に gcp-api-backend の AssemblyLine を実行して API Backend のリソースを削除した後、gcp-shared-infra の AssemblyLine を実行して基盤となるクラウドリソースを削除する、という順番で実施します。

  1. 左のメニュー一覧の AssemblyLine をクリックして、AssemblyLine 一覧ページに移動します。

  2. チュートリアルで作成したgcp-api-backendのAssemblyLineを選択します。

  3. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: 1-1で取得した Git コミットのハッシュ値
    • imageTagName: backend
  4. AssemblyLine の実行が完了したら、ログを確認します。

    削除に成功すると、deploy Pipeline の deploy Task の step-deploy Step のログから、リソースが削除されたことを確認できます。

    API Backendリソースの削除手順

    ログの以下の箇所から、削除されたリソースの総数を確認できます。

    Resources:
        - 18 deleted
        1 unchanged

    1 unchanged のリソースについては、Qmonus Value Stream の仕様上出力されているもので、デプロイされたユーザのリソースの削除には影響ありません。

  5. AssemblyLine 一覧ページに移動して、azure-shared-infra の AssemblyLine を選択します。

  6. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: 1-1で取得した Git コミットのハッシュ値
  7. AssemblyLine の実行が完了したら、ログを確認します。

    削除に成功すると、deploy Pipeline の deploy Task の step-deploy Step のログから、リソースが削除されたことを確認できます。

    API Backendリソースの削除手順

    ログの以下の箇所から、削除されたリソースの総数を確認できます。

    Resources:
        - 28 deleted
        1 unchanged
  8. GCPにログインして、本チュートリアルで作成したリソースが削除されていることを確認します。

以上で、API Backend リソースの削除は完了です。