Improve the dev experience when working with features related to Kubernetes
When working for the deliverables for this release (11.1). I was met with a problem when trying to set up clusters locally.
Since the features that I need to work on are spread across CE and EE, one way (or so I thought at the time) was to have a local minikube set up for both GDK's, the problem is when I go to a particular project, it asks to install stuff like the helm tiller, runner and prometheus again, which it fails (I can't get a screenshot at the moment)
So a couple of workarounds that I've been using are the following:
-
Delete the minikube instance and recreate it again, this is for each time that I want to work on either CE or EE. This is far from optimal, specially because the setup takes a little bit of time and sometimes I encounter errors from minikube that are weird to debug. Not to mention my mac is burning hot with both the GDK and minikube are working at the same time, also the memory consumption is so high that it makes using the mac a little bit frustrating.
-
Work on a single GDK (a GDK running on EE as to cover both CE and EE), get the diffs or push a branch and cherry pick the commits on CE, again not entirely optimal but it works, feels like being a release manager. A little less time consuming but again I feel this might no be the best way.
A couple of suggestions
-
Provide devs who need to work on kubernetes related features, clusters on GCP, but this can quickly become difficult to maintain (it can also be very expensive in the long run).
-
Provide ways to mock up the data that comes from kubernetes, such as the MockCI integration that exists for dev environments. Not sure how feasible this is to be honest.
Another thing to note, while I think the provided equipment works great for me (as a frontend engineer). The addition of having to run kubernetes quickly makes my setup a little bit slow, which affects productivity. I don't know if requesting for a new machine would make things better.
Apologies for the wall of text, I wasn't sure how to formulate all of the issues that I've been encountering so far, please let me know if I need to elaborate more, I'd be happy to do so