halkyonio / operator

Kubernetes Operator simplifying the development of microservices on k8s !
Apache License 2.0
40 stars 14 forks source link

Extract capabilities into plugins #188

Closed metacosm closed 4 years ago

metacosm commented 4 years ago

This PR establishes an architecture to make it possible to extract capabilities into plugins. Plugins are implemented using the https://github.com/hashicorp/go-plugin project along with a custom plugin framework found in https://github.com/halkyonio/plugins. The core operator framework has also been extracted into https://github.com/halkyonio/operator-framework. The architecture has been validated with the PostgreSQL capability leveraging KubeDB. This plugin has been extracted into the https://github.com/halkyonio/postgresql-capability project. The plugin itself needs to be built as a binary (go build -o postgresql-capability *.go), copied to a plugins directory located at the root of the operator's install directory and marked as executable (chmod +x ./plugins/postgresql-capability).