Skip to content

Commit 3aec0bb

Browse files
authored
batch of small fixes and enhancements - late december'2024 (#255)
#### inventory: drop rk3588 flavor, as that has been merged with generic rockchip64 in upstream Armbian Signed-off-by: Ricardo Pardini <[email protected]> #### ci/inventory: de-hardcode list of flavors for which .iso's are built - use inventory and output into json matrix Signed-off-by: Ricardo Pardini <[email protected]> #### bash: make the lk yaml templating via envsubst a bit less tedious - introduce `hook_template_vars` dict (KEY=value) - with `HOOK_VERSION`, `HOOK_KERNEL_IMAGE` et al directly - remove the nameref from `build_hook_linuxkit_container`, instead set directly in the `hook_template_vars` dict (`HOOK_CONTAINER_BOOTKIT_IMAGE` et al) - derive the envsubst dollar-prefixed list and the actual vars from the dict - before: refer to the variable 3 times (settage, export, dollar) - after: add variable to dict (once) Signed-off-by: Ricardo Pardini <[email protected]> #### linuxkit: support builds using MacOS (amd64/arm64) Signed-off-by: Ricardo Pardini <[email protected]> #### linuxkit: bump 1.5.0 -> 1.5.2 Signed-off-by: Ricardo Pardini <[email protected]> #### bash: squash some shellcheck warnings - dead code for `kernel_id_to_use` (we're using USE_KERNEL_ID directly) - quoting for the `USE_LATEST_BUILT_KERNEL` case Signed-off-by: Ricardo Pardini <[email protected]> #### ci/gha: run shellcheck before preparing the JSON matrix - ensures bash sanity and future maintainability Signed-off-by: Ricardo Pardini <[email protected]> #### bash: better support for building under Apple Silicon aarch64/arm64 - turns out `$(uname -m)` can return `arm64` as well as `aarch64` Signed-off-by: Ricardo Pardini <[email protected]>
2 parents b631c68 + 342a5aa commit 3aec0bb

9 files changed

+59
-55
lines changed

Diff for: .github/workflows/build-all-matrix.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ jobs:
5151
id: date_prep
5252
run: echo "created=$(date -u +'%Y%m%d-%H%M')" >> "${GITHUB_OUTPUT}"
5353

54+
- name: Run shellcheck # so fail fast in case of bash errors/warnings
55+
id: shellcheck
56+
run: bash build.sh shellcheck
57+
5458
- name: Run the matrix JSON preparation bash script
5559
id: prepare-matrix
5660
run: bash build.sh gha-matrix # This sets the output "kernels_json" & "lkcontainers_json" & "lk_hooks_json" internally
@@ -166,7 +170,7 @@ jobs:
166170
run: bash build.sh build "${{ matrix.kernel }}"
167171

168172
- name: "Build Hook ISO with Kernel ${{matrix.kernel}} (${{ matrix.arch }}) - cache: ${{matrix.gha_cache}}"
169-
if: ${{ matrix.kernel == 'hook-latest-lts-amd64' || matrix.kernel == 'hook-default-amd64' || matrix.kernel == 'hook-latest-lts-arm64' || matrix.kernel == 'hook-default-arm64' }}
173+
if: ${{ matrix.build_iso == 'yes' }} # Set via inventory.sh and SUPPORTS_ISO='yes' for each flavor
170174
env:
171175
DO_BUILD_LK_CONTAINERS: "no" # already built them; this is only for hook/linuxkit.
172176
run: bash build.sh build "${{ matrix.kernel }}" LINUXKIT_ISO=yes

Diff for: bash/hook-lk-containers.sh

