This commit is contained in:
Maarten 2026-02-18 14:18:37 +01:00
parent ef98e3f131
commit 8260f04389
4 changed files with 42 additions and 7 deletions

View File

@ -129,7 +129,7 @@ Customize with `--batch-arches` and `--batch-apps`:
Generates IncusOS seed archives containing the YAML configuration files Generates IncusOS seed archives containing the YAML configuration files
that customize an IncusOS installation. Output can be: that customize an IncusOS installation. Output can be:
- **tar archive** (default) -- for use with `flasher-tool --seed-tar` - **tar archive** (default) -- for use with `flasher-tool --seed`
- **FAT image** -- for use as an external SEED_DATA partition/disk - **FAT image** -- for use as an external SEED_DATA partition/disk
### Quick Start ### Quick Start

View File

@ -11,7 +11,7 @@
# #
# Usage with flasher-tool (place files in a tar archive): # Usage with flasher-tool (place files in a tar archive):
# tar -cf seed.tar install.yaml applications.yaml incus.yaml # tar -cf seed.tar install.yaml applications.yaml incus.yaml
# flasher-tool --seed-tar seed.tar # flasher-tool --seed seed.tar
# --- install.yaml --- # --- install.yaml ---
# force_install: true # force_install: true

View File

@ -481,6 +481,7 @@ detect_client_cert() {
success "Certificate obtained from Incus CLI" success "Certificate obtained from Incus CLI"
return return
fi fi
detail "Incus CLI available but could not retrieve certificate"
fi fi
# Try common file locations # Try common file locations
@ -498,7 +499,25 @@ detect_client_cert() {
fi fi
done done
warn "No client certificate found -- image will require manual certificate setup" # Determine how serious the missing cert is
if [[ "$APP" == "operations-center" ]]; then
error "No client certificate found"
error "Operations Center requires at least one trusted certificate for access"
error ""
error "Options:"
error " --cert FILE Provide a certificate file"
error " Install the Incus client: sudo apt install incus-client"
error " --no-cert Skip certificate (you will be locked out!)"
exit 1
fi
warn "No client certificate found"
if ! command -v incus &>/dev/null; then
warn "The Incus client is not installed on this machine"
warn "Install it to enable auto-detection: sudo apt install incus-client"
fi
warn "The installed system will require manual certificate trust setup"
warn "Use --cert FILE to provide a certificate, or --no-cert to suppress this warning"
} }
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
@ -761,7 +780,7 @@ build_single() {
# Build flasher-tool command # Build flasher-tool command
local cmd=("$FLASHER_TOOL") local cmd=("$FLASHER_TOOL")
cmd+=(--format "$format") cmd+=(--format "$format")
cmd+=(--seed-tar "$seed_tar") cmd+=(--seed "$seed_tar")
cmd+=(--channel "$CHANNEL") cmd+=(--channel "$CHANNEL")
if [[ "$needs_download" == true ]]; then if [[ "$needs_download" == true ]]; then

View File

@ -77,7 +77,7 @@ ${BOLD}OPTIONS${RESET}
${BOLD}Output options:${RESET} ${BOLD}Output options:${RESET}
${BOLD}-f, --format${RESET} FORMAT Output format: ${CYAN}tar${RESET}, ${CYAN}fat${RESET} (default: tar) ${BOLD}-f, --format${RESET} FORMAT Output format: ${CYAN}tar${RESET}, ${CYAN}fat${RESET} (default: tar)
tar: for use with flasher-tool --seed-tar tar: for use with flasher-tool --seed
fat: FAT image with SEED_DATA label for external media fat: FAT image with SEED_DATA label for external media
${BOLD}--fat-size${RESET} SIZE FAT image size in MiB (default: 10) ${BOLD}--fat-size${RESET} SIZE FAT image size in MiB (default: 10)
@ -353,9 +353,25 @@ detect_client_cert() {
fi fi
done done
# Determine how serious the missing cert is
if [[ "$APP" == "operations-center" ]]; then
error "No client certificate found"
error "Operations Center requires at least one trusted certificate for access"
error ""
error "Options:"
error " --cert FILE Provide a certificate file"
error " Install the Incus client: sudo apt install incus-client"
error " --no-cert Skip certificate (you will be locked out!)"
exit 1
fi
warn "No client certificate found" warn "No client certificate found"
if ! command -v incus &>/dev/null; then
warn "The Incus client is not installed on this machine"
warn "Install it to enable auto-detection: sudo apt install incus-client"
fi
warn "The installed system will require manual certificate trust setup" warn "The installed system will require manual certificate trust setup"
warn "Use --cert FILE to specify a certificate, or --no-cert to suppress this warning" warn "Use --cert FILE to provide a certificate, or --no-cert to suppress this warning"
} }
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
@ -638,7 +654,7 @@ print_summary() {
if [[ "$FORMAT" == "tar" ]]; then if [[ "$FORMAT" == "tar" ]]; then
echo -e "${DIM} Use with flasher-tool:${RESET}" echo -e "${DIM} Use with flasher-tool:${RESET}"
echo -e " flasher-tool --seed-tar ${OUTPUT}" echo -e " flasher-tool --seed ${OUTPUT}"
elif [[ "$FORMAT" == "fat" ]]; then elif [[ "$FORMAT" == "fat" ]]; then
echo -e "${DIM} Attach as secondary disk/ISO to the VM.${RESET}" echo -e "${DIM} Attach as secondary disk/ISO to the VM.${RESET}"
echo -e "${DIM} IncusOS will detect the SEED_DATA label at boot.${RESET}" echo -e "${DIM} IncusOS will detect the SEED_DATA label at boot.${RESET}"