IBM Cloud チュートリアル

Tektonパイプラインを使ったツールチェーンテンプレート

記事をシェアする:

この投稿は、2020年7月14日に、米国 Cloud Blog(英語) に掲載されたブログの抄訳です。

新しい IBM Cloud DevOps ツールチェーンテンプレートから、Tekton パイプラインを自動的に設定して使用し、アプリケーションの構築、テスト、デプロイを行う方法をご紹介します。

IBM® Cloud Continuous Delivery(英語)には、アプリケーションの構築とデプロイを自動化するオープンなツールチェーンが含まれています。ツールチェーン・テンプレートには、開発、デプロイ、運用タスクをサポートするツール統合の特定のセットが含まれています。

このブログ記事では、新しいテンプレートから、Tekton パイプラインを使用してアプリケーションを Kubernetes(英語) クラスターにデプロイするツールチェーンを作成します。

Tektonについて

Tekton pipelinesは、Kubernetesクラスタ(英語)内で継続的インテグレーション(英語)や継続的デリバリーのパイプラインを設定して実行するためのオープンソースプロジェクト(IBM外のWebサイトへ)です。Tekton pipelines は yaml ファイルで定義されており、通常は Git リポジトリに保存されます。

前提条件

ツールチェーンの作成

  • ツールチェーンのデフォルト設定を確認します。
    • ツールチェーン名:お好きな名前を選んでください。
    • 地域:地域を選択します。ダラスのリージョンが選択されていることを確認します(IBM Managed Public Workers の恩恵を受けるには)。注:現在のところ、パブリック・ワーカーはダラスのリージョンでのみ利用可能です。他のリージョンでツールチェーンを作成する場合は、独自のプライベート・ワーカーを設定して追加する必要があります。
    • リソースグループ:デフォルトのリソースグループのままにしてください。
  • Git RepoとIssue Trackingの設定を確認します。各ツールチェーンにはサンプルアプリが付属していますが、別のレポを選択して使用することもできます。コード変更のデプロイメントを追跡するオプションについては、こちらのブログ(英語)を読んでください。
  • Delivery Pipelineタブをクリックします。これらのフィールドが表示されます。
    • App name: アプリケーションの名前を入力します。必要であれば、デフォルト値を使用することもできます。
    • IBM Cloud API Key:IBM Cloud API Key(IBM クラウド API キー)を入力します。フィールドの横にある [New] ボタンをクリックし、表示されるダイアログ・ボックスで [OK] を選択して、新しい一意の API Key を作成します。
    • コンテナ・レジストリ・リージョン:コンテナ イメージを作成するリージョンを選択します。デフォルトの設定では、同じレジストリ・リージョンとクラスタ・リージョンを使用します。
    • コンテナ・レジストリ・ネームスペース:このネームスペースは、リージョン内のグローバル・イメージ・レジストリ内のフォルダで、イメージのセットを管理するために使用されます。ネームスペースを入力するか選択します。
    • クラスタ・リージョン:ターゲット・クラスタのリージョンを選択します。ターゲット・クラスタのリージョンを選択します。このリージョンは、チュートリアルの開始時に作成したKubernetesクラスタのリージョン、または共有アカウントのクラスタです。
    • リソース・グループ: リソース・グループを選択します。デリバリー・パイプラインのリソース・グループを選択します。リソース・グループの詳細については、“リソース・グループでリソースを整理するためのベストプラクティス” を参照してください。
    • クラスター名:クラスター名を選択します。チュートリアルの開始時に作成したKubernetesクラスタの名前、または共有アカウントのクラスタを選択します。
    • クラスタの名前空間:クラスタ内で明示的な名前空間を使用して、配備されたリソースを分離します。同じ Kubernetes クラスタ内のデプロイメントを隔離するには、別個の名前空間を使用します。この設定はデフォルトの prod 値のままにしておくことができます。
  • 注: 新しいパイプライン タイプ セレクタにより、「Classic」から「Tekton」パイプラインへの切り替えが可能になりました。

  • 作成をクリックします。しばらくすると、新しいツールチェーンの概要ページが開きます。

テクトンパイプラインのダッシュボード

  • デリバリー・パイプライン・カードをクリックすると、Tektonのパイプライン・ダッシュボードが表示されます。

  • 左側のメニューにあるオプションの以下の定義を参照してください。
    • 定義を参照してください:ここでは、リポジトリに保存されている異なるTektonリソースを参照します(関連するブランチ/タグとパスも参照します)。
    • Worker: ここでは、Tektonのパイプラインを実行するための作業者を指定します。TektonパイプラインはWorkerによって実行されます。IBM Managed Workerが選択されていることを確認してください。プライベート・ワーカーでパイプラインを実行したい場合で、まだツールチェーンに追加していない場合は、こちらをクリックしてください。

    • トリガー:ここでは、指定したイベントが発生したときに何が起こるかを指定します。
    • 環境プロパティ:パイプラインで使用するための名前と値のペアを保存します。
  • 各セクションの詳細については、ドキュメントを参照してください。

