Skip to content

Commit

Permalink
Add kola test for local dir container deployment
Browse files Browse the repository at this point in the history
This change adds a test for deploying FCOS from a container image stored
in a local directory. The test is needed for a change in ostree-rs-ext
which adds support for the `dir` transport.

In this test, the encapsulate function is used to store the current state
of the system to a local directory and is deployed to a temporary sysroot.
  • Loading branch information
lukewarmtemp committed Sep 25, 2023
1 parent 6bca8f4 commit f1fbaab
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions tests/kolainst/destructive/container-deploy
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/bin/bash
# This test reboots a lot, generates container images, etc.
# kola: { "timeoutMin": 30 }
#
# Copyright (C) 2021 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

set -euo pipefail

. ${KOLA_EXT_DATA}/libtest.sh

set -x

libtest_prepare_offline
cd $(mktemp -d)

Check warning

Code scanning / shellcheck

Quote this to prevent word splitting. Warning test

Quote this to prevent word splitting.

# TODO: It'd be much better to test this via a registry
image_dir=/var/tmp/fcos
image=dir:$image_dir
image_pull=ostree-unverified-image:$image

Check warning

Code scanning / shellcheck

image_pull appears unused. Verify use (or export if used externally). Warning test

image_pull appears unused. Verify use (or export if used externally).
tmp_imagedir=/var/tmp/fcos-tmp

Check warning

Code scanning / shellcheck

tmp_imagedir appears unused. Verify use (or export if used externally). Warning test

tmp_imagedir appears unused. Verify use (or export if used externally).
arch=$(arch)

Check warning

Code scanning / shellcheck

arch appears unused. Verify use (or export if used externally). Warning test

arch appears unused. Verify use (or export if used externally).

checksum=$(rpm-ostree status --json | jq -r '.deployments[0].checksum')
v0=$(rpm-ostree status --json | jq -r '.deployments[0].version')

Check warning

Code scanning / shellcheck

v0 appears unused. Verify use (or export if used externally). Warning test

v0 appears unused. Verify use (or export if used externally).
rm ${image_dir} -rf

# Since we're switching OS update stream, turn off zincati
systemctl mask --now zincati

ostree container encapsulate --repo=/ostree/repo ${checksum} "${image}"

mkdir /var/tmp/sysroot
ostree admin init-fs --modern /var/tmp/sysroot
ostree admin os-init fedora-coreos --sysroot /var/tmp/sysroot
ostree container image deploy --imgref ostree-unverified-image:dir:/var/tmp/fcos --sysroot /var/tmp/sysroot --stateroot fedora-coreos

0 comments on commit f1fbaab

Please sign in to comment.