From thomas at koch.ro Sun Feb 24 17:37:37 2019 From: thomas at koch.ro (Thomas Koch) Date: Sun, 24 Feb 2019 18:37:37 +0100 (CET) Subject: [mgmt] intro questions Message-ID: <776084828.7008.1551029857198@office.mailbox.org> Hi, I looked through mgmt, blogposts, docs, examples and code for half a day now. I love the ideas and think mgmt + systemd could be a kubernetes replacement for smaller use cases. Some questions came up during reading: a) What is etcd used for when I run a single instance of mgmt? b) What is the general flow of execution of mgmt? c) Can you point to important entry points in the code to get an overview? d) What is the smallest core of mgmt that I can execute to start exploring the rest from this core? E.g. can I run mgmt over graph files and ignore everything about lang parsing for the beginning? And bonus e) How much would I need to pay you so that you continue the development of mgmt in Haskell? :-) I also filled my first issue: https://github.com/purpleidea/mgmt/issues/472 Thank you for this great new approach! From purpleidea at gmail.com Sun Feb 24 18:33:38 2019 From: purpleidea at gmail.com (James) Date: Sun, 24 Feb 2019 13:33:38 -0500 Subject: [mgmt] intro questions In-Reply-To: <776084828.7008.1551029857198@office.mailbox.org> References: <776084828.7008.1551029857198@office.mailbox.org> Message-ID: On Sun, 2019-02-24 at 18:37 +0100, Thomas Koch wrote: > Hi, Welcome! > > I looked through mgmt, blogposts, docs, examples and code for half a > day now. I hope it wasn't too confusing to have to dig through the different places to get the information you needed. > I love the ideas Thanks! > and think mgmt + systemd could be a kubernetes replacement for > smaller use cases. > > Some questions came up during reading: > > a) What is etcd used for when I run a single instance of mgmt? It's not, unless you had some code that used some world.* function. As an aside, the etcd/ part of the code base is one of the last remaining bits of older code which needs a bit of a clean-up. I'm about 1/2 way through this clean-up, and if I end up implementing etcd as a storage interface, then you could build a "noop" storage for cases when you *don't* want etcd running at all. But it's not a priority of mine. If you really want the standalone case and want to sponsor or write this feature, let me know. > b) What is the general flow of execution of mgmt? Not sure what you mean here, can you elaborate? > c) Can you point to important entry points in the code to get an > overview? I don't have good docs on the overall code base yet. I have given this information as part of technical workshops, so if you're interested in that I could arrange one. I am happy to point you in the right direction for a specific patch you're interested in working on. > d) What is the smallest core of mgmt that I can execute to start > exploring the rest from this core? E.g. can I run mgmt over graph > files and ignore everything about lang parsing for the beginning? What are graph files? (You can run the mgmt engine without running the language front-end if that's what you're asking.) > > And bonus e) How much would I need to pay you so that you continue > the development of mgmt in Haskell? :-) I considered haskell in the beginning, but for many reasons it wasn't a good fit. If you like functional programming and/or FRP, you might like our DSL language which is mostly "functional". Funding however *is* encouraged, since I'm doing this out of my own savings. https://www.patreon.com/purpleidea > > I also filled my first issue: > https://github.com/purpleidea/mgmt/issues/472 Already closed! > > Thank you for this great new approach! My pleasure! Thanks, James -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From purpleidea at gmail.com Tue Feb 26 08:03:16 2019 From: purpleidea at gmail.com (James) Date: Tue, 26 Feb 2019 03:03:16 -0500 Subject: [mgmt] release: 0.0.18 (core engine algorithm rewrite!) Message-ID: <8f01e0e92bb8e07a2bc993862f292e02e8276361.camel@gmail.com> I've just released version 0.0.18 of mgmt! > 202 files changed, 5606 insertions(+), 1880 deletions(-) There's some great stuff that landed since 0.0.17, including: * A re-write of the core engine algorithm * Tests are very stable * At least three old bugs were killed * An infra to write tests for individual resources was added And much more... This adds a significant amount of polish and bug fixes to mgmt. We're on the home stretch to MVP! DOWNLOAD Prebuilt binaries are available here: https://github.com/purpleidea/mgmt/releases/tag/0.0.18 NEWS * There was a rare race that would panic the engine on shutdown. This only seemed to happen in CPU/system call starved environments like travis-ci. This was due to some ignorance when writing this early part of the code base. The algorithm has been re-written, and this also removed the use of at least one mutex. Things should be stable now, and also much faster. (Although perf was never an issue.) * A hidden race/deadlock in the exec resource was found and killed. Woo! Some new tools to help find these and other problems are in misc/ * The early converger code was re-written. I was not as knowledgeable about golang in the very beginning, and this code needed refreshing. It contained a rare deadlock which needed to be killed. * Toshaan added an uptime() function. * Julien added a method for generating some simple functions for the language. * Lander added two new functions. * James added a new readfile() function, and other examples. * The template function now allows you to use imported functions. They use underscores instead of periods for namespace separation due to a limitation in the template library. * Kevin and I killed a tricky race in the SocketSet code! Woo :) Kevin also added a great cpucount() fact! * James gave a number of presentations at FOSDEM. Some recordings are available: https://purpleidea.com/talks/ * We're looking for help writing Amazon, Google, DigitalOcean, etc resources if anyone is interested, reach out to us. Particularly if there is support from those organizations as well. * Many other bug fixes, changes, etc... * See the git log for more NEWS, and for anything notable I left out! BUGS * An unfortunate bug in the type unification code was found. This can cause small code bases to take a lot of ram/cpu to run. This will be prioritized in an upcoming release. Until then you'll have to avoid fancy type unification. (Specify types you know when it has to guess.) If efficient type unification algorithms are your specialty, please let us know, we'd like your help! MISC We're still looking for new contributors, and there are easy, medium and hard issues available! You're also welcome to suggest your own! Please join us in #mgmtconfig on Freenode IRC, or ping this list if you'd like help getting started! For details please see: https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con tribute-to-the-project-if-i-dont-know-golang Many tagged #mgmtlove issues exist: https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% 3Amgmtlove MENTORING We offer mentoring for new golang/mgmt hackers who want to get involved. This is fun and friendly! You get to improve your skills, and we get some patches in return. Ping me off-list for details. THANKS Thanks (alphabetically) to everyone who contributed to the latest release: Felix Frank, James Shubin, Jeff Waugh, Johan Bloemberg, Julien Pivotto, Kevin Kuehler, Lander Van den Bulcke, Toshaan Bharvani We had 8 unique committers since 0.0.17, and have had 58 overall. run 'git log 0.0.17..0.0.18' to see what has changed since 0.0.17 Happy hacking, James @purpleidea -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: