metac icon indicating copy to clipboard operation
metac copied to clipboard

Attaching my metacontroller project

Open arielb135 opened this issue 6 years ago • 3 comments

hi, i'm not sure if you wish to link it - but i've created a metacontroller based project that handles rabbit MQ, 2 things:

  1. i can change the necessary code to move it to metac instead, if you could give me some info what should be changed (and if this is now the official repo?)
  2. i did use k8s API to read some related secrets, i understand you have a new feature that handles some dependent objects (as my custom objects needs to refer to some secrets), i didn't find any documentation about this..

https://github.com/arielb135/rabbitController

arielb135 avatar Oct 17 '19 11:10 arielb135

@arielb135 First of all really sorry that I missed the notification of this issue.

I am planning to maintain Metac & use it for production needs of OpenEBS (a CNCF sandbox project). I am also planning to raise a proposal to Kubernetes to move original metacontroller or this metac to kubernetes-sigs. However, this will take considerable amount of time & also need efforts from other like minded individuals. On the whole, I plan to maintain this fork & add contributors as appropriate & have a better release cycle.

I have made the best effort to not change the original APIs. However, the apiGroup & finalizer names have changed. You can refer to the same in the README section as well.

@luisdavim has been using & contributing to Metac actively. You can find both of us in the original metacontroller slack channel.

The new meta controller, that I have been designing is called GenericController. I have not put up a separate doc for the same. However, I have tried my best to push enough info as code level comments in the api definition itself. Here are the links for the same:

https://github.com/AmitKumarDas/metac/blob/master/apis/metacontroller/v1alpha1/types_generic.go https://github.com/AmitKumarDas/metac/blob/master/controller/generic/hooks.go

I have been updating the example & integration test for GenericController as well (I see that you have Python as your preferred language for above RabbitMQ controller). However, I just hope code comments will help you through. Following are links for the same:

https://github.com/AmitKumarDas/metac/tree/master/examples/gctl/install-uninstall-crd https://github.com/AmitKumarDas/metac/tree/master/test/integration/generic

NOTE: I am still working on GenericController and will be adding few more changes. However I do not think it should break any existing workflows. You can have a look at the TODO file found in the root of this project to understand the upcoming changes.

AmitKumarDas avatar Oct 27 '19 09:10 AmitKumarDas

Thanks, i think it is important to add some documentation about what's the purpose of GenericController and implement a main use case example if you want it to be more widely used. we're already pushing it to production using metacontroller, but if we will add more features i'll def check the move to metac if it will be mature enough

arielb135 avatar Oct 27 '19 09:10 arielb135

I still have not come with docs. However, there are few examples that make use of new features in Metac:

  • GenericController (gctl) as a meta controller that can be set with any watch & any arbitrary resources as attachments
  • GenericController as a config (and not a K8s CRD) to run metac binary
  • Import metac as a library & make use of inline hooks (this is possible only for Golang based projects)

Following is the link to examples:

  • https://github.com/AmitKumarDas/metac/tree/master/examples/gctl

AmitKumarDas avatar Nov 13 '19 05:11 AmitKumarDas