datawire / kubernaut

Instant ephemeral Kubernetes clusters for development and testing
Apache License 2.0
117 stars 8 forks source link

Improve Kubernaut development loop #49

Open plombardi89 opened 5 years ago

plombardi89 commented 5 years ago

Kubernaut is rather painful to develop on, not because it is a complex technical project, but because there are several moving parts that need to be developed.

  1. The API server and claims broker
  2. The Kubernaut VM image (dev loop is painful because need to setup ad-hoc cloud resources to hack on it)
  3. The Kubernautlet (aka "kubernaut-agent") which registers and heartbeats the availability of a cluster to the broker.
  4. Various "cloud" specific things (e.g. VPC management, autoscaling group management). They're not intuitive or exposed in a dev-friendly way.
  5. The Kubernaut CLI
  6. The fronting API gateway and authentication system.

This is a bit of a planning / goal setting epic. But we should look into why extending Kubernaut is difficult. I suspect it's some of the following:

  1. Poor architectural and operational docs.
  2. The broker is written in Kotlin rather than Python or Go.
  3. Dev environment setup is difficult.
  4. We lack a good separation between "live" and "staging" environments.

Any other issues folks can think of that come to mind?