1
0
Fork 0
Commit graph

78 commits

Author SHA1 Message Date
147e5630aa
generate: container: Create new ContainerOptions class for read_only and Co
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 16:20:12 +02:00
e4ec47401e
generate: generate: Bump version to 0.0.10
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 16:01:37 +02:00
45d2e3a3d1
containerrc: Update JSON schema
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 16:00:52 +02:00
7a794197f4
generate: container: Allow one volume to be mounted multiple times
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 15:58:53 +02:00
8b7221363c
generate: container: Allow one secret to be used multiple times
Secret a can now be used more than once, but currently only with the same
secret type.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 15:51:53 +02:00
486a38440f
generate: container: Add command section to image configuration
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-08 15:43:39 +02:00
fb6aadb63c
generate: generate: Bump to 0.0.9
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 21:04:14 +02:00
2476d72192
generate: container: Update Network.from_json and Environment.command
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 21:03:33 +02:00
ec61600b87
generate: container: s/container crate/container create
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 21:00:39 +02:00
62d56248df
containerctl: Check if python3 is at least 3.11
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 20:37:28 +02:00
e4051fe4e4
generate: generate: Bump to 0.0.8
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 20:14:02 +02:00
cb2db03e4a
make: Update DESTDIR usage
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 20:13:34 +02:00
75b9b15f47
generate: container: Accept empty env section
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-07 20:12:00 +02:00
376fe7e5af
generate: generate: Bump to 0.0.7
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:43:11 +02:00
c68b1c288d
make: Create ENVDIR during install
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:42:39 +02:00
b638686cc4
generate: container: Change environment-file location
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:42:18 +02:00
6183b0907c
generate: generate: Add newline when adding placeholder content to script
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:39:48 +02:00
34b0d6f4ea
make: Don't add a / between PREFIX and the compound dir
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:35:48 +02:00
31d94b5266
generate: generate: Bump to 0.0.6
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:34:47 +02:00
260a0dcc52
generate: container: Improve optional feature handling
Things missing should now cause less problems.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 21:33:41 +02:00
6d9f63abb5
generate: container: Remove Nones and log_error() on missing optional keys
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 20:45:52 +02:00
4d86b49ed4
containerctl: s/generate_config/generate_container
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 20:38:22 +02:00
7a863bb7ea
containerctl: list_configs() should not use -type d
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 20:36:29 +02:00
7471bfbf70
generate: generate: Bump version to 0.0.5
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 20:32:43 +02:00
76b8728fec
generate: container: Fix Ports.command
The long option is --publish, not --ports...

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-04 20:32:04 +02:00
acacf19a12
generate: container: Drop or change removed log functions
Either drop the invocations or change them to log_error().

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-01 19:46:14 +02:00
d097cedc6b
generate: log: Simplify the Log class
Drop hard Log Levels and log_info() and _debug()

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-01 19:41:25 +02:00
0654f06a71
generate: container: The correct data type is guaranteed by maybe_or()
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-08-01 19:28:34 +02:00
07bd99d38e
REUSE: Add containerrc to CC0 group
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:26:12 +02:00
5bcf2f846c
generate: generate: Bump generate version to 0.0.4
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:25:07 +02:00
058af68169
generate: container: Implement Memory Accounting support
Add a Memory class and create it and its options from the Accounting
class.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:23:30 +02:00
6767d4e3af
example.container: Add accounting.memory example
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:12:52 +02:00
e8d3cd96eb
containerrc: Expand schema to allow memory accounting
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:12:38 +02:00
a8bf51020d
generate: container: Implement timezone support
Get timezone from the container config and fall back to local, which
uses the hosts timezone, if the config entry is missing or not a string.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:07:21 +02:00
3908ab3013
example.container: Add timezone example
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:03:29 +02:00
0a46bba629
containerrc: Add support for timezone changing
Might be needed for some applications.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:02:56 +02:00
18bb31cb96
generate: generate: Bump generate version to 0.0.3
Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 11:00:13 +02:00
3ed71b48ef
generate: container: Switch some maybe() calls to maybe_or()
Some places can use maybe_or() intead of maybe(), so use it there.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:59:18 +02:00
487be8c49a
generate: container: Don't warn or crash on missing optional keys
The entire accounting section is optional, so silently ignore when it is missing.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:51:33 +02:00
658fc6465c
containerrc: Run %s/ /\t/g on containerc
Replace indentation with tabs, by replacing every two spaces with one
tab.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:45:31 +02:00
1c2224cb19
containerrc: Remove extra } from schema
Those two are not needed.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:44:31 +02:00
8464196aaa
containerrc: Add accounting to schema
Adds accounting and its entries to the JSON schema.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:42:25 +02:00
4224112c62
generate: container: Fix Cgroup.command formatting
--cgroup-conf was missing the seperator.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:34:13 +02:00
1cd43e0c95
generate: container: Fix maybe_or()
isinstance() sadly can not get the type itself, so type() needs to be
called on _or first.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:32:15 +02:00
93245d5bc6
genreate: container: Add accounting support to Container.create
Add support for accouting to __init__ and create.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:31:02 +02:00
2a7bb0115c
generate: container: Implement Accounting, Cgroup and Cpu
Implment the 'Accounting', 'Cgroup', and 'Cpu' classes to control the
contaienr cgroup and cpu usage.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:24:51 +02:00
57b983e876
example.container: Add resource accounting
Add 'accounting' and its child-objects 'cgroup' and 'cpu' to control
the container cgroup and cpu usage.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-30 10:22:25 +02:00
e100abf698
example.container: Show a host volume in the example config
Since that is now possible, show an example for a host volume in the
example configuration.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-29 10:07:38 +02:00
a601e76a93
generate: container: Enable usage of host files / directories as volumes
From podman-create(1):

	If a volume source is specified, it must be a path on the host or the
	name of a named volume. Host paths are allowed to be absolute or relative;
	relative paths are resolved relative to the directory Podman is run in.
	If the source does not exist, Podman returns an error. Users must pre-create
	the source files or directories. Any source that does not begin with
	a . or / is treated as the name of a named volume.

Implement this with the is_host_volume() check.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-29 10:03:14 +02:00
4ce53cb20b
example.container: Update example config with volume mount options
Volumes can be mounted with some different flags or no flags at all.
Since converting the string into an object would be overkill, as most of
the time the default options should suffice, and branching in
Volumes.from_json() to handle both strings and objects is also no the
cleanest method, implement it by using what already exists. Mount points
are not checked by the script, so the mount options can just be added to
the CONTAINER-DIR part of the volume config.

Signed-off-by: Enno Tensing <tenno@suij.in>
2025-07-29 09:50:56 +02:00