CI/CD
今回はGitLabで複数の種類があるTokenを整理し、いつどのトークンを使った方が良いか個人的にまとめておきます。 docs.gitlab.com 要約 Tokenの種類 GitLabリソースの操作 OAuth 2.0 token Impersonation token CI/CD job token GitLabへの接続登録 Runner a…
今回はGitLabのパイプラインの種類について紹介します。 docs.gitlab.com docs.gitlab.com Branch pipeline パイプラインの中には、特定のブランチにコミットするたびに起動するものがあり、そういうパイプラインをBranch pipelineと呼びます。デフォルトで…
今回はGitLab Review appsについて紹介します。 docs.gitlab.com 背景 GitLab Review appsは、以前紹介したGitLab Environmentと連動し、Merge request画面から検証用の環境にアクセスする手段を提供する機能です。具体的には、Merge request画面から特定のE…
今回はGitLabからAmazon EKS上のPodを更新する方法を紹介します。 docs.gitlab.com 背景 GitLabからAmazon EKSに接続し、リソースを更新するには、大きく3つの方法があります。 AWSアクセス情報を使ってkubectlで接続する GitLab Agent for Kubernetesをイン…
今回はGitLabのAuto-mergeを簡単に紹介します。 docs.gitlab.com 背景 Auto-mergeは、Merge requestがマージ可能な状態になったときに自動的にマージする機能です。ここでいう「マージ可能な状態」とは、以下のような条件を満たした場合を指します。 要求す…
今回はGitLabでMerge requestを作成すると自動的に検証環境を作成する例を紹介します。 背景 今回作成した環境の構成図、及び検証環境を作成する処理の流れは以下の通りです。 利用者はGitLab Project上のファイルを修正し、Merge requestを作成する GitLab…
今回はGitLab deploy token/keyについて簡単に紹介します。 docs.gitlab.com docs.gitlab.com 背景 Deploy token / Deploy keyはどちらもGitLabへのアクセスに使用するものであり、主に外部のビルドサーバー・CICDサーバーからGitLabにアクセスする際に利用…
今回はGitLab ChatOpsについて簡単に紹介します。 docs.gitlab.com 背景 GitLabはChatOpsを実現する手段としてSlack / Mattermostとの連携機能を提供しており、gitlab というslashコマンドを使うことでGitLabへのコマンドを実行します。 チャットツールから…
今回はGitLabとTerraformを連携し、GitLab CI/CDからTerraform (OpenTofu) を利用する方法を紹介します。 docs.gitlab.com 背景 GitLabはTerraformと連携する以下のような機能を提供しています。 GitLabをTerraformのstateファイル保存場所として提供 GitLab…
今回はGitLab Releaseについて簡単に紹介します。 docs.gitlab.com 背景 GitLab Releaseは、Projectで管理するソフトウェアのリリースをサポートする機能です。ある時点でのProject中のソースコードやインストールパッケージ、リリースノートなどを作成し、 …
今回はGitLab Environmentの概要を紹介します。 docs.gitlab.com 背景 GitLabのEnvironmentは、GitLab内でコードがどの場所にデプロイされたかの「場所」を表すリソースです。この場所というのは、例えばクラウド上に実際に環境を作るわけではなく、GitLab上…
今回はGitLabのSecret detection機能を検証します。 docs.gitlab.com 背景 GitLabのSecret detection機能は、あらかじめ設定したルールを元に秘匿情報を検出し、表示する機能です。これは開発言語やフレームワークによらず、すべてのテキストファイルに対し…
今回はGitLab IaC Scanning機能を検証しました。 docs.gitlab.com 背景 GitLabのIaC ScanningはIaCファイルに対する静的解析機能を提供します。IaC Scanningの内部ではKICSというIac専用の静的解析ツールを実行しており、セキュリティの脆弱性やコンプライア…
今回はGitLabの提供するSAST (Static Application Security Testing) 機能を検証します。 docs.gitlab.com 背景 GitLabのSAST機能は、アプリケーションコードや一部インフラのマニフェストファイルに対して、GitLab CI/CDパイプライン上でセキュリティスキャ…
今回はGitLabの workflow というキーワードを紹介します。 docs.gitlab.com docs.gitlab.com 背景 workflow:auto_cancel:on_new_commit workflow:auto_cancel:on_job_failure workflow:name workflow:rules workflow:rules:variables workflow:rules:auto_ca…
今回はオライリーの 入門 継続的デリバリー を読んだので、その感想です。本書は2022年に出版されたManning社のGrokking Continuous Delivery を和訳したものですが、とても面白く読ませていただいたので取り上げました。今回も読んでいてよかったと思うポイ…
今回はGitLabの extends というキーワードを使ってみました。 docs.gitlab.com 背景 GitLab CIはJobを再利用する方法として複数の手法を提供しており、 extends はそのひとつです。 Jobを再利用する方法は、大きく3種類あります (include等も含めるともっと…
今回はGitLabのパイプラインエディタについて紹介します。 docs.gitlab.com 背景 パイプラインエディタはGitLabのUIから .gitlab-ci.yml を編集・テストできる機能です。具体的には以下のような機能を提供しています。 Edit : パイプラインエディタ画面では …
今回はGitLab rulesを少しだけ試してみました。 docs.gitlab.com 背景 GitLab CIに限らず、CI/CDのジョブを実行するタイミングを制御したいケースは多くあります。GitLabでは rules というキーワード配下に条件を指定することで、ジョブの実行タイミングを制…
今回はGitLab CI/CDでコンテナイメージを作成し、作成したイメージを使ってAmazon ECSのサービスを更新する例を紹介します。 背景 GitLab CI/CDからAmazon ECSサービスを更新するには、大きく2つの方法があります。 .gitlab-ci.yml にスクリプトを記載する i…
背景 前回AWS CloudFormationで管理するAmazon S3に対し、CI/CDによる継続的なテストと更新を検証しましたが、今回はAmazon EC2を対象に検証してみました。 Amazon EC2で気を付けた点 まず、Amazon EC2に対してテストを行う前に、以前のAmazon S3と比べて異…
背景 以前IaCの書籍をいくつか取り上げ、IaCのテストをどう実行すべきか調査したことがありました。書籍の中には具体的なツールや例を取り上げて記載されている箇所もありますが、やはり実際に動かしてみることで見えることもあると思い、今回簡単に検証して…
今回は以前のGitHub Flowの構成例に続き、GitLab Flowの実現を目指した例を考えました。 なお、今回は前回と大部分同じ構成なので、説明を省いている箇所があります。 GitLab Flowとは GitLab Flowも開発ワークフローの一種で、以下のようなルールに従って開…
今回はAWS CodeCommit/CodeBuildとFluxを使い、GitHub Flowを実現することを目指して構成を考えてみました。 GitHub Flowとは GitHub Flowは開発ワークフローの1つであり、以下のようなルールが定められた、比較的シンプルなワークフローになります。 master…
はじめに 今回は AWS CodeCommit / CodeBuildを使い、コンテナイメージのビルドからKubernetesクラスターへのデプロイまで実行するサンプルを作成しました。 CodeCommit / CodeBuildは、それ単体では実現できることがかなり限られるため、Amazon EventBridge…