+8-9
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ function build_all_hook_linuxkit_containers() {
77
# when adding new container builds here you'll also want to add them to the
88
# `linuxkit_build` function in the linuxkit.sh file.
99
# # NOTE: linuxkit containers must be in the images/ directory
10-
build_hook_linuxkit_container hook-bootkit HOOK_CONTAINER_BOOTKIT_IMAGE
11-
build_hook_linuxkit_container hook-docker HOOK_CONTAINER_DOCKER_IMAGE
12-
build_hook_linuxkit_container hook-mdev HOOK_CONTAINER_MDEV_IMAGE
13-
build_hook_linuxkit_container hook-containerd HOOK_CONTAINER_CONTAINERD_IMAGE
14-
build_hook_linuxkit_container hook-runc HOOK_CONTAINER_RUNC_IMAGE
15-
build_hook_linuxkit_container hook-embedded HOOK_CONTAINER_EMBEDDED_IMAGE
10+
build_hook_linuxkit_container hook-bootkit "HOOK_CONTAINER_BOOTKIT_IMAGE"
11+
build_hook_linuxkit_container hook-docker "HOOK_CONTAINER_DOCKER_IMAGE"
12+
build_hook_linuxkit_container hook-mdev "HOOK_CONTAINER_MDEV_IMAGE"
13+
build_hook_linuxkit_container hook-containerd "HOOK_CONTAINER_CONTAINERD_IMAGE"
14+
build_hook_linuxkit_container hook-runc "HOOK_CONTAINER_RUNC_IMAGE"
15+
build_hook_linuxkit_container hook-embedded "HOOK_CONTAINER_EMBEDDED_IMAGE"
1616
}
1717

