bootc-docs/upgrade/quick-reference.md
robojerk 526f1c1afd Initial commit: Comprehensive Debian bootc documentation
- Complete documentation for all bootc commands and subcommands
- Debian-specific adaptations and workarounds
- Manual installation methods to bypass bootc reliability issues
- Technical guides with Rust source code analysis
- Flowcharts and external command references
- Hidden command documentation (bootc internals, state, etc.)
- Composefs integration analysis
- Base image creation guides (with and without bootc binary)
- Management scripts and automation
- Comprehensive troubleshooting and examples
2025-09-15 14:02:28 -07:00

6.7 KiB

bootc upgrade - Quick Reference

Command Syntax

bootc upgrade [OPTIONS...]

Common Options

Option Description Example
--check Check for updates without downloading bootc upgrade --check
--apply Apply updates and reboot bootc upgrade --apply
--quiet Suppress progress output bootc upgrade --quiet
--soft-reboot Configure soft reboot behavior bootc upgrade --apply --soft-reboot=auto

Soft Reboot Modes

Mode Description Use Case
required Fail if soft reboot unavailable Virtualized environments
auto Use soft reboot if available General use (recommended)

Common Commands

Check for Updates

# Check if updates are available
bootc upgrade --check

# Check quietly
bootc upgrade --check --quiet

Download Updates

# Download and stage updates
bootc upgrade

# Download quietly
bootc upgrade --quiet

Apply Updates

# Apply updates and reboot
bootc upgrade --apply

# Apply with soft reboot
bootc upgrade --apply --soft-reboot=auto

# Apply with required soft reboot
bootc upgrade --apply --soft-reboot=required

Update Workflow

1. Check Phase

# Check for updates
bootc upgrade --check

# Expected output:
# Update available for: quay.io/myorg/debian-bootc:latest
#   Version: 1.2.3
#   Digest: sha256:abc123...

2. Download Phase

# Download updates
bootc upgrade

# Expected output:
# Update available for: quay.io/myorg/debian-bootc:latest
#   Version: 1.2.3
#   Digest: sha256:abc123...
# Staging update...
# Update staged successfully

3. Apply Phase

# Apply updates
bootc upgrade --apply

# Expected output:
# Update available for: quay.io/myorg/debian-bootc:latest
#   Version: 1.2.3
#   Digest: sha256:abc123...
# Staging update...
# Update staged successfully
# Rebooting system...

Status Commands

Check System Status

# View current status
bootc status

# Check for updates
bootc upgrade --check

# View status in JSON
bootc status --json

Status Indicators

Status Description
booted Currently running system
staged Update ready for next boot
incompatible System has local modifications

Common Use Cases

1. Manual Updates

# Check and apply updates
bootc upgrade --check
bootc upgrade --apply

2. Automated Updates

# Automated update with soft reboot
bootc upgrade --apply --soft-reboot=auto --quiet

3. CI/CD Integration

# Check for updates
bootc upgrade --check

# Apply if available
if [ $? -eq 0 ]; then
    bootc upgrade --apply --soft-reboot=auto
fi

4. Monitoring

# Check update availability
bootc upgrade --check

# Check system status
bootc status

Troubleshooting

Common Issues

Problem Solution
No updates available Check image source with bootc edit
Update fails to download Check network and authentication
Update fails to apply Check system compatibility and logs
Soft reboot fails Use --soft-reboot=auto or regular reboot

Debug Commands

# Enable debug logging
RUST_LOG=debug bootc upgrade --check

# Check system status
bootc status

# Check system logs
journalctl -u bootc-fetch-apply-updates.service

# Check image source
bootc edit

Recovery Commands

# Rollback to previous version
bootc rollback

# Check rollback status
bootc status

# Reset local modifications
rpm-ostree reset

Best Practices

1. Update Strategy

  • Test First: Test updates in staging environment
  • Check Before Apply: Use --check before --apply
  • Use Soft Reboot: Use --soft-reboot=auto when possible
  • Monitor Status: Check bootc status regularly

2. Automation

  • Use --check: For monitoring and CI/CD
  • Use --apply: For automated deployments
  • Use --quiet: For automated scripts
  • Handle Errors: Check return codes and handle failures

3. Security

  • Verify Images: Ensure images are signed and trusted
  • Use HTTPS: Use secure registry connections
  • Monitor Logs: Check system logs for issues
  • Test Rollback: Ensure rollback works before applying

Integration Examples

Systemd Service

# /etc/systemd/system/bootc-update.service
[Unit]
Description=Update bootc system
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/update-system.sh

[Install]
WantedBy=multi-user.target

Cron Job

# Add to crontab
0 2 * * * /usr/local/bin/update-system.sh

Shell Script

#!/bin/bash
# update-system.sh

if bootc upgrade --check; then
    bootc upgrade --apply --soft-reboot=auto
fi

Performance Tips

1. Speed Optimization

  • Use --check: For quick availability checks
  • Use --soft-reboot: For faster restarts
  • Use --quiet: For automated scripts
  • Check First: Use --check before downloading

2. Bandwidth Optimization

  • Check First: Use --check before downloading
  • Use Local Mirrors: Use local registry mirrors
  • Incremental Updates: Only download changed layers
  • Offline Updates: Download updates offline

3. System Impact

  • Staged Updates: No impact on running system
  • Atomic Application: All-or-nothing updates
  • Rollback Capability: Quick recovery from issues
  • State Preservation: Preserves /etc and /var

Security Considerations

1. Image Security

  • Signature Verification: Ensure images are signed
  • Registry Security: Use trusted registries
  • Digest Verification: Verify image digests
  • Access Control: Control update permissions

2. Update Security

  • Network Security: Use secure connections
  • Authentication: Authenticate with registries
  • Authorization: Control update permissions
  • Audit Logging: Log all update activities

3. Rollback Security

  • State Preservation: Ensure /etc and /var are secure
  • Access Control: Limit rollback permissions
  • Audit Logging: Log all rollback activities
  • Testing: Test rollback procedures regularly

Future Features

1. Planned Enhancements

  • Userspace Restart: For kernel-unchanged updates
  • Delta Updates: More efficient layer downloads
  • Rollback Automation: Automatic rollback on failure
  • Update Scheduling: Time-based update application

2. Integration Improvements

  • API Support: REST API for update management
  • Webhook Integration: Event notifications
  • Metrics Collection: Update performance metrics
  • Dashboard Integration: Web-based management

This quick reference provides essential commands and patterns for using bootc upgrade effectively.