metacontroller
sample-controller
metacontroller | sample-controller | |
---|---|---|
15 | 7 | |
777 | 3,022 | |
1.7% | 0.8% | |
8.5 | 0.0 | |
4 days ago | 7 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
metacontroller
- What Is A Kubernetes Operator?
-
Why is Kubernetes adoption so hard?
It worth adopt proper controller development with something like Metacontroller, Kopf or Java Operator SDK.
- What is your approach to adding custom labels to a pod in a deployment that's managed by a helm chart?
-
is there a way to set expiry date for k8s rbac setting?
There are many frameworks, like the Operator Framework (https://operatorframework.io/) to the MetaController (https://github.com/metacontroller/metacontroller) to KubeBuilder(https://github.com/kubernetes-sigs/kubebuilder) to the Kubernetes Operator Framework (kopf, https://kopf.readthedocs.io/en/stable/), among others.
-
Is there a tutorial on how to write an Operator in Go?
You might like a little alternative to writing your own in the first instance:) take a look at https://metacontroller.github.io/metacontroller/
-
Writing an Operator from scratch
Codegen is not magic, but if you want to make it simple stupid, supportable and prod-usable I'd go for metacontroller. There's not much magic to it - just common admission/validation webhooks propagated to your controller implementation, alongside the simplest possible reconciliation cycle. We had adopted Knative driven metacontrollers and it's a pretty solid approach.
-
For what should I take a look?
https://github.com/metacontroller/metacontroller - Sounds cool! I will look into it.
-
Dynamic Mutating Pod Admission Controller?
When I need a quick mutating controller, I like to use MetaController, which makes rapid prototyping really easy: https://metacontroller.github.io/metacontroller/
-
Best option to write a CRD today?
If you are more into lightweight and common use cases, look at metacontroller or the shell-operator.
-
What's the number one annoyance that drives you crazy about Kubernetes?
In case you've not heard of it, the metacontroller aims to do exactly this. It provides the controller-lifecycle (registering your types, watching the API for changes, etc), you just need to provide a HTTP webhook to receive the JSON object, and respond with the modifications\resources you want.
sample-controller
-
Is there a tutorial on how to write an Operator in Go?
- Sample controller: https://github.com/kubernetes/sample-controller
-
Writing an Operator from scratch
The most low-level approach I have seen is using the client-go package. Both kubebuilder and controller-runtime are based on this package. You can see an official example here: https://github.com/kubernetes/sample-controller/blob/master/docs/controller-client-go.md But even that sample requires some code generation on top of it https://cloud.redhat.com/blog/kubernetes-deep-dive-code-generation-customresources
-
Container in cluster which can control cluster
I would still recommend gitOps tools or if you want to create your own abstraction (CRD) that encapsulates whatever behaviour you want to watch/act upon, take a look into kubernetes sample controller (https://github.com/kubernetes/sample-controller) or the kubernetes operator pattern https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
-
Anybody use both kubebuilder and operator-sdk to create controllers/operators?
Either should be fine. In case though you want something more basic then consider sample-controller: https://github.com/kubernetes/sample-controller
-
How to get to the next Level in Kubernetes?
As far as Operator development goes, if you are comfortable with golang then I would recommend checking out sample-controller https://github.com/kubernetes/sample-controller It does not abstract the underlying client-go machinery and so provides a good way to understand how various parts of an Operator come together. On the other hand, if you don't want to get exposed to that much details then either Operator SDK or Kubebuilder will be good options. In case you are not into golang then there are SDKs for other languages as well (Python, Java, etc.).
-
Opensource K8s operator developed in Go to contribute
Cool! Given that you mention you are a beginner in K8s operator development, here is a plan that I would like to suggest. 1. Get basic understanding of Kubernetes custom controllers first. The sample controller repo is a good place to start. https://github.com/kubernetes/sample-controller
-
How to start combining kubernetes and go knowledge
the sample controller using client-go to learn about informers: https://github.com/kubernetes/sample-controller
What are some alternatives?
shell-operator - Shell-operator is a tool for running event-driven scripts in a Kubernetes cluster
kubebuilder - Kubebuilder - SDK for building Kubernetes APIs using CRDs
minikube - Run Kubernetes locally
percona-xtradb-cluster-operator - Percona Operator for MySQL based on Percona XtraDB Cluster
kubernetes - Production-Grade Container Scheduling and Management
kubeplus - Kubernetes Operator to create multi-instance SaaS from Helm charts using Kubernetes-native APIs
akrobateo - Akrobateo is a simple Kubernetes operator to expose in-cluster LoadBalancer services as node hostPorts using DaemonSets.
percona-server-mongodb-operator - Percona Operator for MongoDB
k8s-bigip-ctlr - Repository for F5 Container Ingress Services for Kubernetes & OpenShift.
controller-runtime - Repo for the controller-runtime subproject of kubebuilder (sig-apimachinery)
keepalived-operator - An operator to manage VIPs backed by keepalived
robusta - Kubernetes observability and automation, with an awesome Prometheus integration