🐙
Argo CDのAppProjectリソースの役割を一枚絵にしてみた
はじめに
最近、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つです。
- デプロイするGitリポジトリを制御できる。
-
Application
に含めることのできるリソースの種類を制御できる。 -
AppProject
内のリソースにアクセスできる人を制御できる。 -
Application
をデプロイするクラスターとnamespaceを制御できる。
これを絵にしてみるとこんな感じでしょうか!
絵にすると、複数のチーム開発を行うときに便利なリソースだと公式が説明していた理由がわかった気がしますね!
まとめ
Argo CDを触っていて、「AppProject
って何?」と疑問に思ったので、調べたことを整理してまとめてみました。同じことを疑問に思った方のお役に立てれば幸いです。また、勉強しながらの整理なので、間違っているところがありましたら、ご指摘いただけると嬉しいです!
Discussion