Code Organization
🏠 kepler-operator
│
├── automation 👈 ⚙️ CI related scripts
│ └── presubmit-tests
│
├── bundle 👈 📦 Autogenerated and OLM related files
│ ├── manifests
│ ├── metadata
│ └── tests
│
├── docs
│ ├── developer 👈 developer / contributor (design) docs
│ └── user-guides
│
├── config 👈 configuration is used to generate the bundle
│ ├── crd
│ ├── default
│ ├── manager
│ ├── manifests
│ ├── prometheus
│ ├── rbac
│ ├── samples 👈 contains samples that users can use to deploy kepler
│ └── scorecard
│
├── hack 👈 🛠️ scripts to help with development
│ ├── crds
│ └── dashboard
│
├── cmd 👈 source - for the Manager CLI
│ └── manager
│
├── pkg
│ ├── api
│ │ └── v1alpha1 👈 k8s API types
│ │
│ ├── components 👈 source for creating kepler or other components
│ │ ├── exporter manifests like daemsonsets, service, etc
│ │ └── modelserver
│ │
│ ├── controllers 👈 controller-runtime components
│ │
│ ├── reconciler 👈 single object creator / deletor etc
│ └── utils
│ ├── k8s
│ └── test
├── tests 👈 🧪 end-to-end tests 🏠
│ └── e2e
└── tmp
└── bin 👈 all binaries are installed to `tmp/bin` (make tools)
How do I get started ?
- Knowledge of Kubernetes
- API
-
Controller Generator
-
Kube Builder Book: https://book.kubebuilder.io/
- Operator SDK Getting Started: https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/
- Kubernetes Programming Book: https://www.oreilly.com/library/view/programming-kubernetes/9781492047094/