Skip to content

[共通] マイグレーション後の対応

(Qmonus SDK以外)Build taskの修正

Legacy/v2からコピーしてきたTektonのBuild Taskについて、FAQ に該当するため、直接修正する必要があります。

手順2の valuestream-migration migrate-pipelines コマンドでValue Streamに登録されたTaskは、manifests-v3/${v3_project_name}/tasks というフォルダに出力されます。以下の手順にしたがい、上記ドキュメント中に記載されているWorkaroundを適用したTaskをQmonus Value Streamに再登録してください。

bash
sed -i 's/docker:git/docker:20.10.14-git/g' manifests-v3/${v3_project_name}/tasks/*
qvsctl pipeline -p ${project_name} apply -f manifests-v3/${v3_project_name}/tasks/

WARNING

valuestream-migration migrate-pipelines コマンドを再実行すると、上記で実施した修正を上書きしてしまうため、再度上記手順を実行ください。

(ステージングのみ)v3-migration branchのマージ

WARNING

本手順はステート移行処理が安全に終了し、v2のワークフローが無効化されたことを確認してから実施してください。 ワークフローの無効化ができていない場合、マージをトリガーとして、v2のワークフローが起動してしまいます。

ステート移行後のワークフロー無効化が完了した場合、マイグレーションツールから以下の文言が出力されます。

bash
disable-workflow successfully completed.

ステージングのデプロイに利用するブランチ(通常はmain/masterになるかと思います)に、本マイグレーション手順で作成したv3-migrationブランチをマージください。 各環境のマイグレーションに v3-migrationブランチは必要なので、全ての環境のマイグレーションが完了するまではv3-migrationブランチは削除しないでください。

(ステージングのみ)GitリポジトリのWebhook設定

ガイドを参照して、v3 AssemblyLineをGit連携してください。 あわせて、Gitリポジトリ側のWebhook設定でv2 APIを呼び出す箇所を削除してください。Qmonus Value Stream v2プラットフォーム側の設定変更・削除は不要です。

Pipelineのコード管理

valuestream-migration migrate-pipeline (Qmonus SDK以外) または valuestream-migration migrate-bluegreen-pipelines コマンドで生成・登録したAssemblyLine、Pipeline、およびTaskは、v3プラットフォームで実際に利用しているリソースであるため、コード管理いただくことを推奨します。 変更を加えたい場合、直接編集しQmonus Value Stream v3へ変更を適用ください。 変更の適用についてはqvsctl仕様を参照してください。

なお、公式のCI/CD Adapterを利用することで、Pipeline/Taskを直接管理する必要がなくなります。詳しくはOfficial Cloud Native Adapterを参照してください。

AssemblyLineのPromote設定

マイグレーションでは、環境ごとに独立したAssemblyLineを作成します。ご自身のリリースフローに従って、AssemblyLine間を連結してください。 具体的には、Staging環境用のAssemblyLineと、Production環境用のAssemblyLineをPromote設定により連結いただくことを推奨します。

Promote設定については、ガイドを参照してください。

DANGER

以下の並列で複数環境にデプロイするAssemblyLineは現在サポートしておりません。ご迷惑をおかけしますが、環境ごとにAssemblyLineを作成する形でご利用ください。

v2でMulti-promote機能を利用されている場合、すなわちRelease Workflowを使ってデプロイ先Scopeを指定してデプロイしている場合、デプロイ対象の環境の数だけAssemblyLineが生成されます。これらを1つ1つPromoteにより連結しても良いですが、並列で複数の環境にデプロイしたい場合は、1つのAssemblyLineにまとめてください。以下の例のように、stagesフィールドで異なるDeployment (デプロイ先) を配列で指定いただくことで並列でデプロイ可能です。

yaml
apiVersion: vs.axis-dev.io/v1
kind: AssemblyLine
metadata:
  name: prod-deploy
spec:
  params: ...
  stages:
    - name: deploy-prod1
      spec:
        pipeline: deploy
        deployment:
          app: your-app
          name: prod1
    - name: deploy-prod2
      spec:
        pipeline: deploy
        deployment:
          app: your-app
          name: prod2

ステート移行に利用したパイプラインの削除

後ほど手順を案内しますのでお待ちください。