TECHSTEP

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

【メモ】EventBridge Input Transformationを利用してCodeBuild起動時のCommit IDを指定する

背景 以前PR作成時にCodeBuildでCommit IDを対象にビルドを開始する方法を検証したのですが、Amazon EventBridgeのInput Transformationを使うと同じ事が簡単にできることを知ったので、今回はこちらを試してみます。 方法 Input Transformationとは、EventB…

【メモ】CodeCommit上でPR作成時に変更のあったファイルに合わせてCodeBuildの処理を変更する

背景 CI/CDを実現するために各種ソフトウェアを設定するなかで、変更のあったファイルに合わせて起動するジョブを変更したいときがあります。 例えばファイルによって適用するジョブを変更したい場合です。処理対象のファイルによって必要なコマンドライン引…

【メモ】CodeCommit上でPR作成時にLambdaからCodeBuildを起動して特定のコミットにビルドを実行する

背景 以前AWS CodeCommit/CodeBuildを用いたCI/CDを試した際、PRの作成をトリガーにCodeBuildを実行するために、Amazon EventBridgeを使用しました。この時にやりたかったことを並べると、以下のようになります。 CodeCommitで特定のブランチ宛にPull Reques…

Reloaderを試す

Kubernetes上のアプリケーションに外部から秘匿情報やパラメータを与える方法の一つとして、ConfigMap/Secretに情報を記載し、環境変数として渡すことができます。一方でこの方法を採用した場合、ConfigMap/Secretに記載する変数を更新すると、これをPodに反…

Kubernetes External SecretsからExternal Secrets Operatorへの移行方法を調査する

今回は、Kubernetes External SecretsからExternal Secrets Operatorへ移行する際のポイントを調査しました。 前回触れたExternal Secrets Operator (以降ESO) は、同様の機能を提供する Kubernetes External Secrets (以降KES) から移行先として推奨されて…

External Secrets Operatorを試す

External Secrets Operatorとは External Secrets Operatorを動かす AWS Secrets Managerに秘匿情報を登録する ESOをインストールする AWSアクセス情報を登録する SecretStoreのデプロイ ExternalSecretのデプロイ その他 EKS: IRSAを使用する場合 External …

Flux+ArgoCD? Flamingoを試す

今回は、ArgoCD GUIからFluxのリソースの可視化を実現する、Flamingoというプロダクトを動かしてみます。 Flamingoとは Flamingoは、Flux subsystem for Argo (FSA) という名称を持っており、その名前の通りFluxとArgoCDを組み合わせて利用することを可能に…

Terraform Controllerを試す

今回はTerraformリソースをGitOpsで管理することを可能にする、 Terraform Controllerを試してみます。 Terraform Controllerとは Terraform Controller (以降 tf-controller) は、Fluxなどを開発するWeave works社が開発するKubernetes Controllerの一つで…

Weave GitOpsを試す

今回はWeave GitOpsというFluxのリソースを可視化するツールを試してみます。 Weave GitOpsとは Weave GitOpsはWeaveworks社が開発しているGUIツールで、OSSのほかEnterprise用も用意されています。同社が開発元となったFluxはデフォルトではWeb GUI機能を提…

ArgoCD Projectから一部のDestinationをDenyする

今回はArgoCD ver 2.5で追加された、Projectレベルでのセキュリティ機能を試してみます。 以前のArgoCD Projectの記事にも記載をしているのですが、ArgoCDのProjectは Application を論理的にグルーピングする機能で、source/destinationやroleなどを設定で…

ArgoCD Server-side Applyを試す

今回は ArgoCD ver 2.5でBeta版になったServer-side Apply機能について簡単に触れてみます。 Server-side Applyとは Server-side Applyは、Kubernetesでv 1.14から利用可能になった、リソースの作成・管理方法の1つです。 Kubernetesはリソースを宣言的手法…

ArgoCD Web-based Terminalを試す

ArgoCDでのWeb Terminalは、ArgoCD ver 2.4から導入された新しい機能です。 これまでもUIへの機能追加は行われており、Kubernetesリソースのマニフェストの表示やログの出力などをサポートしていました。今回のリリースにより、起動中のPodに含まれるコンテ…

ArgoCD Image Updaterを試す

ArgoCD Image Updaterとは イメージ更新のプロセス 前提条件 ArgoCD Image Updaterを使ってみる 事前準備 ArgoCD Image Updaterの導入 インストール用ファイルの用意 IRSAの用意 argocd-image-updater-config ConfigMapの修正 ArgoCD Image Updaterのデプロ…

【メモ】AWS CodeCommit / CodeBuild + Flux を使ったGitLab Flowの構築

今回は以前のGitHub Flowの構成例に続き、GitLab Flowの実現を目指した例を考えました。 なお、今回は前回と大部分同じ構成なので、説明を省いている箇所があります。 GitLab Flowとは GitLab Flowも開発ワークフローの一種で、以下のようなルールに従って開…

【メモ】AWS CodeCommit / CodeBuild + Flux を使ったGitHub Flowの構築例

今回はAWS CodeCommit/CodeBuildとFluxを使い、GitHub Flowを実現することを目指して構成を考えてみました。 GitHub Flowとは GitHub Flowは開発ワークフローの1つであり、以下のようなルールが定められた、比較的シンプルなワークフローになります。 master…

