Commit Graph

9 Commits

Author SHA1 Message Date
holger krekel
b022a61955 try to discover and use host dns settings instead of 9.9.9.9 2026-03-10 13:25:52 +01:00
holger krekel
04ac2cf700 lxc: code cleanup and docs polish from review
Code:
- Fix check_ssh_config_include() to do a case-insensitive line match
  (read_text().splitlines() instead of filter(None, map(..., open()))).
- Drop the default help_text= from _add_name_args(); callers now must
  supply an explicit string.
- Expand the DNSContainer class docstring.
- Fix sysctl comment: note that incus provides net.* virtualization
  so the sysctl only affects the container's network namespace.

Docs (doc/source/lxc.rst):
- Remove double blank line after page title; fix missing comma.
- Replace the plain-text root-access note with a .. caution:: block.
- Tighten the Quick-start section and lxc-test CLI entry.
2026-03-08 23:40:37 +01:00
holger krekel
e2ec0cf2c5 lxc: simplify to a single find_image(aliases) method
Replace the two-function find_relay_image / _find_relay_image pair
with Incus.find_image(aliases), which returns the first alias
that exists in the local image store, or None.

Container.launch() passes [RELAY_IMAGE_ALIAS, BASE_IMAGE_ALIAS]
and ensure_base_image() passes [BASE_IMAGE_ALIAS].
2026-03-08 23:40:37 +01:00
holger krekel
cf2cb57cca address link2xt review comments 2026-03-08 23:40:37 +01:00
holger krekel
693c3f8555 address link2xt comments (zone parsing and turn v0.4 release 2026-03-08 23:40:37 +01:00
holger krekel
371efdfafb simplify start instructions 2026-03-08 23:40:37 +01:00
holger krekel
23765a5ed8 make helpers testable and test them, also streamline intro of docs 2026-03-08 23:40:37 +01:00
holger krekel
624838eedd don't use env vars but explicit pytest options to pass ssh info around. 2026-03-08 23:40:37 +01:00
holger krekel
1abdc407af feat: add LXC container support for local chatmail development
Add cmdeploy "lxc-test" command to run cmdeploy against local containers,
with supplementary lxc-start, lxc-stop and lxc-status subcommands.
See doc/source/lxc.rst for full documentation including prerequisites,
DNS setup, TLS handling, DNS-free testing, and known limitations.

Apart from adding lxc-specific docs, tests, and implementation files in the cmdeploy/lxc directory,
this PR adds the --ssh-config option to cmdeploy run/dns/status/test commands and pyinfra invocations,
and also to sshexec (Execnet) handling.  This allows for the host to need no DNS entries for a relay,
and route all resolution through ssh-config.  This is used by the "lxc-test" command, which performs
a completely local setup -- again, see docs for more details.

While working on DNS/SSH things i also unified all zone-file handling
to use actual BIND format as it is easy enough to parse back.
2026-03-08 23:40:37 +01:00