Appearance
1. API Backendリソースの削除
デプロイした API Backend リソースの削除手順について解説します。
1-1. QVS Configの編集
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 を編集します。yamlparams: - 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.38.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
yamlparams: - 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.38.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
yamlparams: - name: appName type: string - name: gcpProjectId type: string modules: - name: qmonus.net/adapter/official revision: v0.38.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)
yamlparams: - name: appName type: string - name: gcpProjectId type: string modules: - name: qmonus.net/adapter/official revision: v0.38.0 designPatterns: # - pattern: qmonus.net/adapter/official/adapters/gcp/container/kubernetes/apiBackend/sharedInfrastructure # params: # appName: $(params.appName) # gcpProjectId: $(params.gcpProjectId)
変更をステージに追加します。
git add .valuestream/gcp-shared-infra.yaml .valuestream/gcp-api-backend.yaml
リポジトリに変更をコミットします。
git commit -m "Delete api backend resources"
リポジトリに変更をプッシュします。
git push
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 を実行して基盤となるクラウドリソースを削除する、という順番で実施します。
左のメニュー一覧の AssemblyLine をクリックして、AssemblyLine 一覧ページに移動します。
チュートリアルで作成した
gcp-api-backend
のAssemblyLineを選択します。画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: 1-1で取得した Git コミットのハッシュ値
- imageTagName: backend
TIP
AssemblyLine の実行開始後に、scan
Pipeline の image-scan-gcp
Task の scan-image
Step の実行が失敗する場合があります。その場合は、画面右上の RETRY
ボタンを押下して再実行してください。
AssemblyLine の実行が完了したら、ログを確認します。
削除に成功すると、
deploy
Pipeline のdeploy
Task のstep-deploy
Step のログから、リソースが削除されたことを確認できます。ログの以下の箇所から、削除されたリソースの総数を確認できます。
Resources: - 18 deleted 1 unchanged
1 unchanged
のリソースについては、Qmonus Value Stream の仕様上出力されているもので、デプロイされたユーザのリソースの削除には影響ありません。AssemblyLine 一覧ページに移動して、
azure-shared-infra
の AssemblyLine を選択します。画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: 1-1で取得した Git コミットのハッシュ値
AssemblyLine の実行が完了したら、ログを確認します。
削除に成功すると、
deploy
Pipeline のdeploy
Task のstep-deploy
Step のログから、リソースが削除されたことを確認できます。ログの以下の箇所から、削除されたリソースの総数を確認できます。
Resources: - 28 deleted 1 unchanged
Google Cloudにログインして、本チュートリアルで作成したリソースが削除されていることを確認します。
以上で、API Backend リソースの削除は完了です。