Skip to content

Instantly share code, notes, and snippets.

@radu-matei
Last active February 12, 2018 16:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radu-matei/02c994d7c4d6b9774673152562b34944 to your computer and use it in GitHub Desktop.
Save radu-matei/02c994d7c4d6b9774673152562b34944 to your computer and use it in GitHub Desktop.
kube-toolkit
-------------
Intro
-----
- toolkit for creating gRPC-based CLI and web tools for Kubernetes, and it should be used as a starting point in new awesome tools for Kubernetes
- CLI tooks: kubectl, helm draft
- web tools: Kubernetes UI Dashboard, Monocular
(similar architecture with Helm, Draft)
- client - local CLI client that deploys the server and the dashboard to your Kubernetes cluster and interacts through gRPC with the server via a Kuberentes tunnels to localhost
- server - gRPC server that is deployed on your Kubernetes cluster and responds to requests coming from the clients
- dashboard - web application that communicates with the server through a gRPC-gateway
- uses Kubernetes API to create authenticated tunnels back to the cluster, using gRPC as the underlying communication protocol
Get started
-----------
- (make or) download client binary it has no local dependencies
bin/ktk init --server-image radumatei/kube-toolkit:latest --dashboard-image radumatei/kube-toolkit-dashboard:v0.4.3
(real life: <you-tool> init - versions for testing, faster iteration)
- this creates a deployment in your cluster with the server and dashboard
bin/ktk version
bin/ktk stream
bin/ktk proxy
Extending
---------
- just a starting point, needs to be extended with your functionality
service GRPC {
rpc GetVersion(google.protobuf.Empty) returns (Version){
option (google.api.http) = {
get: "/api/version"
};
}
rpc ServerStream(google.protobuf.Empty) returns(stream Message){}
}
- make rpc
- protoc
- swagger-codegen-cli
- make client
- make server
Work in progress
----------------
- integrate with Draft for fast iteration
- Helm pack?
- state management with etcd (WIP) (or config maps?)
- RBAC
- SSL
- feedback, ideas :D
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment