Operator SDK生成プロジェクトのディレクトリ構成
Operator SDKが生成するプロジェクト雛型のディレクトリ構成についてのメモ。 https://sdk.operatorframework.io/docs/golang/references/project-layout/
ファイル/ ディレクトリ 説明 build/ OperatorをビルドするためのDockerfileとスクリプト。 cmd/ Operatorのメインプログラムmanager/main.goがある場所。マネージャを生成して、pkg/apis以下にあるCRDを全て読み込み、pkg/controller以下にあるコントローラを全て起動する。 deploy/ CRD、RBAC、OperatorデプロイメントのためのYAMLマニフェストファイル。 pkg/apis/ CRDに関するAPIを定義する場所。pkg/apis/<group>/<version>/<kind>_types.goを編集してリソースタイプ毎のAPIを定義し、コントローラからはこのパッケージをインポートしてそれらのリソースタイプを監視する。 pkg/controller/ コントローラの実装。pkg/controller/<kind>/<kind>_controller.goを編集して、そのkindのリソースタイプを処理するための調停(reconcile)ロジックを定義する。 vendor/ Go importで使われる外部依存モジュールのコピーが置かれる場所。Go Modulesが管理する。プロジェクトを--vendorを付けて初期化したか、go mod vendorを実行しない限り、存在しない。 go.mod go.sum Go Modulesマニフェストファイル。
ちなみに、Operatorプロジェクトを生成するのは以下の通り。
$ operator-sdk new <operator-name>
















