DEV Community

loading...

Discussion on: 1 min* to run a service in Kubernetes — kapp tool

Collapse
peterj profile image
Peter Jausovec Author

Thanks for that link! I skimmed through that article and I don't disagree with points made, but it doesn't seem anything directly applies to my usage of the Makefile. I am not worried about performance either as the tasks are fairly straightforward and simple.

I was thinking about using a script instead, but a Makefile felt more standard and something users would be more familiar with (e.g. more people know about make [task_name] than mycustomscript.sh [my_command]). Makefile seemed the most appropriate tool for this.

Did you had any other tools in mind?

Collapse
lietux profile image
Janne "Lietu" Enberg

In that case I guess the most obvious issue with make is poor Windows support, and imo tools of this nature generally should be as cross-platform as possible.

I didn't really think of anything specific, Python scripting is one of the most cross-platform options out there with a lot of power to it as well, but if you're writing Go tools, why not write your tools in Go? Afaik it should be rather well suitable for that stuff too, and if your Makefile rules are simple, they would likely be ported with minimal effort.

goroutines.com/shell seems relevant

gist.github.com/posener/73ffd326d8... seems neat too

Thread Thread
peterj profile image
Peter Jausovec Author

Yeah, I specifically mentioned I worked on Mac, so this (probably) won't work on Windows :) I logged an issue on this and if you're interested, I'd love to get more thoughts from you on what the best way to implement cross-platform support would be.

Using Python or Go to implement the tasks I have in the Makefile (e.g. build/push docker images, invoke helm, go build, etc.) just seemed to be an overkill.

I love Python, but the big downside of Python in this case is that you actually need to have it installed on the machine; that would add an additional dependency (both on MacOS, that has an old version of Python by default, and on Windows that doesn't have any versions :)).

For Go, well the biggest downside would be that I'd either need to build an additional tool and then either drop it into your folder when you run kapp OR install that tool for you automatically when you raun kapp OR have kapp actually implement all these tasks, so one could do kapp build or kapp install.app.

The latter sounds the best to me, but as I mentioned previously, I didn't want to load the kapp tool with additional commands and have you think about what to run and get used to the syntax :) Another downside of it would be that if you wanted to do certain tasks a bit differently, you'd be stuck - with Makefile (not being perfect), but at least you have access to tasks right there and you can modify them as much as you like :)