Hi everyone,
We are using Kapitan to manage our Kubernetes clusters inventory, and the time has come to implement versioning for our classes.
Here is my proposal for how this may work:
-
There will be two repositories:
-
One repository (Inventory) for inventory/targets/clusters. This repository will mostly be used without any versioning just as upstream.
-
Another repository (Classes) for components, inventory/classes, templates, and other related items. This will be versioned using tags or branches.
-
The inventory repository will contain definitions for different Kubernetes clusters, each referencing a specific tag or branch of the Classes repository.
This change is necessary because Inventory items (in my case, Kubernetes clusters) have different release cycles.
Technically, I think it may look like this:
classes:
- source:
type: git
source: g...@git.mycompany.com:kapitan/classes.git
ref: 1.5.3
- amazing_class_1
- super_class_2
- important_class_3
- common
parameters:
metadata:
...
What do you think about this proposal?
Do you agree with it?
Do you have any advice on how to improve this approach?
Thank you.
Best regards,
Eugene Furmanyk.