TECHSTEP

ITインフラ関連の記事を公開してます。

読後メモ: 『GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術』

今回は以下の本を一通り読み終わったので、概要や感想などを書き残します。 www.shoeisha.co.jp 本書の内容 本書は「ドキュメント作成」と「テキストコミュニケーション」の入門書、という立ち位置になります。本のタイトルから前者をイメージする方も多いか…

GitLabテンプレートでCI/CDの起動条件を管理する

今回はGitLabのCI/CD起動条件をテンプレート上で管理する例を紹介します。 背景 CI/CDワークフローの起動条件をテンプレートで管理することで、Project全体のワークフローの起動条件を変更しやすくなります。例えばCI/CDをプロジェクトに導入してからブラン…

GitLabトークンの種類と使い分けを考えてみる

今回はGitLabで複数の種類があるTokenを整理し、いつどのトークンを使った方が良いか個人的にまとめておきます。 docs.gitlab.com 要約 Tokenの種類 GitLabリソースの操作 OAuth 2.0 token Impersonation token CI/CD job token GitLabへの接続登録 Runner a…

GitLab Web IDEでExtension marketplaceを有効化する

今回はGitLab 17.4で紹介されたWeb IDE Extension marketplaceの有効化と利用方法を紹介します。 docs.gitlab.com 背景 GitLab Web IDEはGitLab UIから選択できるファイル編集方法の一つで、Visual Studio Code画面を別ウィンドウに表示し、ファイルの修正や…

GitLab Projectを整理する

今回はGitLab Projectでできる操作などを簡単に整理します。 docs.gitlab.com Projectとは GItLab Projectは、GIt管理するソースコードの置き場所を提供します。またProjectはIssueやMilestoneによる開発プロジェクトの管理、GitLab CI/CDによる自動ビルド・…

GitLabとFluxを連携する

今回はGitLabとFluxを組み合わせる方法を紹介します。 docs.gitlab.com 背景 GitLabはGitOpsを実現する方法として、Fluxのインストールを案内しています。FluxはWeaveworks社が管理するGitOspを実現するツールです。Fluxの詳細は過去に紹介したこちらの記事…

【メモ】GitLab agent for Kubernetesインストール時に"ImagePullBackOff"エラーが発生した場合の対応

以前GitLab agent for Kubernetesを使ってGitLabとKubernetesを接続した際にエラーが発生したため、その対応を簡単に記載しておきます。 docs.gitlab.com 発生した事象 Helmコマンドを使ってGitLab agentをインストールした際、Podに ImagePullBackOff とい…

GitLabのDashboard for Kubernetesを利用する

今回はGitLab上で設定できるKubernetesダッシュボードを紹介します。 docs.gitlab.com 背景 以前GitLabとKubernetesとを接続する方法としてGitLab agent for Kubernetesを紹介しました。GitLabはこのほかにもKubernetesと連携した機能を提供しており、その一…

GitLabパイプラインの種類と設定方法を整理する

今回はGitLabのパイプラインの種類について紹介します。 docs.gitlab.com docs.gitlab.com Branch pipeline パイプラインの中には、特定のブランチにコミットするたびに起動するものがあり、そういうパイプラインをBranch pipelineと呼びます。デフォルトで…

GitLab Review appsを紹介する

今回はGitLab Review appsについて紹介します。 docs.gitlab.com 背景 GitLab Review appsは、以前紹介したGitLab Environmentと連動し、Merge request画面から検証用の環境にアクセスする手段を提供する機能です。具体的には、Merge request画面から特定のE…

GitLab Issueの概要を紹介する

今回はGitLab Issueの概要を紹介します。 docs.gitlab.com 背景 基本機能 Issueの作成方法 Issueの管理方法 Issueへのユーザーアサイン Issueの期日設定 Confidential Issue Issueの移動 Issueのクローズ Issueのtask Issue同士を連携 CSVのインポート/エク…

GitLabからAmazon EKS上のリソースを更新する

今回はGitLabからAmazon EKS上のPodを更新する方法を紹介します。 docs.gitlab.com 背景 GitLabからAmazon EKSに接続し、リソースを更新するには、大きく3つの方法があります。 AWSアクセス情報を使ってkubectlで接続する GitLab Agent for Kubernetesをイン…

GitLab Auto-mergeを試す

今回はGitLabのAuto-mergeを簡単に紹介します。 docs.gitlab.com 背景 Auto-mergeは、Merge requestがマージ可能な状態になったときに自動的にマージする機能です。ここでいう「マージ可能な状態」とは、以下のような条件を満たした場合を指します。 要求す…

GitLab Merge request経由でAmazon ECSの検証環境を作成する

今回はGitLabでMerge requestを作成すると自動的に検証環境を作成する例を紹介します。 背景 今回作成した環境の構成図、及び検証環境を作成する処理の流れは以下の通りです。 利用者はGitLab Project上のファイルを修正し、Merge requestを作成する GitLab…

GitLab Deploy token/keyを紹介する