Tektonリソースの定義

IBM Cloud Continuous Delivery for Tekton のサポートでは、パイプラインを定義するために Kubernetes に Custom Resources 拡張機能のセットを提供しています。

  • パイプラインの定義セクションをクリックします。各エントリは、このパイプラインで使用されるTektonリソースをホストするリポジトリ、ブランチ、およびパスにリンクしています。

  • simple-helm-toolchainのリンクをクリックしてGithubリポジトリを開きます。デュアルテンプレートブランチに切り替えます。
  • .pipelineディレクトリに移動し、pipeline.yamlファイルを開き、このパイプラインを構成する様々なタスクのセットを探索します。
  • 他のリポジトリを探索するか、次のステップへジャンプして、最初の変更をコミットします。

コード、コミット、デプロイ

  • メインのToolchainページに戻り、Orion Web IDEタイルをクリックします。

  • hello-helmプロジェクトに移動し、app.jsを編集します。

  • 28行目で、アプリのウェルカムメッセージを「IBM Cloud DevOps in action! 」に修正します。

  • 左側のGitアイコンをクリックします。

  • コメントを追加して、右のコミットボタンをクリックして変更をコミットします。

  • 変更内容を Git リポジトリにプッシュします。

  • ツールチェーンに戻り、デリバリーパイプラインをクリックします。コミットによってパイプラインがトリガーされていることを確認します。
  • PipelineRun をクリックして、パイプラインのタスクとステップの実行の詳細を表示します。

  • 様々なステップのログを調べます。
  • deploy-to-kubernetesタスクをクリックし、ステップの実行をクリックします。
  • ログの一番下までスクロールして、セクションを探します。

  • アプリケーションのURLをコピーして新しいタブに貼り付け、変更がデプロイされたことを確認します。

概要

おめでとうございます。Helmチャートを使用して、Tektonパイプラインを使用してKubernetesクラスタ内のセキュアコンテナにアプリをデプロイするツールチェーンを作成しました。アプリを更新し、更新内容をGitレポにプッシュしました。配信パイプラインがアプリをデプロイした後、更新を検証しました。

さらに先に進む

以下の手順で、手動トリガーをTektonパイプラインに追加します。

  • Triggersセクションを選択し、Add triggerボタンをクリックし、Manualを選択します。

  • デフォルトのままで、トリガーのプロパティを追加します。
    • リポジトリ:デプロイするコードをホストしているリポジトリのURL。
    • ブランチ:コードを取得するブランチ。
  • 変更を保存します。

  • PipelineRuns ダッシュボードに戻り、Run Pipelineボタンをクリックして手動で実行します。

  • 新しいビルドが開始されたことを確認します。

その他のリソース

問題の報告、ヘルプを探す

IBM Cloud の開発チームから直接、Slack に参加して迅速にサポートを受けることができます。


翻訳:IBM Cloud Blog Japan 編集部

More IBM Cloud チュートリアル stories

【NTTコミュニケーションズ様との共同実証報告】AI時代のネットワーク運用高度化に向けた取り組み

IBM Cloud Blog, オートメーション

システム障害と聞くだけで緊張してしまうのは私だけでしょうか?心理的にも体力的にも負荷が高いこの仕事をAIによって、なんとか楽にならないのか、と誰しもが思っています。そこで、IBMのAIによる運用支援ソリューションであるA ...続きを読む


IBMテクノロジーをフル活用しサービス競争力を大幅に向上させた、証券会社向けサービス「KICSクラウド」とは?

IBM Cloud Blog, IBM Partner Ecosystem

光世証券株式会社(以下、光世証券)は、証券業務を行う事業者向けに、証券基幹業務システムをクラウドで利用できる“KICS クラウド”の提供を開始することを発表しました。KICSクラウドはIBM Cloud環境で稼働している ...続きを読む


キー・パートナーに訊く | 西尾新司(エヌアイシー・ソフト株式会社)

IBM Cloud Blog, IBM Partner Ecosystem

「力になりたいとずっと思っていた」——そう話すのは、IBM Champion*の称号を2020年からお持ちの、エヌアイシー・ソフト株式会社所属の西尾 新司さん。今回の「キー・パートナーに訊く」は元IBM Champion ...続きを読む