1818
function build_hook_linuxkit_container() {
1919
declare container_dir="${1}"
20-
declare -n output_var="${2}" # bash name reference, kind of an output var but weird
20+
declare template_var="${2}" # bash name reference, kind of an output var but weird
2121
declare container_base_dir="images"
2222

2323
# Lets hash the contents of the directory and use that as a tag
@@ -28,8 +28,7 @@ function build_hook_linuxkit_container() {
2828

2929
declare container_oci_ref="${HOOK_LK_CONTAINERS_OCI_BASE}${container_dir}:${container_files_hash_short}-${DOCKER_ARCH}"
3030
log info "Consider building LK container ${container_oci_ref} from ${container_base_dir}/${container_dir} for platform ${DOCKER_ARCH}"
31-
output_var="${container_oci_ref}" # the the name reference
32-
echo "${output_var}" > /dev/null # no-op; just to avoid shellcheck SC2034 (unused var; but it is actually a bash nameref)
31+
hook_template_vars["${template_var}"]="${container_oci_ref}" # set the template var for envsubst
3332

3433
# If the image is in the local docker cache, skip building
3534
log debug "Checking if image ${container_oci_ref} exists in local registry"

Diff for: bash/inventory.sh

+7-10
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ function produce_kernels_flavours_inventory() {
55

66
##### METHOD=default; Hook's own kernel, in kernel/ directory
77
## Hook default kernel, source code stored in `kernel` dir in this repo -- currently 5.10.y
8-
define_id "hook-default-amd64" METHOD='default' ARCH='x86_64' TAG='standard' \
8+
define_id "hook-default-amd64" METHOD='default' ARCH='x86_64' TAG='standard' SUPPORTS_ISO='yes' \
99
KERNEL_MAJOR='5' KERNEL_MINOR='10' KCONFIG='generic'
10-
define_id "hook-default-arm64" METHOD='default' ARCH='aarch64' TAG='standard' \
10+
define_id "hook-default-arm64" METHOD='default' ARCH='aarch64' TAG='standard' SUPPORTS_ISO='yes' \
1111
KERNEL_MAJOR='5' KERNEL_MINOR='10' KCONFIG='generic'
1212

1313
## A 'peg' is not really a 'hook': for development purposes; testing new LK version and simpler LK configurations, using the default kernel
@@ -16,9 +16,9 @@ function produce_kernels_flavours_inventory() {
1616
KERNEL_MAJOR='5' KERNEL_MINOR='10' KCONFIG='generic'
1717

1818
## development purposes: trying out kernel 6.6.y
19-
define_id "hook-latest-lts-amd64" METHOD='default' ARCH='x86_64' TAG='lts' \
19+
define_id "hook-latest-lts-amd64" METHOD='default' ARCH='x86_64' TAG='lts' SUPPORTS_ISO='yes' \
2020
KERNEL_MAJOR='6' KERNEL_MINOR='6' KCONFIG='generic' FORCE_OUTPUT_ID='latest-lts'
21-
define_id "hook-latest-lts-arm64" METHOD='default' ARCH='aarch64' TAG='lts' \
21+
define_id "hook-latest-lts-arm64" METHOD='default' ARCH='aarch64' TAG='lts' SUPPORTS_ISO='yes' \
2222
KERNEL_MAJOR='6' KERNEL_MINOR='6' KCONFIG='generic' FORCE_OUTPUT_ID='latest-lts'
2323

2424
##### METHOD=armbian; Foreign kernels, taken from Armbian's OCI repos. Those are "exotic" kernels for certain SoC's.
@@ -36,18 +36,15 @@ function produce_kernels_flavours_inventory() {
3636
## Armbian bcm2711 (Broadcom) current, from RaspberryPi Foundation with many CNCF-landscape fixes and patches; for the RaspberryPi 3b+/4b/5
3737
define_id "armbian-bcm2711-current" METHOD='armbian' ARCH='aarch64' TAG='armbian-sbc' ARMBIAN_KERNEL_ARTIFACT='kernel-bcm2711-current'
3838

39-
## Armbian rockchip64 (Rockchip) edge, for many rk356x/3399 SoCs. Not for rk3588!
39+
## Armbian rockchip64 (Rockchip) edge, for many rk356x/3399 SoCs. As of late December 2024, also for rk3588.
4040
define_id "armbian-rockchip64-edge" METHOD='armbian' ARCH='aarch64' TAG='armbian-sbc' ARMBIAN_KERNEL_ARTIFACT='kernel-rockchip64-edge'
4141

42-
## Armbian rk35xx (Rockchip) mainline bleeding edge for rk3588, rk3588s SoCs
43-
define_id "armbian-rk3588-edge" METHOD='armbian' ARCH='aarch64' TAG='armbian-sbc' ARMBIAN_KERNEL_ARTIFACT='kernel-rockchip-rk3588-edge'
44-
45-
## Armbian rk35xx (Rockchip) vendor, for rk3566, rk3568, rk3588, rk3588s SoCs -- 6.1-rkr1 - BSP / vendor kernel
42+
## Armbian rk35xx (Rockchip) vendor, for rk3566, rk3568, rk3588, rk3588s SoCs -- 6.1-rkr4.1 - BSP / vendor kernel, roughly equivalent to Android's 6.1.84
4643
# Use with edk2 (v0.9.1+) or mainline u-boot + EFI: matches the DT included in https://github.com/edk2-porting/edk2-rk3588 _after_ v0.9.1
4744
define_id "armbian-rk35xx-vendor" METHOD='armbian' ARCH='aarch64' TAG='armbian-sbc' ARMBIAN_KERNEL_ARTIFACT='kernel-rk35xx-vendor'
4845

4946
### Armbian mainline Generic UEFI kernels, for EFI capable machines might use those:
50-
## Armbian generic edge UEFI kernel (Armbian calls it x86)
47+
## Armbian generic edge UEFI kernel for arm64
5148
define_id "armbian-uefi-arm64-edge" METHOD='armbian' ARCH='aarch64' TAG='standard armbian-uefi' ARMBIAN_KERNEL_ARTIFACT='kernel-arm64-edge'
5249

5350
## Armbian generic edge UEFI kernel (Armbian calls it x86)

Diff for: bash/json-matrix.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function prepare_json_matrix() {
8484
declare gha_cache="yes" # always use GH cache; hitting DockerHub for linuxkit images is prone to rate limiting
8585

8686
all_arches["${kernel_info[DOCKER_ARCH]}"]=1
87-
json_items+=("{\"kernel\":\"${kernel}\",\"arch\":\"${kernel_info[ARCH]}\",\"docker_arch\":\"${kernel_info[DOCKER_ARCH]}\",\"runner\":${runner},\"gha_cache\":\"${gha_cache}\"}")
87+
json_items+=("{\"kernel\":\"${kernel}\",\"arch\":\"${kernel_info[ARCH]}\",\"docker_arch\":\"${kernel_info[DOCKER_ARCH]}\",\"build_iso\":\"${kernel_info[SUPPORTS_ISO]}\",\"runner\":${runner},\"gha_cache\":\"${gha_cache}\"}")
8888
fi
8989
done
9090

Diff for: bash/kernel.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ function resolve_latest_kernel_version_lts() { # Produces KERNEL_POINT_RELEASE
6060
# HookOS using an existing kernel container image from the registry. This only works with
6161
# unauthenticated registries.
6262
if [[ -n "${USE_LATEST_BUILT_KERNEL}" ]]; then
63-
reg="$(echo ${HOOK_KERNEL_OCI_BASE} | cut -d'/' -f1)"
64-
repo="$(echo ${HOOK_KERNEL_OCI_BASE} | cut -d'/' -f2-)"
63+
reg="$(echo "${HOOK_KERNEL_OCI_BASE}" | cut -d'/' -f1)"
64+
repo="$(echo "${HOOK_KERNEL_OCI_BASE}" | cut -d'/' -f2-)"
6565
# expected format is: 6.6.32-14b8be17 (major.minor.point-hash)
6666
latest_point_release="$(curl -sL "https://${reg}/v2/${repo}/tags/list" | jq -r ".tags[]" | grep -e "^${KERNEL_MAJOR}.${KERNEL_MINOR}" | sort -V | tail -n1 | cut -d"-" -f1 | cut -d"." -f3)"
6767
log info "Using latest point release from registry ${HOOK_KERNEL_OCI_BASE} for kernel ${KERNEL_MAJOR}.${KERNEL_MINOR}: ${latest_point_release}"
@@ -121,7 +121,7 @@ function get_kernel_info_dict() {
121121
# convert ARCH (x86_64, aarch64) to docker-ARCH (amd64, arm64)
122122
case "${kernel_info['ARCH']}" in
123123
"x86_64") kernel_info['DOCKER_ARCH']="amd64" ;;
124-
"aarch64") kernel_info['DOCKER_ARCH']="arm64" ;;
124+
"aarch64" | "arm64") kernel_info['DOCKER_ARCH']="arm64" ;;
125125
*) log error "ARCH ${kernel_info['ARCH']} not supported" && exit 1 ;;
126126
esac
127127
}
@@ -139,7 +139,7 @@ function get_host_docker_arch() {
139139
# convert ARCH (x86_64, aarch64) to docker-ARCH (amd64, arm64)
140140
case "$(uname -m)" in
141141
"x86_64") host_docker_arch="amd64" ;;
142-
"aarch64") host_docker_arch="arm64" ;;
142+
"aarch64" | "arm64") host_docker_arch="arm64" ;;
143143
*) log error "ARCH $(uname -m) not supported" && exit 1 ;;
144144
esac
145145
return 0

