James Shubin
583f90dc7b
util: distro: Rename functions to avoid golang stutter warning
2024-10-25 02:56:12 -04:00
James Shubin
85e1d6c0e8
engine: resources: Make sure to set the netmask
...
Some clients would DECLINE if this was not set. This was reproduced my
using the stock coredhcp DHCPv4 server and disabling the netmask plugin.
One of the clients that would DECLINE is a Lenovo ThinkCentre m90n doing
a UEFI (PXE) netboot.
This was found in 1327752725 and is
hopefully now completely fixed!
2024-10-25 00:57:50 -04:00
James Shubin
2c967e3897
util: Add a simple template system for systemd unit files
...
Just the basics for what we need, nothing more. Not intended as a
general-purpose library for use elsewhere.
2024-10-24 17:29:00 -04:00
James Shubin
202a8e1fba
util: Add a small helper to exec commands simply
2024-10-18 10:02:29 -04:00
James Shubin
e6085d77ff
util: Add an flock utility for lock file type things
...
Useful for ensuring only one binary runs at the same time.
2024-10-18 10:02:29 -04:00
James Shubin
10f82c6566
lang: core: list: Add a concat function
...
It works with arbitrary numbers of arguments too!
2024-10-18 10:02:29 -04:00
James Shubin
3d11b2caaf
lang: core: deploy: Add a function to help in obtaining bootstrap deps
...
This should make it easier to implement handoff.
2024-10-15 20:54:33 -04:00
James Shubin
f8037a1f99
lang: types: Add a small helper function for common type conversions
2024-10-15 20:53:39 -04:00
James Shubin
067eef9007
util: distro, engine: resources: Update virt-builder res
...
A little easier to maintain if we support more distros eventually.
2024-10-15 20:36:51 -04:00
James Shubin
e45d9be065
util: distro: Parse the os-release file
2024-10-15 20:36:51 -04:00
James Shubin
d24149518c
util: distro: Refactor family and distro code
...
I hate writing abstraction code like this, but I'm hoping it will be
useful.
2024-10-15 20:36:50 -04:00
James Shubin
d403f18b2a
util: distro: Put distro specific data in this util package
...
Try and see if we can put all our distro specific stuff in here...
2024-10-15 19:04:17 -04:00
James Shubin
1f12150d8f
engine: resources, examples: lang: Expand on future deploy ideas
...
This is one idea for reference. But I doubt this is needed anytime soon
since we have a good working solution in the examples.
2024-10-13 20:47:47 -04:00
James Shubin
d3a7cefcc6
engine: resources: Add an archiving, deploy resource
...
This makes a bundle out of the code in the current deploy. Hopefully
this is useful for handoff!
2024-10-13 16:44:23 -04:00
James Shubin
a8c8f09aa3
gapi: Plumb through a URI mechanism
...
This is at least a stop-gap until we redo the whole filesystem API mess.
I think golang is partly to blame because they don't have proper API's
merged yet.
2024-10-13 16:40:50 -04:00
James Shubin
b03fdeccae
lang: interfaces: Nil input means no args
2024-10-07 00:00:19 -04:00
James Shubin
6c12e8a29b
lang: gapi: The module path needs separate rebasing
...
If we're using a module path which doesn't share the same root, rebase
it separately.
2024-10-07 00:00:19 -04:00
James Shubin
310452542b
lang: gapi: Rebase to the common path prefix
...
When the modules dir is not within the main base, we don't correctly
choose the common base path. As a result, we should choose something
common for our internal path representation.
2024-10-05 01:02:03 -04:00
James Shubin
b514022713
util: Add some path manipulation algorithms
...
These could use some optimization by an algorithmist! Not urgent right
now since they're not currently in any fast paths in the code.
2024-10-05 01:02:03 -04:00
James Shubin
c937280664
engine: local, lang: core: local: Add a pool function
...
This adds a new local API for pool allocation, and with it a
corresponding function in the "local" import.
2024-10-04 22:37:39 -04:00
James Shubin
898b58e3e7
lang: core: strings: Add a substring function named substr
2024-10-03 13:49:08 -04:00
James Shubin
74119a0a53
lang: core: strings, util: Add left and right padding functions
...
Golang didn't want these in the standard library, but they are useful.
2024-10-03 13:49:08 -04:00
James Shubin
d6914d3437
lang: core: net: Improve formatting of the mac functions
2024-10-03 13:49:08 -04:00
James Shubin
fdfa03685c
lang: core: net: Add is_mac function
2024-10-02 14:31:20 -04:00
James Shubin
149a85fcde
modules: misc: Ensure the ssh key has a folder
2024-09-29 00:53:11 -04:00
James Shubin
65f26769ae
lang: core: net: Add a cidr to mask function
...
And tidy things up slightly to remove buggy tests.
2024-09-28 22:54:06 -04:00
James Shubin
6397c8f930
lang: Clean up import logs
...
We get a lot of useless noise here, make it neater.
2024-09-28 21:56:53 -04:00
James Shubin
761030b5b8
modules: misc: Make the ssh keygen module more useful
2024-09-26 12:52:27 -04:00
James Shubin
9a752da13d
modules: misc: Add a small helper module
...
Maybe I'll collect enough small snippets that I can keep them in here
until they get split out elsewhere to more appropriate places.
2024-09-26 12:43:26 -04:00
James Shubin
13fc711657
util: Expanding home directory should preserve trailing slash
...
Because we consider slashes as a directory identifier when needed.
2024-09-26 12:29:43 -04:00
James Shubin
6419f931ee
engine: resources: Add a virt-builder resource
...
This wraps the excellent virt-builder utility which makes setting up new
virtual machines a breeze.
2024-09-26 11:47:40 -04:00
James Shubin
562138cb74
lang: core: os: Add expand_home function
...
Simple helper that works with ~/foo/ or ~james/foo/ type patterns.
2024-09-25 20:31:18 -04:00
James Shubin
8aac770bcb
engine: resources: pkg: Add a small helper for simple installs
...
Add this utility function for doing single package installs.
2024-09-25 16:26:32 -04:00
James Shubin
80e8c9cadc
util: arch: Use small arch util library
...
Put all of the arch stuff that we can into this library.
2024-09-25 16:25:55 -04:00
James Shubin
87b3dda867
readme: Fixup typo
...
Reported in GH#775.
2024-09-19 13:22:00 -04:00
James Shubin
b9e093cd6b
engine: resources: svc: Reduce unnecessary logging
2024-09-18 21:47:29 -04:00
James Shubin
06a023ca66
engine: resources: sysctl: Be more careful about dir path
...
More validation is not bad!
2024-09-18 21:39:33 -04:00
James Shubin
ccb4c6244d
engine: resources: exec: Improve the docs for a common scenario
...
I knew this, and now you know it too!
2024-09-18 21:39:03 -04:00
James Shubin
4489e5ce6e
engine: graph: autoedge: Quiet down the useless logs
...
These are so useful, let's silence them.
2024-09-18 21:38:29 -04:00
James Shubin
8df82f0301
docs: Add a new faq entry about deploy.readfile
...
This may be a common thing people forget.
2024-09-18 21:38:08 -04:00
James Shubin
57b4a7efce
lib, engine: graph: Let children directories be readable
...
We want to be able to put useful scripts in $vardir type places, but if
the perms at the higher levels block this, then that can't work. The
top-level should always be more permissive, and then it grows more
restricted as we descend.
2024-09-18 21:03:58 -04:00
James Shubin
fd508fbc0d
engine: resources: Fix typo in svc
...
It's a typo, right?
2024-09-17 18:10:13 -04:00
James Shubin
a4f368fc9f
engine: resources: Add a sysctl resource
...
Very useful since these are easy to forget!
2024-09-15 23:07:03 -04:00
James Shubin
e7b57a32fd
engine: resources: Add a tar resource
...
This makes tar archives from a list of files and/or directories. It
correctly includes empty directories as well. The code structure is
similar to the gzip resource. While this resource is arguably more
useful than gzip, it was invaluable to write the gzip resource first
since that made writing this one much easier.
2024-09-13 20:04:53 -04:00
James Shubin
06cc63fcb6
util: recwatch: Add a helper function for merging these
...
I should really rework the recwatch package and API, but I wasn't in the
mood to touch this code today, so this will have to do for now.
2024-09-13 19:48:00 -04:00
James Shubin
e34212a10b
engine: resources: gzip: Check unhandled error
...
This is probably inconsequential, but let's do it since it's not in a
defer.
2024-09-13 19:48:00 -04:00
James Shubin
5f6e07b5e8
engine: resources: gzip: Fix typo
2024-09-13 16:24:01 -04:00
James Shubin
1465c5cdc9
engine: resource: gzip: Remove unneeded waitgroup
...
I think this was a copy+pasta mistake.
2024-09-13 16:13:03 -04:00
James Shubin
29eebd0d07
lang: core: Move template to golang namespace
...
I don't think this template function should be in any way authoritative,
so let's namespace it.
2024-09-13 15:51:24 -04:00
James Shubin
5bbc06d8bc
engine: resources: Add new gzip resource
...
This may have lots of uses, particularly for bootstrapping and handoff
if we want to compress payloads. It is also a good model resource for
how to implement such a resource to avoid re-computing the result on
every CheckApply call. Of course if the computation is cheaper than the
hashing of the data this isn't the optimal approach.
2024-09-13 03:32:10 -04:00