skipper
api
Our great sponsors
skipper | api | |
---|---|---|
4 | 8 | |
3,020 | 622 | |
0.7% | 2.9% | |
9.7 | 9.2 | |
about 13 hours ago | 5 days ago | |
Go | Go | |
GNU General Public License v3.0 or later | 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.
skipper
-
Using spring boot for a gateway
So my advice is: Don‘t implement anything someone else already did better and have a look at Skipper: https://github.com/zalando/skipper
-
Validating Admission Requests in a Validating Admission Webhook
That's all! You can find a complete example of an Admit func from the Validating Admission Webhook in Skipper. I've also included an abridged version at the end of this blog post.
-
Making the ValidatingWebhook Testable
This series is based on my experience adding a ValidatingAdmissionWebhook to Skipper, modern HTTP proxy.
-
Parsing Admission Requests in a Validating Admission Webhook
You can find an abridged version of admission.Handler under "Reference". For a complete example of a validating admission webhook being used in production, checkout the validating admission webhook in Skipper, our HTTP reverse proxy.
api
-
Exemple of Web API written in Go that you'd consider high quality
Good point, here it is https://github.com/kubernetes/api
-
alternative to kubectl explain?
Better is probably subjective, but you have options. You can run the doc website locally (https://github.com/kubernetes/website) or search the API definitions directly (https://github.com/kubernetes/api). Good ol `git grep` I suppose.
-
Using client-go to `kubectl apply` against the Kubernetes API directly with multiple types in a single YAML file
I understand that I need to do some (un)marshalling of the YAML bytes into the correct API types defined in package: https://github.com/kubernetes/api
-
Why isn't there a good/standard C++ API for kubernetes
Despite that though, someone was generous enough to ensure that there are protobuf files laying around for us to use.
-
Implementing a simple K8s admission controller in Go
Then we have to create the admissionHandler to receive all the requests from our webhooks. These requests are coming with a JSON-encoded AdmissionReview (with the Request field filled) in the request body. The response should be a JSON AdmissionReview with the Response field filled.
-
5 Time saving things about client-go, I didn't know!
k8s.io/client-go isn’t enough to talk to kubernetes API, you need k8s.io/api and k8s.io/apimachinery too You have to match their versions for it to all work! See the client-go versioning for simple instructions!
-
Validating Admission Requests in a Validating Admission Webhook
You can find the definitions of the AdmissionReview object in k8s.io/api repository.
-
Parsing Admission Requests in a Validating Admission Webhook
Note how I am just using the upstream AdmissionReview type from k8s.io/api/admission/v1 here. You can find other Kubernetes types in the k8s.io/api repo as well.
What are some alternatives?
opera-proxy - Standalone client for proxies of Opera VPN
kubectl-explore - A better kubectl explain with the fuzzy finder
kube-httpcache - Varnish Reverse Proxy on Kubernetes
apimachinery
application-gateway-kubernetes-ingress - This is an ingress controller that can be run on Azure Kubernetes Service (AKS) to allow an Azure Application Gateway to act as the ingress for an AKS cluster.
cert-manager - Automatically provision and manage TLS certificates in Kubernetes
botkube - An app that helps you monitor your Kubernetes cluster, debug critical deployments & gives recommendations for standard practices
kubernetes - Production-Grade Container Scheduling and Management
haproxy-ingress - HAProxy Ingress
aws-iam-authenticator - A tool to use AWS IAM credentials to authenticate to a Kubernetes cluster
k8tz - Kubernetes admission controller and a CLI tool to inject timezones into Pods and CronJobs
c - Official C client library for Kubernetes