Diff for: bash/kernel/kernel_armbian.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function calculate_kernel_version_armbian() {
5050
declare oras_arch="unknown"
5151
case "$(uname -m)" in
5252
"x86_64") oras_arch="amd64" ;;
53-
"aarch64") oras_arch="arm64" ;;
53+
"aarch64" | "arm64") oras_arch="arm64" ;;
5454
*) log error "ERROR: ARCH $(uname -m) not supported by ORAS? check https://github.com/oras-project/oras/releases" && exit 1 ;;
5555
esac
5656
declare oras_down_url="https://github.com/oras-project/oras/releases/download/v${oras_version}/oras_${oras_version}_linux_${oras_arch}.tar.gz"

Diff for: bash/kernel/kernel_default.sh

+1-8
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function calculate_kernel_version_default() {
3636
KERNEL_CROSS_COMPILE="x86_64-linux-gnu-"
3737
KERNEL_OUTPUT_IMAGE="arch/x86_64/boot/bzImage"
3838
;;
39-
"aarch64")
39+
"aarch64" | "arm64")
4040
KERNEL_ARCH="arm64"
4141
KERNEL_CROSS_COMPILE_PKGS="crossbuild-essential-arm64"
4242
KERNEL_CROSS_COMPILE="aarch64-linux-gnu-"
@@ -55,13 +55,6 @@ function calculate_kernel_version_default() {
5555
input_hash="$(cat "kernel/configs/${INPUT_DEFCONFIG}" "kernel/Dockerfile" | sha256sum - | cut -d ' ' -f 1)"
5656
short_input_hash="${input_hash:0:8}"
5757
kernel_oci_version="${KERNEL_MAJOR}.${KERNEL_MINOR}.${KERNEL_POINT_RELEASE}-${short_input_hash}"
58-
59-
kernel_id_to_use="${inventory_id}"
60-
if [[ -n "${USE_KERNEL_ID}" ]]; then
61-
log warn "USE_KERNEL_ID is set to '${USE_KERNEL_ID}'; using it instead of the default inventory_id '${inventory_id}'."
62-
kernel_id_to_use="${USE_KERNEL_ID}"
63-
fi
64-
6558
kernel_oci_image="${HOOK_KERNEL_OCI_BASE}:${kernel_oci_version}"
6659

6760
# Log the obtained version & images to stderr

Diff for: bash/linuxkit.sh

+31-20
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@
33
function obtain_linuxkit_binary_cached() {
44
# Grab linuxkit from official GitHub releases; account for arm64/amd64 differences
55

6+
declare linuxkit_os="linux"
7+
[[ "$(uname -s)" == "Darwin" ]] && linuxkit_os="darwin"
8+
69
declare linuxkit_arch=""
710
# determine the arch to download from current arch
811
case "$(uname -m)" in
912
"x86_64") linuxkit_arch="amd64" ;;
10-
"aarch64") linuxkit_arch="arm64" ;;
13+
"aarch64" | "arm64") linuxkit_arch="arm64" ;;
1114
*) log error "ERROR: ARCH $(uname -m) not supported by linuxkit? check https://github.com/linuxkit/linuxkit/releases" && exit 1 ;;
1215
esac
1316

