No description
  • Go 97.9%
  • Yacc 0.8%
  • JavaScript 0.3%
  • Roff 0.3%
  • Shell 0.2%
  • Other 0.3%
Find a file
Alexander Ebel 4bc49505d3 feat: add per-jail fstab_extra mounts
Allow optional per-jail extra fstab lines and auto-create mountpoint directories under the jail ROOT.

Made-with: Cursor
2026-04-16 13:27:36 +02:00
cmd feat: add per-jail fstab_extra mounts 2026-04-16 13:27:36 +02:00
core feat: add crypto.wg_link_local MCL function 2026-04-10 13:51:02 +02:00
docs Initialize grctl with mgmt-based CLI scaffold 2026-03-13 13:23:03 +01:00
examples feat: add per-jail fstab_extra mounts 2026-04-16 13:27:36 +02:00
internal/config feat: add deploy target filters and runner tag registration 2026-03-16 18:38:46 +01:00
lang feat: hierarchical hostdata with SOPS encryption 2026-04-07 19:39:26 +02:00
resources/freebsd feat: add per-jail fstab_extra mounts 2026-04-16 13:27:36 +02:00
runtime/deploytarget Add modular infrastructure configuration and cross-platform stubs 2026-03-19 17:48:59 +01:00
vendor feat: add crypto.wg_link_local MCL function 2026-04-10 13:51:02 +02:00
.gitignore Postgres Jail 2026-04-04 22:17:48 +02:00
AGENTS.md fixed and added AGENTS.md 2026-03-15 12:54:16 +01:00
build.sh fix: build.sh uses native build for macOS without GOOS/GOARCH 2026-03-19 11:49:08 +01:00
COPYING Initialize grctl with mgmt-based CLI scaffold 2026-03-13 13:23:03 +01:00
go.mod feat: hierarchical hostdata with SOPS encryption 2026-04-07 19:39:26 +02:00
go.sum feat: hierarchical hostdata with SOPS encryption 2026-04-07 19:39:26 +02:00
PLAN.md Initialize grctl with mgmt-based CLI scaffold 2026-03-13 13:23:03 +01:00
README.md docs: update FreeBSD resources list in README 2026-03-14 11:04:09 +01:00

grctl

grctl is a graph-based configuration automation tool built on selected core components of the mgmt project.

It focuses on a simplified runtime and a FreeBSD-first environment while reusing the powerful graph engine and MCL language from mgmt.

Goals

  • Reuse the mgmt engine, lang, and pgraph components
  • Provide a simplified runtime
  • Focus on FreeBSD systems
  • Use MCL (Mgmt Configuration Language) as the configuration language
  • Avoid unnecessary complexity such as embedded etcd

Non-Goals

  • Linux feature parity
  • Embedded etcd cluster management
  • DHCP / BOOTP services
  • Puppet compatibility
  • YAML graph definitions

Example

grctl apply system.mcl

Example MCL:

file "/etc/motd" { content = "Managed by grctl\n" }

Disclaimer

Work in Progress — Use at Your Own Risk

This project is under active development and should be considered unstable. Breaking changes may occur between any two versions without prior notice or a migration path. Configuration files, CLI flags, and internal APIs are all subject to change at any time.

Use in production environments is strongly discouraged. The authors assume no responsibility for data loss, system misconfiguration, or any other damage caused by the use of this software. You use grctl entirely at your own risk.

Credits

Special thanks to James Shubin and the entire mgmt team and contributors for their outstanding work on the mgmt project, which provides the core components that this tool is built upon.

License

GPLv3

TODO: FreeBSD Resources

The following resources from mgmt have not yet been converted for FreeBSD:

Resource Notes
augeas Linux-focused configuration editing
aws_ec2 Cloud integration
bmc BMC/IPMI management
consul_kv Consul key-value store
cron Cron job management
deploy_tar Tar deployment
dhcp DHCP server
firewalld Linux firewall
fwattr Firewall attributes
gsettings GNOME settings
gzip Gzip compression
hetzner_vm Hetzner cloud VMs
http HTTP client
http_server HTTP server
line Line in file
mount Mount management
nspawn Linux containers
panic Panic resource
pippet Pipelines
print Print output
schedule Scheduling
ssh_authorized_key SSH keys
sysctl Sysctl management
tar Tar archives
test Testing resource
tftp TFTP server
value Value resource
virt Virtualization

Implemented FreeBSD resources: exec, file, group, hostname, jail, jail_ready, kv, msg, net, noop, password, pkg, pkg_uid, route, svc, sysrc, timer, user, zfs, zpool