mirror of
https://github.com/balena-io/open-balena.git
synced 2025-06-24 18:25:16 +00:00
Compare commits
113 Commits
v4.1.414
...
aethernet/
Author | SHA1 | Date | |
---|---|---|---|
169e3d091c | |||
390aa128d0 | |||
c3523ba9e1 | |||
e3c9096057 | |||
2fde02ac36 | |||
6259d38955 | |||
8a6ce027d1 | |||
864cf98b11 | |||
7a4677a6ee | |||
35d22cdcf9 | |||
decf3c1c67 | |||
0655025613 | |||
52c4a12057 | |||
1d627f8ebb | |||
2941178fbc | |||
12e97e5788 | |||
067e000795 | |||
6f9061d09d | |||
80c44a7794 | |||
59f69aa61b | |||
cc13fe8c27 | |||
2d65eb873a | |||
212bc9d03c | |||
e35ba98156 | |||
6867d3a2db | |||
88bb5b1b16 | |||
93abd99fd0 | |||
05145f0a87 | |||
3a7229acde | |||
6330265e9a | |||
6178a6fb30 | |||
6e144793a7 | |||
fdc5bff39c | |||
0a04276056 | |||
1ec66310d6 | |||
3435e02191 | |||
8efeef2e22 | |||
a147789188 | |||
9f4f8875b0 | |||
54357bfd92 | |||
8a3c07dea6 | |||
797a809d08 | |||
188ba26a1a | |||
7f574ad09b | |||
754420a765 | |||
e306b7ce78 | |||
68e14fa86a | |||
da5bbee605 | |||
df59f8cdc4 | |||
652fde04f8 | |||
8942c7b409 | |||
198ffe726f | |||
4245f746fb | |||
c35f63b00b | |||
f6b70c0b67 | |||
be8ebc87af | |||
b4dd9ac66a | |||
7c473a7267 | |||
18a7e6afa7 | |||
0e44323b90 | |||
a3f6ce5d48 | |||
b363655b03 | |||
b57af97741 | |||
7acb4359c7 | |||
074caf4a38 | |||
dd9c508731 | |||
2cf818d391 | |||
061f22e1d9 | |||
826249f49e | |||
c8cd44b8bf | |||
67f8a8477d | |||
1f9b3f5898 | |||
2a7b68aa84 | |||
bc58a3fe97 | |||
2de86506fa | |||
031996f486 | |||
e12a8951c7 | |||
e6b86b7cd8 | |||
6dcf7ec086 | |||
09bfaa5153 | |||
ea1fa2d793 | |||
1b89f027a8 | |||
91e4fb359f | |||
eed545d126 | |||
cb822e6e90 | |||
d8965fbfd3 | |||
78aef641c1 | |||
8c5522b0bf | |||
d9e6be8083 | |||
539972f4b8 | |||
f3d087f2b7 | |||
61b034e3fc | |||
a55a88d2f0 | |||
bfd399193f | |||
6d75e7d974 | |||
eac1823fdf | |||
87a94d8c6d | |||
2d7e04489f | |||
943b33b42e | |||
e67bde8b0f | |||
2554b3a9bb | |||
e9bad87611 | |||
a0a518da79 | |||
240b2d656a | |||
5b26ba4ac4 | |||
f84d16e3d0 | |||
d4c0144829 | |||
c62381c57a | |||
26c52aa31a | |||
10f109d299 | |||
5720b59006 | |||
d50739a5f5 | |||
040f705138 |
419
.github/workflows/ssh-uuid.sh
vendored
Normal file
419
.github/workflows/ssh-uuid.sh
vendored
Normal file
@ -0,0 +1,419 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2022 Balena Ltd.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -e # Exit immediately on unhandled errors
|
||||
|
||||
BALENARC_DATA_DIRECTORY="${BALENARC_DATA_DIRECTORY:-"${HOME}/.balena"}"
|
||||
|
||||
function quit {
|
||||
echo "ERROR: $1" >/dev/stderr
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check that the version of bash meets the requirements.
|
||||
# The 'declare -pf' and 'readarray -t' features require bash v4.4 or later.
|
||||
function check_bash_version {
|
||||
local major="${BASH_VERSINFO[0]:-0}"
|
||||
local minor="${BASH_VERSINFO[1]:-0}"
|
||||
if (( "${major}" < 4 || ("${major}" == 4 && "${minor}" < 4) )); then
|
||||
quit "\
|
||||
bash v${major}.${minor} detected, but this script requires bash v4.4 or later.
|
||||
On macOS, it can be updated with 'brew install bash' ( https://brew.sh/ )
|
||||
Sorry for the inconvenience!
|
||||
"
|
||||
fi
|
||||
}
|
||||
|
||||
check_bash_version
|
||||
|
||||
# Escape the arguments in a way compatible with the POSIX 'sh'. Alternative to
|
||||
# bash's printf '%q' (because bash's printf '%q' may produce bash-specific
|
||||
# escaping, for example using the $'a\nb' syntax that interprets ASCII control
|
||||
# characters, which is not supported by POSIX 'sh'). Useful with the '--service'
|
||||
# flag as we do not assume that balenaOS application containers will have 'bash'
|
||||
# installed. Based on: https://stackoverflow.com/a/29824428
|
||||
function escape_sh {
|
||||
case $# in 0) return 0; esac
|
||||
while :
|
||||
do
|
||||
printf "'"
|
||||
printf %s "$1" | sed "s/'/'\\\\''/g"
|
||||
shift
|
||||
case $# in 0) break; esac
|
||||
printf "' "
|
||||
done
|
||||
printf "'\n"
|
||||
}
|
||||
|
||||
function print_help_and_quit {
|
||||
echo "For ssh or scp options, check the manual pages: 'man ssh' or 'man scp'.
|
||||
For ssh-uuid or scp-uuid usage, see README at:
|
||||
https://github.com/pdcastro/ssh-uuid/blob/master/README.md
|
||||
" >/dev/stderr
|
||||
exit
|
||||
}
|
||||
|
||||
# Check whether the BALENA_USERNAME and BALENA_TOKEN environment variables are set, for
|
||||
# the purpose of balenaCloud proxy authentication, and as the username to use for ssh
|
||||
# public key authentication. If either variable is not set, attempt to obtain the missing
|
||||
# value from the balena CLI's ~/.balena/cachedUsername JSON file. That file is created
|
||||
# by running the `balena login` command followed by the `balena whoami` command. If you
|
||||
# would rather not depend on the balena CLI, set the environment variables manually with
|
||||
# the values found in the balenaCloud web dashboard, Preferences page, Account Details and
|
||||
# Access Tokens tabs.
|
||||
function get_user_and_token {
|
||||
if [[ -n "${BALENA_USERNAME}" && -n "${BALENA_TOKEN}" ]]; then
|
||||
return
|
||||
fi
|
||||
local cached_usr_file="${BALENARC_DATA_DIRECTORY}/cachedUsername"
|
||||
if [[ ! -r "${cached_usr_file}" ]]; then
|
||||
quit "\
|
||||
'BALENA_USERNAME' or 'BALENA_TOKEN' env vars not defined, and file
|
||||
'${cached_usr_file}' not found or not readable.
|
||||
Set the env vars as per README, or use the balena CLI 'login' and 'whoami'
|
||||
commands to ensure that file is created.
|
||||
"
|
||||
fi
|
||||
check_tool jq
|
||||
local cached_username
|
||||
local cached_token
|
||||
cached_username="$(jq -r .username "${cached_usr_file}")"
|
||||
cached_token="$(jq -r .token "${cached_usr_file}")"
|
||||
BALENA_USERNAME="${BALENA_USERNAME:-"${cached_username}"}"
|
||||
BALENA_TOKEN="${BALENA_TOKEN:-"${cached_token}"}"
|
||||
}
|
||||
|
||||
# This function will execute on the balenaOS host OS
|
||||
function remote__get_container_name {
|
||||
local service="$1"
|
||||
local len="${#service}"
|
||||
local -a names
|
||||
readarray -t names <<< "$(balena-engine ps --format '{{.Names}}')"
|
||||
local result=''
|
||||
local name
|
||||
for name in "${names[@]}"; do
|
||||
if [ "${name:0:len+1}" = "${service}_" ]; then
|
||||
result="${name}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "${result}"
|
||||
}
|
||||
|
||||
# This function will execute on the balenaOS host OS with bash v5
|
||||
function remote__main {
|
||||
local service="$1"
|
||||
shift
|
||||
local container_name
|
||||
container_name="$(remote__get_container_name "${service}")"
|
||||
if [ -z "${container_name}" ]; then
|
||||
echo "ERROR: Cannot find a running container for service '${service}'" >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
local -a args
|
||||
if [ "$#" = 0 ]; then
|
||||
args=('sh')
|
||||
else
|
||||
IFS=' ' args=('sh' '-c' "$*")
|
||||
fi
|
||||
local tty_flags='-i' # without '-i', STDIN is closed
|
||||
[[ "$#" = 0 || -t 0 ]] && tty_flags='-it'
|
||||
[ -n "${SSUU_DEBUG}" ] && set -x
|
||||
balena-engine exec ${tty_flags} "${container_name}" "${args[@]}"
|
||||
{ local status="$?"; [ -n "${SSUU_DEBUG}" ] && set +x; } 2>/dev/null
|
||||
return "${status}"
|
||||
}
|
||||
|
||||
# Parse a short flag specification like '-N' or '-CNL', the latter being the
|
||||
# abbreviated form for '-C' '-N' '-L'. For each short flag, set a global
|
||||
# variable in the format "SSUU_FLAG_${flag}". Examples:
|
||||
# parse_short_flag '-N'
|
||||
# -> SSUU_FLAG_N='-N'
|
||||
#
|
||||
# parse_short_flag '-CNL'
|
||||
# -> SSUU_FLAG_C='-CNL'
|
||||
# SSUU_FLAG_N='-CNL'
|
||||
# SSUU_FLAG_L='-CNL'
|
||||
function parse_short_flag {
|
||||
local spec="$1" # flag spec like '-N' or '-CNL'
|
||||
local i
|
||||
for (( i=1; i<${#spec}; i++ )); do
|
||||
local flag="${spec:i:1}"
|
||||
if [[ "${flag}" =~ [a-zA-Z] ]]; then
|
||||
declare -g SSUU_FLAG_"${flag}"="${spec}"
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Parse the arguments and split them between option arguments and positional
|
||||
# arguments.
|
||||
# Note: the split happens at the first UUID.balena occurrence which is always
|
||||
# correct for `ssh`, but not always correct for `scp`. For the purposes of
|
||||
# `scp-uuid` however, this potential incorrectness is not important.
|
||||
function parse_args {
|
||||
local args=("$@")
|
||||
local nargs=${#args[@]}
|
||||
local i
|
||||
SSUU_USER=''
|
||||
SSUU_OPT_ARGS=()
|
||||
SSUU_POS_ARGS=()
|
||||
for (( i=0; i<nargs; i++ )); do
|
||||
local arg="${args[i]}"
|
||||
if [ "${arg}" = '--help' ]; then
|
||||
print_help_and_quit
|
||||
fi
|
||||
if [ "${arg}" = '--service' ]; then
|
||||
SSUU_SERVICE="${args[++i]}"
|
||||
continue
|
||||
fi
|
||||
# Is arg a UUID.balena hostname specification?
|
||||
# For ssh:
|
||||
# '[user@]UUID.balena'
|
||||
# 'ssh://[user@]UUID.balena[:port]'
|
||||
# For scp:
|
||||
# '[user@]UUID.balena:'
|
||||
# 'scp://[user@]UUID.balena[:port][/path]'
|
||||
# where UUID is a hexadecimal number with exactly 32 or 62 characters,
|
||||
# where 62 is not typo meant to read 64, it really is 62.
|
||||
if [[ "${SSUU_SCP}" = 0 &&
|
||||
"${arg}" =~ ^(ssh://)?((.+)@)?([[:xdigit:]]{32}|[[:xdigit:]]{62})\.balena(:[0-9]+)?$
|
||||
]]; then
|
||||
SSUU_USER="${BASH_REMATCH[3]}"
|
||||
SSUU_POS_ARGS=("${args[@]:i}")
|
||||
break
|
||||
elif [[ "${SSUU_SCP}" = 1 &&
|
||||
"${arg}" =~ ^scp://((.+)@)?([[:xdigit:]]{32}|[[:xdigit:]]{62})\.balena(:[0-9]+)?(/.*)?$
|
||||
]]; then
|
||||
SSUU_USER="${BASH_REMATCH[2]}"
|
||||
if [ -z "${SSUU_USER}" ] && [ -n "${BALENA_USERNAME}" ]; then
|
||||
SSUU_USER="${BALENA_USERNAME}"
|
||||
arg="scp://${BALENA_USERNAME}@${arg#scp://}"
|
||||
args[i]="${arg}"
|
||||
fi
|
||||
SSUU_POS_ARGS=("${args[@]:i}")
|
||||
break
|
||||
elif [[ "${SSUU_SCP}" = 1 &&
|
||||
"${arg}" =~ ^((.+)@)?([[:xdigit:]]{32}|[[:xdigit:]]{62})\.balena:.*$
|
||||
]]; then
|
||||
SSUU_USER="${BASH_REMATCH[2]}"
|
||||
if [ -z "${SSUU_USER}" ] && [ -n "${BALENA_USERNAME}" ]; then
|
||||
SSUU_USER="${BALENA_USERNAME}"
|
||||
arg="${BALENA_USERNAME}@${arg}"
|
||||
args[i]="${arg}"
|
||||
fi
|
||||
SSUU_POS_ARGS=("${args[@]:i}")
|
||||
break
|
||||
fi
|
||||
if [ "${arg:0:1}" = '-' ] && [ "${arg:1:1}" != '-' ]; then
|
||||
parse_short_flag "${arg}"
|
||||
fi
|
||||
SSUU_OPT_ARGS+=("${arg}")
|
||||
done
|
||||
if [ "${#SSUU_POS_ARGS[@]}" = 0 ]; then
|
||||
if [ "${SSUU_SCP}" = '1' ]; then
|
||||
quit "Invalid command line (missing 'UUID.balena:' remote host, including ':' character)"
|
||||
else
|
||||
quit "Invalid command line (missing 'UUID.balena' hostname)"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function run_ssh {
|
||||
local opt_args=("${SSUU_OPT_ARGS[@]}") # optional arguments
|
||||
local pos_args=("${SSUU_POS_ARGS[@]}") # positional arguments
|
||||
local l_arg=()
|
||||
local t_arg=()
|
||||
if [ -n "${SSUU_SERVICE}" ]; then
|
||||
local host="${pos_args[0]}"
|
||||
local remote_cmd=("${pos_args[@]:1}")
|
||||
if [ "${#remote_cmd[@]}" = 0 ]; then
|
||||
# interactive shell, allocate a tty
|
||||
if [ -z "${SSUU_FLAG_N}" ] && [ -z "${SSUU_FLAG_t}" ]; then
|
||||
t_arg=('-t')
|
||||
fi
|
||||
else
|
||||
remote_cmd=( "$(escape_sh "${remote_cmd[@]}")" ) # single element array
|
||||
fi
|
||||
pos_args=(
|
||||
"${host}"
|
||||
# export some functions for remote execution
|
||||
"$(declare -pf remote__get_container_name);"
|
||||
"$(declare -pf remote__main);"
|
||||
"SSUU_DEBUG=${DEBUG}"
|
||||
remote__main
|
||||
"${SSUU_SERVICE}"
|
||||
"${remote_cmd[@]}"
|
||||
)
|
||||
fi
|
||||
if [ -z "${SSUU_USER}" ] && [ -z "${SSUU_FLAG_l}" ] ; then
|
||||
l_arg=('-l' "${BALENA_USERNAME}")
|
||||
fi
|
||||
opt_args=(
|
||||
-o "ProxyCommand='$0' do_proxy %h %p"
|
||||
-p 22222
|
||||
"${l_arg[@]}"
|
||||
"${t_arg[@]}"
|
||||
"${opt_args[@]}"
|
||||
)
|
||||
set +e
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
# shellcheck disable=SC2029
|
||||
ssh "${opt_args[@]}" "${pos_args[@]}"
|
||||
{ local status="$?"; [ -n "${DEBUG}" ] && set +x; } 2>/dev/null
|
||||
set -e
|
||||
return "${status}"
|
||||
}
|
||||
|
||||
function print_scp_service_msg {
|
||||
local service="$1"
|
||||
local uuid="$2"
|
||||
echo "\
|
||||
scp-uuid does not support the '--service' flag. However, files and folders
|
||||
can be copied to a service container with 'ssh-uuid', for example:
|
||||
|
||||
# local -> remote
|
||||
$ cat local.txt | ssh-uuid --service ${service} ${uuid}.balena cat \\> /data/remote.txt
|
||||
|
||||
# remote -> local
|
||||
$ ssh-uuid --service ${service} ${uuid}.balena cat /data/remote.txt > local.txt
|
||||
|
||||
Or multiple files and folders with 'tar' on the fly:
|
||||
|
||||
# local -> remote
|
||||
$ tar cz local-folder | ssh-uuid --service ${service} ${uuid}.balena tar xzvC /data/
|
||||
|
||||
# remote -> local
|
||||
$ ssh-uuid --service ${service} ${uuid}.balena tar czC /data remote-folder | tar xvz
|
||||
|
||||
Or multiple files and folders with the powerful 'rsync' tool:
|
||||
|
||||
# local -> remote
|
||||
$ rsync -av -e 'ssh-uuid --service ${service}' local-folder ${uuid}.balena:/data/
|
||||
|
||||
# remote -> local
|
||||
$ rsync -av -e 'ssh-uuid --service ${service}' ${uuid}.balena:/data/remote-folder .
|
||||
|
||||
In these examples respectively, 'cat' or 'tar' or 'rsync' must be installed both
|
||||
on the local workstation and on the remote service container:
|
||||
$ apt-get install -y rsync tar # Debian, Ubuntu, etc
|
||||
$ apk add rsync tar # Alpine
|
||||
|
||||
Finally, if you are transferring files to/from a service's named volume (often
|
||||
named 'data'), note that named volumes are also exposed on the host OS under
|
||||
folder: '/mnt/data/docker/volumes/<fleet-id>_data/_data/'
|
||||
As such, it is also possible to scp to/from named volumes without '--service':
|
||||
|
||||
# local -> remote
|
||||
$ scp-uuid -r local-folder ${uuid}.balena:/mnt/data/docker/volumes/<fleet-id>_data/_data/
|
||||
|
||||
# remote -> local
|
||||
$ scp-uuid -r ${uuid}.balena:/mnt/data/docker/volumes/<fleet-id>_data/_data/remote-folder .
|
||||
" >/dev/stderr
|
||||
}
|
||||
|
||||
function run_scp {
|
||||
if [ -n "${SSUU_SERVICE}" ]; then
|
||||
if [ -n "${SSUU_FLAG_S}" ]; then
|
||||
quit "The '-S' and '--service' options cannot be used together"
|
||||
fi
|
||||
export SSUU_SERVICE
|
||||
set +e
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
scp -S ssh-uuid "${SSUU_OPT_ARGS[@]}" "${SSUU_POS_ARGS[@]}"
|
||||
{ local status="$?"; [ -n "${DEBUG}" ] && set +x; } 2>/dev/null
|
||||
set -e
|
||||
return "${status}"
|
||||
fi
|
||||
args=(
|
||||
-P 22222
|
||||
-o "ProxyCommand='$0' do_proxy %h %p"
|
||||
"${SSUU_OPT_ARGS[@]}"
|
||||
"${SSUU_POS_ARGS[@]}"
|
||||
)
|
||||
set +e
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
scp "${args[@]}"
|
||||
{ local status="$?"; [ -n "${DEBUG}" ] && set +x; } 2>/dev/null
|
||||
set -e
|
||||
return "${status}"
|
||||
}
|
||||
|
||||
# Run socat
|
||||
function do_proxy {
|
||||
local TARGET_HOST="$1"
|
||||
local TARGET_PORT="$2"
|
||||
local PROXY_AUTH_FILE="${BALENARC_DATA_DIRECTORY}/proxy-auth"
|
||||
local SOCAT_PORT
|
||||
SOCAT_PORT="$(get_rand_port_num)"
|
||||
mkdir -p "${BALENARC_DATA_DIRECTORY}" || quit "Cannot write to '${BALENARC_DATA_DIRECTORY}'"
|
||||
echo -n "${BALENA_USERNAME}:${BALENA_TOKEN}" > "${PROXY_AUTH_FILE}" || quit "Cannot write to '${PROXY_AUTH_FILE}'"
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
socat "TCP-LISTEN:${SOCAT_PORT},bind=127.0.0.1" "OPENSSL:tunnel.balena-cloud.com:443,snihost=tunnel.balena-cloud.com" &
|
||||
{ set +x; } 2>/dev/null
|
||||
sleep 1 # poor man's wait for the background socat process to be ready
|
||||
set +e
|
||||
[ -n "${DEBUG}" ] && set -x
|
||||
socat - "PROXY:127.0.0.1:${TARGET_HOST}:${TARGET_PORT},proxyport=${SOCAT_PORT},proxy-authorization-file=${PROXY_AUTH_FILE}"
|
||||
{ local status="$?"; [ -n "${DEBUG}" ] && set +x; } 2>/dev/null
|
||||
set -e
|
||||
local pid
|
||||
pid="$(jobs -p)"
|
||||
[ -n "${pid}" ] && kill "${pid}" && wait # shutdown background tunnel
|
||||
return "${status}"
|
||||
}
|
||||
|
||||
# Generate a random, possibly unavailable, TCP port number between
|
||||
# 10,000 and 65,535 using a shady, questionable algorithm that assumes,
|
||||
# based on annecodtal evidencce, that port numbers lower than 10,000
|
||||
# are less likely to be available.
|
||||
# If the port number is already in use, socat will produce an error.
|
||||
function get_rand_port_num {
|
||||
# In bash, "$RANDOM" produces a random integer between 0 and 32767.
|
||||
# RANDOM * 2 produces an even number reasonably evenly distributed
|
||||
# over the range from 0 to 65534, and then RANDOM % 2 adds 0 or 1.
|
||||
# '% 55536 + 10000' then coerces the range into 10,000 to 65,535.
|
||||
# (This spoils the even distribution, yes, but the real problem is
|
||||
# ensuring that the port number is not in use. It does not need
|
||||
# to be random, it needs to be available.)
|
||||
echo $(( (RANDOM * 2 + RANDOM % 2) % 55536 + 10000 ))
|
||||
}
|
||||
|
||||
function check_tool {
|
||||
which "$1" &>/dev/null || quit "'$1' not found in PATH. Is it installed?"
|
||||
}
|
||||
|
||||
function main {
|
||||
get_user_and_token
|
||||
if [ "$1" = 'do_proxy' ]; then
|
||||
shift
|
||||
do_proxy "$@"
|
||||
else
|
||||
SSUU_SCP='0'
|
||||
if [ "$(basename "$0")" = 'scp-uuid' ]; then
|
||||
SSUU_SCP='1'
|
||||
fi
|
||||
parse_args "$@"
|
||||
if [ "${SSUU_SCP}" = '1' ]; then
|
||||
run_scp "$@"
|
||||
else
|
||||
run_ssh "$@"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
87
.github/workflows/tests.yml
vendored
87
.github/workflows/tests.yml
vendored
@ -51,8 +51,8 @@ jobs:
|
||||
launch_template_version: ${{ vars.AWS_EC2_LT_VERSION || '6' }}
|
||||
# https://docs.renovatebot.com/modules/datasource/aws-machine-image/
|
||||
# amiFilter=[{"Name":"owner-id","Values":["099720109477"]},{"Name":"name","Values":["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*"]},{"region":"us-east-1"}]
|
||||
# currentImageName=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-20250516
|
||||
ami: ami-0a7620d611d3ceae4
|
||||
# currentImageName=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-20250610
|
||||
ami: ami-020cba7c55df1f615
|
||||
subdomain: ${{ vars.DNS_SUBDOMAIN || 'auto' }}
|
||||
dns_tld: ${{ vars.DNS_TLD || 'balena-devices.com' }}
|
||||
|
||||
@ -60,7 +60,7 @@ jobs:
|
||||
- target: balena-public-pki
|
||||
launch_template_version: ${{ vars.AWS_EC2_LT_VERSION || '6' }}
|
||||
# https://docs.renovatebot.com/modules/datasource/aws-machine-image/
|
||||
# amiFilter=[{"Name":"owner-id","Values":["491725000532"]},{"Name":"name","Values":["balenaOS-*-generic-amd64"]},{"region":"us-east-1"}]
|
||||
# amiFilter=[{"Name":"owner-id","Values":["491725000532"]},{"Name":"name","Values":["balenaOS!(-secureboot)-*.*.*-generic-amd64"]},{"region":"us-east-1"}]
|
||||
# currentImageName=balenaOS-6.5.29-generic-amd64
|
||||
ami: ami-0ffdbd60c5229c1e2
|
||||
# https://dash.cloudflare.com/001b3ed2352612aaa068aca1b0022736/balena-devices.com/dns
|
||||
@ -73,16 +73,55 @@ jobs:
|
||||
name: ${{ matrix.target }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
|
||||
- uses: actions/checkout@09d2acae674a48949e3602304ab46fd20ae0c42f
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
- name: Setup with_backoff utility function
|
||||
run: |
|
||||
set -ue
|
||||
# This used to come from src/balena-tests/functions, but that path is user-writable which had injection risks
|
||||
# https://coderwall.com/p/--eiqg/exponential-backoff-in-bash
|
||||
function with_backoff() {
|
||||
local max_attempts=${ATTEMPTS-5}
|
||||
local timeout=${TIMEOUT-1}
|
||||
local attempt=0
|
||||
local exitCode=0
|
||||
|
||||
set +e
|
||||
while [[ $attempt < $max_attempts ]]
|
||||
do
|
||||
"$@"
|
||||
exitCode=$?
|
||||
|
||||
if [[ $exitCode == 0 ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
|
||||
echo "Failure! Retrying in $timeout.." 1>&2
|
||||
sleep "$timeout"
|
||||
attempt=$(( attempt + 1 ))
|
||||
timeout=$(( timeout * 2 ))
|
||||
done
|
||||
|
||||
if [[ $exitCode != 0 ]]
|
||||
then
|
||||
echo "You've failed me for the last time! ($*)" 1>&2
|
||||
fi
|
||||
|
||||
set -e
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
echo "BASH_FUNC_with_backoff()=$(declare -f with_backoff)" >> $GITHUB_ENV
|
||||
|
||||
# https://github.com/unfor19/install-aws-cli-action
|
||||
- name: Setup awscli
|
||||
uses: unfor19/install-aws-cli-action@e8b481e524a99f37fbd39fdc1dcb3341ab091367 # v1
|
||||
|
||||
- uses: aws-actions/configure-aws-credentials@439a5297371c30b005c40e485f1de279f86df81e
|
||||
- uses: aws-actions/configure-aws-credentials@3bb878b6ab43ba8717918141cd07a0ea68cfe7ea
|
||||
with:
|
||||
aws-region: ${{ vars.AWS_REGION || 'us-east-1' }}
|
||||
role-session-name: github-${{ github.job }}-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@ -102,10 +141,10 @@ jobs:
|
||||
|
||||
# https://github.com/balena-io-examples/setup-balena-action
|
||||
- name: Setup balena CLI
|
||||
uses: balena-io-examples/setup-balena-action@01210a3d91d9efe9e27d5b76c595805c11825a63 # v0.0.11
|
||||
uses: balena-io-examples/setup-balena-action@a3dc55eb5a1efe3368778f19b9b8a2ac41ddf44c # v0.0.20
|
||||
env:
|
||||
# renovate: datasource=github-releases depName=balena-io/balena-cli
|
||||
BALENA_CLI_VERSION: v18.2.17
|
||||
BALENA_CLI_VERSION: v22.1.1
|
||||
with:
|
||||
cli-version: ${{ env.BALENA_CLI_VERSION }}
|
||||
|
||||
@ -119,8 +158,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
mkdir -p "${RUNNER_TEMP}/ssh-uuid"
|
||||
|
||||
wget -q -O "${RUNNER_TEMP}/ssh-uuid/ssh-uuid" https://raw.githubusercontent.com/pdcastro/ssh-uuid/master/ssh-uuid.sh \
|
||||
@ -195,8 +232,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
balena_device_uuid="$(openssl rand -hex 16)"
|
||||
@ -240,8 +275,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
pr_id='${{ github.event.pull_request.id }}'
|
||||
@ -268,8 +301,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
with_backoff balena env add VERBOSE "${{ vars.VERBOSE || 'false' }}" \
|
||||
@ -369,8 +400,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
# cert-manager requires it to get whoami information for the user
|
||||
@ -404,8 +433,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
# shellcheck disable=SC2046,SC2043
|
||||
for subnet_id in ${{ env.AWS_VPC_SUBNET_IDS }}; do
|
||||
# spot, on-demand
|
||||
@ -453,8 +480,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function cleanup() {
|
||||
aws ec2 describe-instances --instance-ids ${{ steps.balena-sut.outputs.instance_id }} \
|
||||
| jq -r .Reservations[].Instances[].StateReason
|
||||
@ -506,8 +531,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function cleanup() {
|
||||
aws ec2 describe-instances --instance-ids ${{ steps.balena-sut.outputs.instance_id }} \
|
||||
| jq -r .Reservations[].Instances[].StateReason
|
||||
@ -570,8 +593,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function cleanup() {
|
||||
aws ec2 describe-instances --instance-ids ${{ steps.balena-sut.outputs.instance_id }} \
|
||||
| jq -r .Reservations[].Instances[].StateReason
|
||||
@ -615,8 +636,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function cleanup() {
|
||||
aws ec2 describe-instances --instance-ids ${{ steps.balena-sut.outputs.instance_id }} \
|
||||
| jq -r .Reservations[].Instances[].StateReason
|
||||
@ -688,8 +707,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function cleanup() {
|
||||
rm -f user-data.yml
|
||||
}
|
||||
@ -874,8 +891,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
function log_output() {
|
||||
rm -f "{HOME}/.ssh/config"
|
||||
|
||||
@ -1023,8 +1038,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
with_backoff balena keys | grep ${{ steps.provision-ssh-key.outputs.key_id }} \
|
||||
@ -1048,8 +1061,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
|
||||
|
||||
with_backoff balena device rm ${{ steps.register-test-device.outputs.balena_device_uuid }} --yes
|
||||
@ -1065,8 +1076,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
if [[ -n '${{ steps.balena-sut.outputs.instance_id }}' ]]; then
|
||||
with_backoff aws ec2 terminate-instances \
|
||||
--instance-ids ${{ steps.balena-sut.outputs.instance_id }}
|
||||
@ -1083,8 +1092,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
if [[ -n '${{ steps.ubuntu-sut.outputs.instance_id }}' ]]; then
|
||||
with_backoff aws ec2 terminate-instances \
|
||||
--instance-ids ${{ steps.ubuntu-sut.outputs.instance_id }}
|
||||
@ -1101,8 +1108,6 @@ jobs:
|
||||
|
||||
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
|
||||
|
||||
source src/balena-tests/functions
|
||||
|
||||
stale_instances=$(mktemp)
|
||||
aws ec2 describe-instances --filters \
|
||||
Name=tag:Name,Values=open-balena-tests \
|
||||
|
@ -1,3 +1,468 @@
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v22.1.1
|
||||
hash: 2fde02ac366d03e64fb4052b71f4a0c379e4f721
|
||||
body: |
|
||||
Update balena-io/balena-cli from 22.1.0 to 22.1.1
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.450
|
||||
title: ""
|
||||
date: 2025-06-20T17:05:07.633Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.3.2
|
||||
hash: 864cf98b1149383e5a80db9825a969953e5a72bc
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.3.0 to 37.3.2
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.449
|
||||
title: ""
|
||||
date: 2025-06-20T15:47:09.727Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.20
|
||||
hash: decf3c1c6724270266a9b6e81deffdb26ad46e61
|
||||
body: |
|
||||
Update balena-io-examples/setup-balena-action from 0.0.19 to 0.0.20
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.448
|
||||
title: ""
|
||||
date: 2025-06-20T01:17:30.792Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.3.0
|
||||
hash: 1d627f8ebba0ef9138b2132eb78eca46a7532098
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.2.1 to 37.3.0
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.447
|
||||
title: ""
|
||||
date: 2025-06-19T08:48:27.688Z
|
||||
- commits:
|
||||
- subject: Update aws-actions/configure-aws-credentials digest to 3bb878b
|
||||
hash: 067e000795a435ef1704da47d98ee958a868c56c
|
||||
body: |
|
||||
Update aws-actions/configure-aws-credentials
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.446
|
||||
title: ""
|
||||
date: 2025-06-17T22:12:03.860Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.2.1
|
||||
hash: 59f69aa61b1a115ca0505f78a28f8b574c21f1f5
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.2.0 to 37.2.1
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.445
|
||||
title: ""
|
||||
date: 2025-06-13T12:18:45.318Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.2.0
|
||||
hash: 212bc9d03c87674441fd6bde14d29b56eef4ccb9
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.10 to 37.2.0
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.444
|
||||
title: ""
|
||||
date: 2025-06-13T00:17:09.114Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-s3 Docker tag to v2.28.75
|
||||
hash: 88bb5b1b165cbc8677dac78e0c097f03ad5a5316
|
||||
body: |
|
||||
Update balena/open-balena-s3 from 2.28.74 to 2.28.75
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.443
|
||||
title: ""
|
||||
date: 2025-06-12T22:48:07.330Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.10
|
||||
hash: 3a7229acde81d145c742bddaa17b5acee1085a9d
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.8 to 37.1.10
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.442
|
||||
title: ""
|
||||
date: 2025-06-12T16:07:05.240Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.8
|
||||
hash: 6e144793a7374b67b596aa7fe7b04ca5c7afe808
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.7 to 37.1.8
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.441
|
||||
title: ""
|
||||
date: 2025-06-10T16:34:07.948Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.7
|
||||
hash: 1ec66310d662b7ea40ce56c5086aa4098bcbe14d
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.6 to 37.1.7
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.440
|
||||
title: ""
|
||||
date: 2025-06-10T16:02:22.597Z
|
||||
- commits:
|
||||
- subject: Update actions/checkout digest to 09d2aca
|
||||
hash: a14778918863c639e5edb24a0b4189ff55101c25
|
||||
body: |
|
||||
Update actions/checkout
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.439
|
||||
title: ""
|
||||
date: 2025-06-10T13:43:33.254Z
|
||||
- commits:
|
||||
- subject: Update dependency ami to ami-020cba7c55df1f615
|
||||
hash: 8a3c07dea6da25de1aaaa661aef9bb6dd9f660be
|
||||
body: |
|
||||
Update ami from ami-0731becbf832f281e to ami-020cba7c55df1f615
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.438
|
||||
title: ""
|
||||
date: 2025-06-10T11:56:59.195Z
|
||||
- commits:
|
||||
- subject: Update aws-actions/configure-aws-credentials digest to a95656f
|
||||
hash: 7f574ad09b57f57f7c60e22a49a520d655fbeb48
|
||||
body: |
|
||||
Update aws-actions/configure-aws-credentials
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.437
|
||||
title: ""
|
||||
date: 2025-06-10T04:41:52.409Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.19
|
||||
hash: 68e14fa86a11ca15b7180146bf07da47444baac2
|
||||
body: |
|
||||
Update balena-io-examples/setup-balena-action from 0.0.18 to 0.0.19
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.436
|
||||
title: ""
|
||||
date: 2025-06-09T23:04:03.070Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v22.1.0
|
||||
hash: 652fde04f85e2219e98c63a3826aec4093b1d7ef
|
||||
body: |
|
||||
Update balena-io/balena-cli from 22.0.6 to 22.1.0
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.435
|
||||
title: ""
|
||||
date: 2025-06-09T21:51:52.276Z
|
||||
- commits:
|
||||
- subject: Update aws-actions/configure-aws-credentials digest to ab0ba40
|
||||
hash: 4245f746fb7e236f836d05220ae948cece12cada
|
||||
body: |
|
||||
Update aws-actions/configure-aws-credentials
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.434
|
||||
title: ""
|
||||
date: 2025-06-05T23:07:04.438Z
|
||||
- commits:
|
||||
- subject: Update aws-actions/configure-aws-credentials digest to 151e7fe
|
||||
hash: be8ebc87afe773ada463e3f6918eda544c462666
|
||||
body: |
|
||||
Update aws-actions/configure-aws-credentials
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.433
|
||||
title: ""
|
||||
date: 2025-06-03T04:23:17.206Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v22.0.6
|
||||
hash: 18a7e6afa7e824482a29072bc9c2a4ce49cc587c
|
||||
body: |
|
||||
Update balena-io/balena-cli from 22.0.5 to 22.0.6
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.432
|
||||
title: ""
|
||||
date: 2025-06-02T20:23:12.070Z
|
||||
- commits:
|
||||
- subject: Update dependency ami to ami-0731becbf832f281e
|
||||
hash: b363655b035b7ec81b722856168a41a132a4fa0b
|
||||
body: |
|
||||
Update ami from ami-0a7620d611d3ceae4 to ami-0731becbf832f281e
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.431
|
||||
title: ""
|
||||
date: 2025-06-02T19:57:46.770Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.18
|
||||
hash: 074caf4a382a54816de3eccd1f9d3a51a1784bb7
|
||||
body: |
|
||||
Update balena-io-examples/setup-balena-action from 0.0.17 to 0.0.18
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.430
|
||||
title: ""
|
||||
date: 2025-06-02T18:02:02.266Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-vpn Docker tag to v11.32.28
|
||||
hash: 061f22e1d961639d50a637dcdf6272275f5f9305
|
||||
body: |
|
||||
Update balena/open-balena-vpn from 11.32.27 to 11.32.28
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.429
|
||||
title: ""
|
||||
date: 2025-06-02T15:46:59.607Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v22.0.5
|
||||
hash: 67f8a8477d8db52ef4d0e54641b2e700b093820d
|
||||
body: |
|
||||
Update balena-io/balena-cli from 22.0.0 to 22.0.5
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.428
|
||||
title: ""
|
||||
date: 2025-05-30T03:29:17.816Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v22
|
||||
hash: 031996f4868c989879437aee92842d6d2a6c88a0
|
||||
body: |
|
||||
Update balena-io/balena-cli from 21.1.14 to 22.0.0
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.427
|
||||
title: ""
|
||||
date: 2025-05-30T00:36:47.597Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.17
|
||||
hash: 6dcf7ec086a7ebb77c0f74ad393012dc4fd9fa39
|
||||
body: |
|
||||
Update balena-io-examples/setup-balena-action from 0.0.12 to 0.0.17
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.426
|
||||
title: ""
|
||||
date: 2025-05-29T20:44:56.223Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.6
|
||||
hash: 1b89f027a8bd11e5a66b50784cbed25bce793425
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.5 to 37.1.6
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.425
|
||||
title: ""
|
||||
date: 2025-05-29T14:47:37.805Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-vpn Docker tag to v11.32.27
|
||||
hash: cb822e6e90a6067136cbaa95e5dc3a5e868c89b8
|
||||
body: |
|
||||
Update balena/open-balena-vpn from 11.32.25 to 11.32.27
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.424
|
||||
title: ""
|
||||
date: 2025-05-28T11:23:35.447Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.5
|
||||
hash: 8c5522b0bf85b55b215c16e5cfdea793b06ed864
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.4 to 37.1.5
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.423
|
||||
title: ""
|
||||
date: 2025-05-27T18:17:10.871Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v21
|
||||
hash: a55a88d2f0a6288e9acafef47bb3e574274686f0
|
||||
body: |
|
||||
Update balena-io/balena-cli from 20.2.10 to 21.1.14
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.422
|
||||
title: ""
|
||||
date: 2025-05-27T17:22:11.958Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.4
|
||||
hash: bfd399193f47792bf16b0423bd769926fd928da4
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.3 to 37.1.4
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.421
|
||||
title: ""
|
||||
date: 2025-05-27T15:27:10.473Z
|
||||
- commits:
|
||||
- subject: Update balena/open-balena-api Docker tag to v37.1.3
|
||||
hash: 87a94d8c6d223a330e6a105584e5c6ba4c7d884d
|
||||
body: |
|
||||
Update balena/open-balena-api from 37.1.0 to 37.1.3
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.420
|
||||
title: ""
|
||||
date: 2025-05-27T15:01:53.690Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v20
|
||||
hash: e67bde8b0f66be17722937b2ba9b793666c220ed
|
||||
body: |
|
||||
Update balena-io/balena-cli from 18.2.34 to 20.2.10
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.419
|
||||
title: ""
|
||||
date: 2025-05-27T13:06:03.888Z
|
||||
- commits:
|
||||
- subject: Update aws-actions/configure-aws-credentials digest to b92d0d9
|
||||
hash: a0a518da7964dd881ad7709a33558de5ee73b62f
|
||||
body: |
|
||||
Update aws-actions/configure-aws-credentials
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.418
|
||||
title: ""
|
||||
date: 2025-05-27T08:17:45.708Z
|
||||
- commits:
|
||||
- subject: "patch: Only match balenaOS (non secure-boot) images"
|
||||
hash: d4c0144829e002833985f3eeac96065e192cc1d0
|
||||
body: ""
|
||||
footer: {}
|
||||
author: Anton Belodedenko
|
||||
nested: []
|
||||
version: 4.1.417
|
||||
title: ""
|
||||
date: 2025-05-27T07:52:09.722Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.12
|
||||
hash: 10f109d299f684a64cf571a90486f15c1adee4e2
|
||||
body: |
|
||||
Update balena-io-examples/setup-balena-action from 0.0.11 to 0.0.12
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.416
|
||||
title: ""
|
||||
date: 2025-05-26T22:16:45.716Z
|
||||
- commits:
|
||||
- subject: Update dependency balena-io/balena-cli to v18.2.34
|
||||
hash: 040f7051382d6c7205ec1f944379a49706d5f6aa
|
||||
body: |
|
||||
Update balena-io/balena-cli from 18.2.17 to 18.2.34
|
||||
footer:
|
||||
Change-type: patch
|
||||
change-type: patch
|
||||
author: balena-renovate[bot]
|
||||
nested: []
|
||||
version: 4.1.415
|
||||
title: ""
|
||||
date: 2025-05-26T21:08:32.204Z
|
||||
- commits:
|
||||
- subject: Update balena-io-examples/setup-balena-action action to v0.0.11
|
||||
hash: e150dee790290bc3f163e7efaf90a0c71429f0c0
|
||||
|
180
CHANGELOG.md
180
CHANGELOG.md
@ -4,6 +4,186 @@ All notable changes to this project will be documented in this file
|
||||
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
# v4.1.450
|
||||
## (2025-06-20)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v22.1.1 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.449
|
||||
## (2025-06-20)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.3.2 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.448
|
||||
## (2025-06-20)
|
||||
|
||||
* Update balena-io-examples/setup-balena-action action to v0.0.20 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.447
|
||||
## (2025-06-19)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.3.0 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.446
|
||||
## (2025-06-17)
|
||||
|
||||
* Update aws-actions/configure-aws-credentials digest to 3bb878b [balena-renovate[bot]]
|
||||
|
||||
# v4.1.445
|
||||
## (2025-06-13)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.2.1 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.444
|
||||
## (2025-06-13)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.2.0 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.443
|
||||
## (2025-06-12)
|
||||
|
||||
* Update balena/open-balena-s3 Docker tag to v2.28.75 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.442
|
||||
## (2025-06-12)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.10 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.441
|
||||
## (2025-06-10)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.8 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.440
|
||||
## (2025-06-10)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.7 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.439
|
||||
## (2025-06-10)
|
||||
|
||||
* Update actions/checkout digest to 09d2aca [balena-renovate[bot]]
|
||||
|
||||
# v4.1.438
|
||||
## (2025-06-10)
|
||||
|
||||
* Update dependency ami to ami-020cba7c55df1f615 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.437
|
||||
## (2025-06-10)
|
||||
|
||||
* Update aws-actions/configure-aws-credentials digest to a95656f [balena-renovate[bot]]
|
||||
|
||||
# v4.1.436
|
||||
## (2025-06-09)
|
||||
|
||||
* Update balena-io-examples/setup-balena-action action to v0.0.19 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.435
|
||||
## (2025-06-09)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v22.1.0 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.434
|
||||
## (2025-06-05)
|
||||
|
||||
* Update aws-actions/configure-aws-credentials digest to ab0ba40 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.433
|
||||
## (2025-06-03)
|
||||
|
||||
* Update aws-actions/configure-aws-credentials digest to 151e7fe [balena-renovate[bot]]
|
||||
|
||||
# v4.1.432
|
||||
## (2025-06-02)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v22.0.6 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.431
|
||||
## (2025-06-02)
|
||||
|
||||
* Update dependency ami to ami-0731becbf832f281e [balena-renovate[bot]]
|
||||
|
||||
# v4.1.430
|
||||
## (2025-06-02)
|
||||
|
||||
* Update balena-io-examples/setup-balena-action action to v0.0.18 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.429
|
||||
## (2025-06-02)
|
||||
|
||||
* Update balena/open-balena-vpn Docker tag to v11.32.28 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.428
|
||||
## (2025-05-30)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v22.0.5 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.427
|
||||
## (2025-05-30)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v22 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.426
|
||||
## (2025-05-29)
|
||||
|
||||
* Update balena-io-examples/setup-balena-action action to v0.0.17 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.425
|
||||
## (2025-05-29)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.6 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.424
|
||||
## (2025-05-28)
|
||||
|
||||
* Update balena/open-balena-vpn Docker tag to v11.32.27 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.423
|
||||
## (2025-05-27)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.5 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.422
|
||||
## (2025-05-27)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v21 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.421
|
||||
## (2025-05-27)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.4 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.420
|
||||
## (2025-05-27)
|
||||
|
||||
* Update balena/open-balena-api Docker tag to v37.1.3 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.419
|
||||
## (2025-05-27)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v20 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.418
|
||||
## (2025-05-27)
|
||||
|
||||
* Update aws-actions/configure-aws-credentials digest to b92d0d9 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.417
|
||||
## (2025-05-27)
|
||||
|
||||
* patch: Only match balenaOS (non secure-boot) images [Anton Belodedenko]
|
||||
|
||||
# v4.1.416
|
||||
## (2025-05-26)
|
||||
|
||||
* Update balena-io-examples/setup-balena-action action to v0.0.12 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.415
|
||||
## (2025-05-26)
|
||||
|
||||
* Update dependency balena-io/balena-cli to v18.2.34 [balena-renovate[bot]]
|
||||
|
||||
# v4.1.414
|
||||
## (2025-05-26)
|
||||
|
||||
|
@ -23,4 +23,4 @@ data:
|
||||
- generic-amd64
|
||||
- genericx86-64-ext
|
||||
- intel-nuc
|
||||
version: 4.1.414
|
||||
version: 4.1.450
|
||||
|
@ -79,7 +79,7 @@ services:
|
||||
*with-default-privileges,
|
||||
*with-default-volumes,
|
||||
]
|
||||
image: balena/open-balena-api:37.1.0
|
||||
image: balena/open-balena-api:37.3.2
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
@ -146,7 +146,7 @@ services:
|
||||
*with-network-privileges,
|
||||
*with-default-privileges,
|
||||
]
|
||||
image: balena/open-balena-vpn:11.32.25
|
||||
image: balena/open-balena-vpn:11.32.28
|
||||
depends_on:
|
||||
- api
|
||||
environment:
|
||||
@ -177,7 +177,7 @@ services:
|
||||
*with-default-healthcheck,
|
||||
*with-default-privileges,
|
||||
]
|
||||
image: balena/open-balena-s3:2.28.74
|
||||
image: balena/open-balena-s3:2.28.75
|
||||
volumes:
|
||||
- s3-data:/export
|
||||
- certs-data:/certs
|
||||
|
@ -1,7 +1,7 @@
|
||||
FROM ubuntu:24.04
|
||||
|
||||
# renovate: datasource=github-releases depName=balena-io/balena-cli
|
||||
ARG BALENA_CLI_VERSION=v21.1.14
|
||||
ARG BALENA_CLI_VERSION=v22.1.1
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
bash \
|
||||
@ -21,11 +21,9 @@ RUN curl -fsSL https://get.docker.com | sh
|
||||
WORKDIR /opt
|
||||
|
||||
RUN set -x; arch=$(uname -m | sed 's/86_64/64/g') \
|
||||
&& wget -q "https://github.com/balena-io/balena-cli/releases/download/${BALENA_CLI_VERSION}/balena-cli-${BALENA_CLI_VERSION}-linux-${arch}-standalone.zip" \
|
||||
&& unzip -q "balena-cli-${BALENA_CLI_VERSION}-linux-${arch}-standalone.zip" \
|
||||
&& rm -rf "balena-cli-${BALENA_CLI_VERSION}-linux-${arch}-standalone.zip"
|
||||
&& wget -qO- "https://github.com/balena-io/balena-cli/releases/download/${BALENA_CLI_VERSION}/balena-cli-${BALENA_CLI_VERSION}-linux-${arch}-standalone.tar.gz" | tar -xzf -
|
||||
|
||||
ENV PATH=/opt/balena-cli:${PATH}
|
||||
ENV PATH=/opt/balena/bin:${PATH}
|
||||
|
||||
COPY functions balena.sh /usr/sbin/
|
||||
|
||||
|
Reference in New Issue
Block a user