grml / grml-debootstrap

wrapper around debootstrap
59 stars 27 forks source link

Re-write grml-debootstrap in Go #148

Open suntong opened 4 years ago

suntong commented 4 years ago

Separate from here

As grml-debootstrap getting more and more complicated, it make sense to bit the bullet and re-write it in Golang at some point, just as what Docker has been doing.

Go is a simple language which can be taken on within no time, if you are a C/C++ developer. I looked into it more than 10 years ago, when I heard that Docker turn their spaghetti shell script into Go, which was the problem I was facing then as well.

The plan is confirmed by @mika:

I'm familiar with golang and was considering rewriting grml-debootstrap already, but before doing so, I'd like to have more tests in place and also look into some design issues like we hit in #76. I was also considering using grml-debootstrap instead of FAI within grml-live, so that's something else to keep in mind, without taking the risk of running into the second-system effect. :)

Thus log a separate issue, and when it's about ready, drop me a note, I'd be more than happy to help on the command line parameters handling part. And in fact, also the whole CI/CD part, including building your own (quick) Debian package during CI/CD.

mika commented 4 years ago

FTR, getting inspiration from https://github.com/bdrung/bdebstrap might be interesting, if we should really rewrite grml-debootstrap

suntong commented 4 years ago

Ahh, I like every concept of it, just, Python, hmm..., that's ... quite a pity.

suntong commented 3 years ago

Found another YAML based Debian OS builder, but this one is in Go. People might already knew it, but I only know it today, :)

https://github.com/go-debos/debos

suntong commented 3 years ago

For Python based solution, I'd rather choose cloud-init: cloud instance initialization, the industry standard multi-distribution method for cross-platform cloud instance initialization.

It is supported across all major public cloud providers, provisioning systems for private cloud infrastructure, and bare-metal installations.