今回はGitLab deploy token/keyについて簡単に紹介します。 docs.gitlab.com docs.gitlab.com 背景 Deploy token / Deploy keyはどちらもGitLabへのアクセスに使用するものであり、主に外部のビルドサーバー・CICDサーバーからGitLabにアクセスする際に利用…

GitLab Milestoneを使ってみる

今回はGitLab Milestoneの機能を簡単に使ってみます。 docs.gitlab.com 背景 GitLab Milestoneは、ある開始時期と終了時期が決まっている大きなタスクを管理するのに利用できます。 Milestoneは関連するIssue / Merge requestを1つのカテゴリーから閲覧可能…

GitLab Personal/Project/Group access tokenを紹介する

今回はGitLabのtokenの1つであるPersonal access tokenを中心に、Project/Group access tokenと合わせて、使い分けなどの紹介をします。 docs.gitlab.com docs.gitlab.com docs.gitlab.com 背景 GitLab Personal access tokenはGitLabを利用するうえでのパス…

GitLab ChatOpsでGitLab CI/CDを起動する

今回はGitLab ChatOpsについて簡単に紹介します。 docs.gitlab.com 背景 GitLabはChatOpsを実現する手段としてSlack / Mattermostとの連携機能を提供しており、gitlab というslashコマンドを使うことでGitLabへのコマンドを実行します。 チャットツールから…

GitLab snippetsを使ってみる

今回はGitLab snippetsを紹介します。 docs.gitlab.com 背景 GitLab snippetsは少量のコードやテキストを他のユーザーに共有する機能です。Snippetsを使うケースとしては、ちょっとしたコードを他の人に紹介するときや、別のドキュメントに短いコードを埋め…

GitLab CI/CDからTerraform / OpenTofuを実行する

今回はGitLabとTerraformを連携し、GitLab CI/CDからTerraform (OpenTofu) を利用する方法を紹介します。 docs.gitlab.com 背景 GitLabはTerraformと連携する以下のような機能を提供しています。 GitLabをTerraformのstateファイル保存場所として提供 GitLab…

GitLab Releaseの概要を紹介する

今回はGitLab Releaseについて簡単に紹介します。 docs.gitlab.com 背景 GitLab Releaseは、Projectで管理するソフトウェアのリリースをサポートする機能です。ある時点でのProject中のソースコードやインストールパッケージ、リリースノートなどを作成し、 …

GitLabのバージョンアップを実行する (16.7.0 → 16.9.1)

今回はGitLab Self-managed版のバージョンアップ手順を簡単に紹介します。 docs.gitlab.com 背景 GitLabはインストール方法に応じてバージョンアップの方法も異なりますが、今回はLinux packageでインストールした場合の方法になります。 GitLabはバージョン…

GitLab Environmentの概要を紹介する

今回はGitLab Environmentの概要を紹介します。 docs.gitlab.com 背景 GitLabのEnvironmentは、GitLab内でコードがどの場所にデプロイされたかの「場所」を表すリソースです。この場所というのは、例えばクラウド上に実際に環境を作るわけではなく、GitLab上…

GitLab Secret detectionを利用する

今回はGitLabのSecret detection機能を検証します。 docs.gitlab.com 背景 GitLabのSecret detection機能は、あらかじめ設定したルールを元に秘匿情報を検出し、表示する機能です。これは開発言語やフレームワークによらず、すべてのテキストファイルに対し…

GitLab IaC Scanning機能を利用する

今回はGitLab IaC Scanning機能を検証しました。 docs.gitlab.com 背景 GitLabのIaC ScanningはIaCファイルに対する静的解析機能を提供します。IaC Scanningの内部ではKICSというIac専用の静的解析ツールを実行しており、セキュリティの脆弱性やコンプライア…

GitLab SAST機能を利用する

今回はGitLabの提供するSAST (Static Application Security Testing) 機能を検証します。 docs.gitlab.com 背景 GitLabのSAST機能は、アプリケーションコードや一部インフラのマニフェストファイルに対して、GitLab CI/CDパイプライン上でセキュリティスキャ…

Amazon Bedrockで構成図からIaCファイルを生成してみる

今回はAmazon Bedrockのプレイグラウンドから構成図を読み込ませ、IaCファイルが生成できないかを試しました。 背景 Amazon Bedrockは複数の複数の生成AIのFoundation Modelを提供するサービスです。Amazon BedrockはPlaygroundというコンソールも提供してお…

GitLab workflowを理解してパイプライン全体の挙動を制御する

今回は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…

Amazon Q DeveloperがGAされたのでVisual Studio Codeから使ってみる

今回は2024年4月の終わりにGAとなったAmazon Q Developerを使ってみました。 aws.amazon.com 背景 以前Amazon CodeWhispererからCloudFormationコードの開発を試しましたが、つい先日Amazon Q DeveloperがGAとなり、CodeWhispererもAmazon Q Developerの機能…

GitlabとGitpodを連携する

今回はGitLabとGitpodを連携する方法についての紹介です。 docs.gitlab.com 背景 GitLabは他社プロダクトと連携する機能をいくつか提供しており、Gitpodもその一つです。 GitpodはGitLab/GitHub等と連携する、ワンクリックで開発環境を提供するサービスです…