🐙

Argo CDのAppProjectリソースの役割を一枚絵にしてみた

2022/08/12に公開

はじめに

最近、Argo CDを学習しており、「そういえば、何となく触っているAppProjectリソースって何だろう?」と疑問に思ったので、調べたり考えたりしたことを整理してまとめてみました。

公式ドキュメントは何て説明してる?

公式ドキュメントでは次のように説明されています。

Projects provide a logical grouping of applications, which is useful when Argo CD is used by multiple teams. Projects provide the following features:

  • restrict what may be deployed (trusted Git source repositories)
  • restrict where apps may be deployed to (destination clusters and namespaces)
  • restrict what kinds of objects may or may not be deployed (e.g. RBAC, CRDs, DaemonSets, NetworkPolicy etc...)
  • defining project roles to provide application RBAC (bound to OIDC groups and/or JWT tokens)

何となくわかりそうな気もしますが、もう少し整理してみます!

つまり、何ができる?

AppProjectリソースでできるようになることは以下の4つです。

  1. デプロイするGitリポジトリを制御できる。
  2. Applicationに含めることのできるリソースの種類を制御できる。
  3. AppProject内のリソースにアクセスできる人を制御できる。
  4. Applicationをデプロイするクラスターとnamespaceを制御できる。

これを絵にしてみるとこんな感じでしょうか!

絵にすると、複数のチーム開発を行うときに便利なリソースだと公式が説明していた理由がわかった気がしますね!

まとめ

Argo CDを触っていて、「AppProjectって何?」と疑問に思ったので、調べたことを整理してまとめてみました。同じことを疑問に思った方のお役に立てれば幸いです。また、勉強しながらの整理なので、間違っているところがありましたら、ご指摘いただけると嬉しいです!

Discussion