今回はManning Publicationsから2022年に出版された Infrastructure as Code Practices and Patterns の中から、IaCのテストに関連する部分を取り上げます。 www.manning.com 前提 テストのサイクル 静的解析 動的解析 テストの種類 unit test contract test…
CloudFormation Guardとは cfn-guardを検証する インストール rulegen validate AWS ELBのログ有効化をテストする 参考リンク CloudFormation Guardとは AWS CloudFormation Guard (以降cfn-guard) は、汎用的なPolicy as Codeを実現するOpen Sourceツールの…
今回はO'Reilly社から2020年に出版された Infrastructure as Code (2nd Edition) を読み、IaCに対するテストについて個人的に気になった箇所などを書き留めていきます。 www.oreilly.com 目的 前提 IaCとは 2つ目のCore Practice IaCをテストするうえでの課…
以前CodeBuildでPull Requestごとに特定のCommit IDをターゲットにビルドを実行する方法を調べましたが、今回はAWS CodePipelineで同じことを実現しようとしました。 背景 AWS CodePipelineはAWSサービスの一つでフルマネージドな継続的デリバリーサービス …
背景 以前PR作成時にCodeBuildでCommit IDを対象にビルドを開始する方法を検証したのですが、Amazon EventBridgeのInput Transformationを使うと同じ事が簡単にできることを知ったので、今回はこちらを試してみます。 方法 Input Transformationとは、EventB…
背景 CI/CDを実現するために各種ソフトウェアを設定するなかで、変更のあったファイルに合わせて起動するジョブを変更したいときがあります。 例えばファイルによって適用するジョブを変更したい場合です。処理対象のファイルによって必要なコマンドライン引…
背景 以前AWS CodeCommit/CodeBuildを用いたCI/CDを試した際、PRの作成をトリガーにCodeBuildを実行するために、Amazon EventBridgeを使用しました。この時にやりたかったことを並べると、以下のようになります。 CodeCommitで特定のブランチ宛にPull Reques…
Kubernetes上のアプリケーションに外部から秘匿情報やパラメータを与える方法の一つとして、ConfigMap/Secretに情報を記載し、環境変数として渡すことができます。一方でこの方法を採用した場合、ConfigMap/Secretに記載する変数を更新すると、これをPodに反…
今回は、Kubernetes External SecretsからExternal Secrets Operatorへ移行する際のポイントを調査しました。 前回触れたExternal Secrets Operator (以降ESO) は、同様の機能を提供する Kubernetes External Secrets (以降KES) から移行先として推奨されて…
External Secrets Operatorとは External Secrets Operatorを動かす AWS Secrets Managerに秘匿情報を登録する ESOをインストールする AWSアクセス情報を登録する SecretStoreのデプロイ ExternalSecretのデプロイ その他 EKS: IRSAを使用する場合 External …
今回は、ArgoCD GUIからFluxのリソースの可視化を実現する、Flamingoというプロダクトを動かしてみます。 Flamingoとは Flamingoは、Flux subsystem for Argo (FSA) という名称を持っており、その名前の通りFluxとArgoCDを組み合わせて利用することを可能に…
今回はTerraformリソースをGitOpsで管理することを可能にする、 Terraform Controllerを試してみます。 Terraform Controllerとは Terraform Controller (以降 tf-controller) は、Fluxなどを開発するWeave works社が開発するKubernetes Controllerの一つで…
今回はWeave GitOpsというFluxのリソースを可視化するツールを試してみます。 Weave GitOpsとは Weave GitOpsはWeaveworks社が開発しているGUIツールで、OSSのほかEnterprise用も用意されています。同社が開発元となったFluxはデフォルトではWeb GUI機能を提…
今回はArgoCD ver 2.5で追加された、Projectレベルでのセキュリティ機能を試してみます。 以前のArgoCD Projectの記事にも記載をしているのですが、ArgoCDのProjectは Application を論理的にグルーピングする機能で、source/destinationやroleなどを設定で…
今回は ArgoCD ver 2.5でBeta版になったServer-side Apply機能について簡単に触れてみます。 Server-side Applyとは Server-side Applyは、Kubernetesでv 1.14から利用可能になった、リソースの作成・管理方法の1つです。 Kubernetesはリソースを宣言的手法…
ArgoCDでのWeb Terminalは、ArgoCD ver 2.4から導入された新しい機能です。 これまでもUIへの機能追加は行われており、Kubernetesリソースのマニフェストの表示やログの出力などをサポートしていました。今回のリリースにより、起動中のPodに含まれるコンテ…
ArgoCD Image Updaterとは イメージ更新のプロセス 前提条件 ArgoCD Image Updaterを使ってみる 事前準備 ArgoCD Image Updaterの導入 インストール用ファイルの用意 IRSAの用意 argocd-image-updater-config ConfigMapの修正 ArgoCD Image Updaterのデプロ…
今回は以前のGitHub Flowの構成例に続き、GitLab Flowの実現を目指した例を考えました。 なお、今回は前回と大部分同じ構成なので、説明を省いている箇所があります。 GitLab Flowとは GitLab Flowも開発ワークフローの一種で、以下のようなルールに従って開…
今回はAWS CodeCommit/CodeBuildとFluxを使い、GitHub Flowを実現することを目指して構成を考えてみました。 GitHub Flowとは GitHub Flowは開発ワークフローの1つであり、以下のようなルールが定められた、比較的シンプルなワークフローになります。 master…
ソースコードを管理するリポジトリを本格的に運用しようと思うと、リポジトリへの操作に対して制限をかける必要が出てきます。AWS CodeCommitはデフォルトに提供する機能に限りがあり、リポジトリに対する制限をかけるためにいろいろと設定が必要になります…
今回はArgoCDでマルチテナント向けに利用できる Project という機能について整理しようと思います。 ここ最近のArgoCDのアップデートにもProjectに関するものが含まれていたので、そちらも試しています。 Projectとは Projectの基本的な使い方 ローカルユー…
以前CodeCommit / CodeBuildで ECR / EKS向けのCI/CDパイプラインを作った際、CodeBuild中でECRへのアクセス情報を設定する方法がよくわかっていなかったので、備忘録として書き残しておきます。 各値の取得方法 Amazon ECRへコンテナイメージを格納するには…
今回はArgoCD CoreというArgoCDの新たなディストリビューションを動かしてみました。 ArgoCD Coreとは ArgoCD Coreを動かす 感想 参考リンク ArgoCD Coreとは ArgoCD Coreは ArgoCDの ver 2.1で導入された、ArgoCD distributionになります。ArgoCDはデフォル…
はじめに 今回は AWS CodeCommit / CodeBuildを使い、コンテナイメージのビルドからKubernetesクラスターへのデプロイまで実行するサンプルを作成しました。 CodeCommit / CodeBuildは、それ単体では実現できることがかなり限られるため、Amazon EventBridge…
つい先日ArgoCD ver 2.2.0がリリースされたので、今回はその内容を眺めてみます。 また、以前ArgoCDを触ってからだいぶ時間が空いてしまい、その間アップデートがいくつもあったので、ver 1.8からおさらいしようと思います。 ver 2.2だけ見たい場合はこちら…
今回はArgoCDをより拡張する機能を持つ ApplicationSetを動かしてみます。 ApplicationSetとは Generator ユースケース Cluster add-on Monorepo Self-service of ArgoCD Applications on multi-tenant cluster ApplicationSetを動かしてみる インストール L…
今回はProgressive Deliveryを実現するツールの一つであるFlaggerを試してみます。なお、Progressive Deliveryについては、以下の参考リンクなどを参照ください。 ※参考リンク: Towards Progressive Delivery DevOps Institute - Progressive Delivery Flag…
今回はGitOpsツールの一つであるFlux v2を試してみます。GitOpsについては以下の参考リンクなどをご参照ください。 ※参考リンク: Weaveworks Blog - Guide To GitOps Flux v2とは Flux v2は、複数のCustom Controllerを組み合わせて、GitOpsの各機能を提供…
今回はKubernetesリソースのバックアップ・リストアを実現するVeleroを使ってみます。 Cloud Nativeな世界のバックアップ・リストア Veleroを動かす前に、バックアップ・リストアについていくつか書いておきます。 そもそもバックアップ・リストアを実現する…
はじめに 今回はCircleCIとAmazon ECRを利用したCI/CDパイプラインを用意し、コンテナイメージのビルドからKubernetesクラスタへのデプロイまで実行するサンプルを作成しました。 構成 今回は以下のようなCI/CDパイプラインを作成しました。 管理対象はGoの…