diff --git a/.bootc-dev-infra-commit.txt b/.bootc-dev-infra-commit.txt index a23c9fc..a864327 100644 --- a/.bootc-dev-infra-commit.txt +++ b/.bootc-dev-infra-commit.txt @@ -1 +1 @@ -1c2a5bc48c08d077982cbae3bb9cd03e2923683a +eb09fd52a83e77dad0465baded5c982c23bd5414 diff --git a/.github/actions/bootc-ubuntu-setup/action.yml b/.github/actions/bootc-ubuntu-setup/action.yml deleted file mode 100644 index 4548775..0000000 --- a/.github/actions/bootc-ubuntu-setup/action.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: 'Bootc Ubuntu Setup' -description: 'Default host setup' -inputs: - libvirt: - description: 'Install libvirt and virtualization stack' - required: false - default: 'false' -runs: - using: 'composite' - steps: - # The default runners have TONS of crud on them... - - name: Free up disk space on runner - shell: bash - run: | - set -xeuo pipefail - sudo df -h - # Use globs for package patterns (apt and dpkg both support fnmatch globs) - unwanted_pkgs=('aspnetcore-*' 'dotnet-*' 'llvm-*' 'php*' 'mongodb-*' 'mysql-*' - azure-cli google-chrome-stable firefox mono-devel) - unwanted_dirs=(/usr/share/dotnet /opt/ghc /usr/local/lib/android /opt/hostedtoolcache/CodeQL) - # Start background removal operations as systemd units; if this causes - # races in the future around disk space we can look at waiting for cleanup - # before starting further jobs, but right now we spent a lot of time waiting - # on the network and scripts and such below, giving these plenty of time to run. - n=0 - runcleanup() { - sudo systemd-run -r -u action-cleanup-${n} -- "$@" - n=$(($n + 1)) - } - runcleanup docker image prune --all --force - for x in ${unwanted_dirs[@]}; do - runcleanup rm -rf "$x" - done - # Apt removals in foreground, as we can't parallelize these. - # Only attempt removal if matching packages are installed. - for x in ${unwanted_pkgs[@]}; do - if dpkg -l "$x" >/dev/null 2>&1; then - /bin/time -f '%E %C' sudo apt-get remove -y "$x" - fi - done - # We really want support for heredocs - - name: Update podman and install just - shell: bash - run: | - set -eux - # Require the runner is ubuntu-24.04 - IDV=$(. /usr/lib/os-release && echo ${ID}-${VERSION_ID}) - test "${IDV}" = "ubuntu-24.04" - # plucky is the next release - echo 'deb http://azure.archive.ubuntu.com/ubuntu plucky universe main' | sudo tee /etc/apt/sources.list.d/plucky.list - /bin/time -f '%E %C' sudo apt update - # skopeo is currently older in plucky for some reason hence --allow-downgrades - /bin/time -f '%E %C' sudo apt install -y --allow-downgrades crun/plucky podman/plucky skopeo/plucky just - # This is the default on e.g. Fedora derivatives, but not Debian - - name: Enable unprivileged /dev/kvm access - shell: bash - run: | - set -xeuo pipefail - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - ls -l /dev/kvm - # Used by a few workflows, but generally useful - - name: Set architecture variable - id: set_arch - shell: bash - run: echo "ARCH=$(arch)" >> $GITHUB_ENV - # Install libvirt stack if requested - - name: Install libvirt and virtualization stack - if: ${{ inputs.libvirt == 'true' }} - shell: bash - run: | - set -xeuo pipefail - export BCVK_VERSION=0.10.0 - # see https://github.com/bootc-dev/bcvk/issues/176 - /bin/time -f '%E %C' sudo apt install -y libkrb5-dev pkg-config libvirt-dev genisoimage qemu-utils qemu-kvm virtiofsd libvirt-daemon-system python3-virt-firmware - # Something in the stack is overriding this, but we want session right now for bcvk - echo LIBVIRT_DEFAULT_URI=qemu:///session >> $GITHUB_ENV - td=$(mktemp -d) - cd $td - # Install bcvk - target=bcvk-$(arch)-unknown-linux-gnu - /bin/time -f '%E %C' curl -LO https://github.com/bootc-dev/bcvk/releases/download/v${BCVK_VERSION}/${target}.tar.gz - tar xzf ${target}.tar.gz - sudo install -T ${target} /usr/bin/bcvk - cd - - rm -rf "$td" - - # Also bump the default fd limit as a workaround for https://github.com/bootc-dev/bcvk/issues/65 - sudo sed -i -e 's,^\* hard nofile 65536,* hard nofile 524288,' /etc/security/limits.conf - - name: Cleanup status - shell: bash - run: | - set -xeuo pipefail - systemctl list-units 'action-cleanup*' - df -h diff --git a/.github/actions/setup-rust/action.yml b/.github/actions/setup-rust/action.yml deleted file mode 100644 index f2f5e06..0000000 --- a/.github/actions/setup-rust/action.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: 'Setup Rust' -description: 'Install Rust toolchain with caching and nextest' -runs: - using: 'composite' - steps: - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - name: Install nextest - uses: taiki-e/install-action@v2 - with: - tool: nextest - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 - with: - cache-all-crates: true - # Only generate caches on push to git main - save-if: ${{ github.ref == 'refs/heads/main' }} - # Suppress actually using the cache for builds running from - # git main so that we avoid incremental compilation bugs - lookup-only: ${{ github.ref == 'refs/heads/main' }} diff --git a/src/imageproxy.rs b/src/imageproxy.rs index 3e510e9..5ceba9f 100644 --- a/src/imageproxy.rs +++ b/src/imageproxy.rs @@ -193,6 +193,7 @@ impl PipeId { /// Configuration for the proxy. #[derive(Debug, Default)] +#[non_exhaustive] pub struct ImageProxyConfig { /// Path to container auth file; equivalent to `skopeo --authfile`. /// This conflicts with [`auth_data`].