Update frontend docs and significantly refactor dependency-check tooling. - frontend: set supported version to "PVE 8.x / 9.x" and add info about --install/--status/--uninstall flags. - Add new tools/pve/dependency-check copy.sh (installer wrapper). - Rework tools/pve/dependency-check.sh: add CLI (install/status/uninstall), PVE version detection/validation, improved logging/colors, safer config parsing, more robust storage checks, validated tag handling (dep_ping/dep_tcp), portable TCP/ping checks, and wait/timeout helper. - Improve applicator script handling (ignore list, avoid overwriting other hookscripts), update systemd units (PathExistsGlob, unit binding), and implement uninstall to remove assignments and installed files. These changes harden lifecycle management and make installation/cleanup and runtime checks more robust and observable.
52 lines
2.2 KiB
JSON
52 lines
2.2 KiB
JSON
{
|
|
"name": "PVE Startup Dependency Check",
|
|
"slug": "dependency-check",
|
|
"categories": [
|
|
1
|
|
],
|
|
"date_created": "2025-08-12",
|
|
"type": "pve",
|
|
"updateable": false,
|
|
"privileged": false,
|
|
"interface_port": null,
|
|
"documentation": null,
|
|
"website": null,
|
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp",
|
|
"config_path": "/etc/default/pve-auto-hook",
|
|
"description": "This script checks for the presence of required dependencies before starting a VM or LXC container in Proxmox. It ensures that all referenced storages are available and, additionally, supports the usage of tags to check for specific dependencies. If any required dependency is missing, the VM or container will not start until the issue is resolved. This script is designed to be used as a Proxmox hookscript, which can be applied to both QEMU VMs and LXC containers.",
|
|
"install_methods": [
|
|
{
|
|
"type": "default",
|
|
"script": "tools/pve/dependency-check.sh",
|
|
"resources": {
|
|
"cpu": null,
|
|
"ram": null,
|
|
"hdd": null,
|
|
"os": null,
|
|
"version": "PVE 8.x / 9.x"
|
|
}
|
|
}
|
|
],
|
|
"default_credentials": {
|
|
"username": null,
|
|
"password": null
|
|
},
|
|
"notes": [
|
|
{
|
|
"text": "Execute within the Proxmox shell",
|
|
"type": "info"
|
|
},
|
|
{
|
|
"text": "The script supports --install (default), --status and --uninstall for clean lifecycle management.",
|
|
"type": "info"
|
|
},
|
|
{
|
|
"text": "To wait until a certain host is available, tag the VM or container with `dep_ping_<hostname>` where `<hostname>` is the name or IP of the host to ping. The script will wait until the host is reachable before proceeding with the startup.",
|
|
"type": "info"
|
|
},
|
|
{
|
|
"text": "To wait until a certain TCP port is open, tag the VM or container with `dep_tcp_<hostname>_<port>` where `<hostname>` is the name or IP of the host and `<port>` is the TCP port number. The script will wait until the port is open before proceeding with the startup.",
|
|
"type": "info"
|
|
}
|
|
]
|
|
} |