14-
declare linuxkit_down_url="https://github.com/linuxkit/linuxkit/releases/download/v${LINUXKIT_VERSION}/linuxkit-linux-${linuxkit_arch}"
15-
declare -g linuxkit_bin="${CACHE_DIR}/linuxkit-linux-${linuxkit_arch}-${LINUXKIT_VERSION}"
17+
declare linuxkit_down_url="https://github.com/linuxkit/linuxkit/releases/download/v${LINUXKIT_VERSION}/linuxkit-${linuxkit_os}-${linuxkit_arch}"
18+
declare -g linuxkit_bin="${CACHE_DIR}/linuxkit-${linuxkit_os}-${linuxkit_arch}-${LINUXKIT_VERSION}"
1619

1720
# Download using curl if not already present
1821
if [[ ! -f "${linuxkit_bin}" ]]; then
@@ -22,7 +25,7 @@ function obtain_linuxkit_binary_cached() {
2225
fi
2326

2427
# Show the binary's version
25-
log info "LinuxKit binary version: ('0.8+' reported for 1.2.0, bug?): $("${linuxkit_bin}" version | xargs echo -n)"
28+
log info "LinuxKit binary version: $("${linuxkit_bin}" version | xargs echo -n)"
2629

2730
}
2831

@@ -49,29 +52,37 @@ function linuxkit_build() {
4952
fi
5053
fi
5154

55+
# A dictionary (bash associative array) with variables and their values, for templating using envsubst.
56+
declare -A -g hook_template_vars=(
57+
["HOOK_VERSION"]="${HOOK_VERSION}"
58+
["HOOK_KERNEL_IMAGE"]="${kernel_oci_image}"
59+
["HOOK_KERNEL_ID"]="${inventory_id}"
60+
["HOOK_KERNEL_VERSION"]="${kernel_oci_version}"
61+
)
62+
5263
# Build the containers in this repo used in the LinuxKit YAML;
53-
build_all_hook_linuxkit_containers # sets HOOK_CONTAINER_BOOTKIT_IMAGE, HOOK_CONTAINER_DOCKER_IMAGE, HOOK_CONTAINER_MDEV_IMAGE, HOOK_CONTAINER_CONTAINERD_IMAGE
64+
build_all_hook_linuxkit_containers # sets HOOK_CONTAINER_BOOTKIT_IMAGE, HOOK_CONTAINER_DOCKER_IMAGE and others in the hook_template_vars dict
5465

5566
# Template the linuxkit configuration file.
5667
# - You'd think linuxkit would take --build-args or something by now, but no.
5768
# - Linuxkit does have @pkg but that's only useful in its own repo (with pkgs/ dir)
5869
# - envsubst doesn't offer a good way to escape $ in the input, so we pass the exact list of vars to consider, so escaping is not needed
59-
6070
log info "Using Linuxkit template '${kernel_info['TEMPLATE']}'..."
6171

62-
# HOOK_VERSION is read-only & already exported so is not listed in the env vars here, but is included in the dollar-sign list for envsubst to process
63-
# shellcheck disable=SC2002 # Again, no, I love my cat, leave me alone
64-
# shellcheck disable=SC2016 # I'm using single quotes to avoid shell expansion, envsubst wants the dollar signs.
65-
cat "linuxkit-templates/${kernel_info['TEMPLATE']}.template.yaml" |
66-
HOOK_KERNEL_IMAGE="${kernel_oci_image}" HOOK_KERNEL_ID="${inventory_id}" HOOK_KERNEL_VERSION="${kernel_oci_version}" \
67-
HOOK_CONTAINER_BOOTKIT_IMAGE="${HOOK_CONTAINER_BOOTKIT_IMAGE}" \
68-
HOOK_CONTAINER_DOCKER_IMAGE="${HOOK_CONTAINER_DOCKER_IMAGE}" \
69-
HOOK_CONTAINER_MDEV_IMAGE="${HOOK_CONTAINER_MDEV_IMAGE}" \
70-
HOOK_CONTAINER_CONTAINERD_IMAGE="${HOOK_CONTAINER_CONTAINERD_IMAGE}" \
71-
HOOK_CONTAINER_RUNC_IMAGE="${HOOK_CONTAINER_RUNC_IMAGE}" \
72-
HOOK_CONTAINER_EMBEDDED_IMAGE="${HOOK_CONTAINER_EMBEDDED_IMAGE}" \
73-
envsubst '$HOOK_VERSION $HOOK_KERNEL_IMAGE $HOOK_KERNEL_ID $HOOK_KERNEL_VERSION $HOOK_CONTAINER_BOOTKIT_IMAGE $HOOK_CONTAINER_DOCKER_IMAGE $HOOK_CONTAINER_MDEV_IMAGE $HOOK_CONTAINER_CONTAINERD_IMAGE $HOOK_CONTAINER_RUNC_IMAGE $HOOK_CONTAINER_EMBEDDED_IMAGE' \
74-
> "hook.${inventory_id}.yaml"
72+
# Calculate, from hook_template_vars dictionary:
73+
# envsubst_arg_string: a space separated list of dollar-prefixed variables name to be substituted
74+
# envusbst_env: the environment variables to be passed to envsubst (array of KEY=var) to be used via 'env'
75+
declare envsubst_arg_string=""
76+
declare -a envsubst_envs=()
77+
for key in "${!hook_template_vars[@]}"; do
78+
envsubst_arg_string+="\$${key} " # extra space at the end doesn't hurt
79+
envsubst_envs+=("${key}=${hook_template_vars["${key}"]}")
80+
done
81+
log debug "envsubst_arg_string: ${envsubst_arg_string}"
82+
log debug "envsubst_envs: ${envsubst_envs[*]}"
83+
84+
# Run envsubst on the template file, output to a new file; pass the envs and the arg string
85+
env "${envsubst_envs[@]}" envsubst "${envsubst_arg_string}" < "linuxkit-templates/${kernel_info['TEMPLATE']}.template.yaml" > "hook.${inventory_id}.yaml"
7586

7687
declare -g linuxkit_bin=""
7788
obtain_linuxkit_binary_cached # sets "${linuxkit_bin}"
@@ -101,7 +112,7 @@ function linuxkit_build() {
101112
"${linuxkit_bin}" build "${lk_iso_args[@]}"
102113
return 0
103114
fi
104-
115+
105116
declare -a lk_args=(
106117
"--docker"
107118
"--arch" "${kernel_info['DOCKER_ARCH']}"

Diff for: build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ declare -g HOOK_LK_CONTAINERS_OCI_BASE="${HOOK_LK_CONTAINERS_OCI_BASE:-"quay.io/
2929
declare -g SKOPEO_IMAGE="${SKOPEO_IMAGE:-"quay.io/skopeo/stable:latest"}"
3030

3131
# See https://github.com/linuxkit/linuxkit/releases
32-
declare -g -r LINUXKIT_VERSION_DEFAULT="1.5.0" # LinuxKit version to use by default; each flavor can set its own too
32+
declare -g -r LINUXKIT_VERSION_DEFAULT="1.5.2" # LinuxKit version to use by default; each flavor can set its own too
3333

3434
# Directory to use for storing downloaded artifacts: LinuxKit binary, shellcheck binary, etc.
3535
declare -g -r CACHE_DIR="${CACHE_DIR:-"cache"}"

0 commit comments

Comments
 (0)