【メモ】AWS CodeCommitのブランチへの操作制限と承認ルールテンプレートの作り方

ソースコードを管理するリポジトリを本格的に運用しようと思うと、リポジトリへの操作に対して制限をかける必要が出てきます。AWS CodeCommitはデフォルトに提供する機能に限りがあり、リポジトリに対する制限をかけるためにいろいろと設定が必要になります…

ArgoCD Projectの使い方を整理する

今回はArgoCDでマルチテナント向けに利用できる Project という機能について整理しようと思います。 ここ最近のArgoCDのアップデートにもProjectに関するものが含まれていたので、そちらも試しています。 Projectとは Projectの基本的な使い方 ローカルユー…

【メモ】AWS CodeBuildでECRへのアクセス情報を設定するときの選択肢

以前CodeCommit / CodeBuildで ECR / EKS向けのCI/CDパイプラインを作った際、CodeBuild中でECRへのアクセス情報を設定する方法がよくわかっていなかったので、備忘録として書き残しておきます。 各値の取得方法 Amazon ECRへコンテナイメージを格納するには…

ArgoCDの軽量ディストリビューション ArgoCD Coreを動かしてみる

今回はArgoCD CoreというArgoCDの新たなディストリビューションを動かしてみました。 ArgoCD Coreとは ArgoCD Coreを動かす 感想 参考リンク ArgoCD Coreとは ArgoCD Coreは ArgoCDの ver 2.1で導入された、ArgoCD distributionになります。ArgoCDはデフォル…

【メモ】AWS CodeCommit / CodeBuildと ECR / EKSを利用したCI/CDパイプラインの例

はじめに 今回は AWS CodeCommit / CodeBuildを使い、コンテナイメージのビルドからKubernetesクラスターへのデプロイまで実行するサンプルを作成しました。 CodeCommit / CodeBuildは、それ単体では実現できることがかなり限られるため、Amazon EventBridge…

ArgoCD ver 1.8 ~ 2.2のリリース内容を眺める

つい先日ArgoCD ver 2.2.0がリリースされたので、今回はその内容を眺めてみます。 また、以前ArgoCDを触ってからだいぶ時間が空いてしまい、その間アップデートがいくつもあったので、ver 1.8からおさらいしようと思います。 ver 2.2だけ見たい場合はこちら…

ArgoCD ApplicationSetを動かしてみる

今回はArgoCDをより拡張する機能を持つ ApplicationSetを動かしてみます。 ApplicationSetとは Generator ユースケース Cluster add-on Monorepo Self-service of ArgoCD Applications on multi-tenant cluster ApplicationSetを動かしてみる インストール L…

Flaggerに入門する

今回はProgressive Deliveryを実現するツールの一つであるFlaggerを試してみます。なお、Progressive Deliveryについては、以下の参考リンクなどを参照ください。 ※参考リンク: Towards Progressive Delivery DevOps Institute - Progressive Delivery Flag…

Flux v2に入門する

今回はGitOpsツールの一つであるFlux v2を試してみます。GitOpsについては以下の参考リンクなどをご参照ください。 ※参考リンク: Weaveworks Blog - Guide To GitOps Flux v2とは Flux v2は、複数のCustom Controllerを組み合わせて、GitOpsの各機能を提供…

Veleroに入門する

今回はKubernetesリソースのバックアップ・リストアを実現するVeleroを使ってみます。 Cloud Nativeな世界のバックアップ・リストア Veleroを動かす前に、バックアップ・リストアについていくつか書いておきます。 そもそもバックアップ・リストアを実現する…

【メモ】CircleCIとAmazon ECR / EKSを利用したCI/CDパイプラインの例

はじめに 今回はCircleCIとAmazon ECRを利用したCI/CDパイプラインを用意し、コンテナイメージのビルドからKubernetesクラスタへのデプロイまで実行するサンプルを作成しました。 構成 今回は以下のようなCI/CDパイプラインを作成しました。 管理対象はGoの…

【メモ】GitHub ActionsとGitHub Container Registryを利用したCI/CDパイプラインの例

はじめに 今回はタイトルの通り、GItHub ActionsとGitHub Container Registryを利用したCI/CDを用意し、コンテナイメージのビルドからKubernetesクラスターへのデプロイまでを実行するサンプルを作成しました。 構成 CI/CDのパイプラインのパターンはいくつ…

NATSに入門する

今回はメッセージングシステムの一つであるNATSを試してみました。 NATSとは 分散システムにおけるアプリケーションとサービス間のコミュニケーションは複雑で理解が難しいものとなります。現代のメッセージングシステムは複数のコミュニケーションパターン…

Falcoに入門する

今回はCloud-Nativeなランタイムセキュリティ機能を提供するFalcoを試しました。 Falcoとは FalcoはSysdig社が開発元であるランタイムセキュリティツールです。CNCFがホストとなっているOpen Sourceであり、2020年12月時点でプロジェクトの成熟度はIncubatin…

Open Policy Agentに入門する

今回は汎用的な環境に対してポリシーエンジンを提供するOpen Policy Agent(OPA)について調査しました。 Policy as Codeとは OPAを操作する前に、Policy as Codeというコンセプトについて少し触れます。Policy as CodeはHashiCorp社がSentinelというツール…