pronounced [meta-see]
It is metacontroller and more. Long term vision of Metac is to provide a toolkit that lets users to manage their infrastructures on Kubernetes.
Metac started when development on metacontroller stopped. Metac has implemented most of the major enhancements & issues raised in metacontroller. In adition, some of Metac's features are a derivation from production needs of projects such as OpenEBS & LitmusChaos.
Metac is an add-on for Kubernetes that makes it easy to write and deploy custom controllers in the form of simple scripts. One can get a feel of implementing controllers from various sample implementations found in the examples folder. These examples showcase various approaches, programming languages (including jsonnet) to implement controllers.
These are some the features that metac supports:
If you want to use Metac via web based hooks then Metac can be deployed as a StatefulSet with images found at this registry. However, if you want to use inline hooks, you need to import Metac into your go based controller implementation. In addition, you need to make use of go modules to import the master version of Metac into your codebase.
In case, you want to deploy Metac via helm
, use this helm chart.
Metac tries to be compatible with the original metacontroller. However, there may be breaking changes that one needs to be careful about. If one has been using the metacontroller and tries to use metac, then one should be aware of below changes:
apiVersion: metac.openebs.io/v1alpha1
metac.openebs.io/<controller-name>
metac
namespaceIf you are migrating from Metacontroller to Metac you'll need to cleanup the old Metacontroller's finalizers, you can use a command like the following:
kubectl get <comma separated list of your resource types here> --no-headers --all-namespaces | awk '{print $2 " -n " $1}' | xargs -L1 -P 50 -r kubectl patch -p '{"metadata":{"finalizers": [null]}}' --type=merge
These are the broad areas of focus for metac:
This is the existing i.e. metacontroller site that provides most of the important details about Metacontroller. Since metac does not differ from Metacontroller except for new enhancements and fixes, this doc site holds good.
Please file GitHub issues for bugs, feature requests, and proposals.
Use the meeting notes/agenda to discuss specific features/topics with the community.
Join #metacontroller channel on Kubernetes Slack.
See CONTRIBUTING.md and the contributor guide.
This project is licensed under the Apache License 2.0.
Among most of the articles found in internet, I find this to be really informative. However, it talks about metacontroller whereas metac has filled in most of the gaps left by the former.