Compare commits

..

171 Commits

Author SHA1 Message Date
a23f11f345 v4.1.1 2024-06-24 20:56:54 +00:00
0ba199be9d Merge pull request #256 from balena-io/renovate/pin-dependencies
Pin unfor19/install-aws-cli-action action to e8b481e
2024-06-24 20:56:13 +00:00
fe3bc20a30 Pin unfor19/install-aws-cli-action action to e8b481e
Update unfor19/install-aws-cli-action

Change-type: patch
2024-06-24 20:52:44 +00:00
e58bf5a4c0 v4.1.0 2024-06-24 20:01:46 +00:00
437c26fe47 Merge pull request #231 from balena-io/ab77/test-matrix
test compose workflow
2024-06-24 13:01:00 -07:00
9a172b03f7 test compose workflow
* docker-compose test workflow to broadly approximate the getting started guide,
since testing on balenaCloud/balenaOS alone doesn't give us a high level of
confidence the project boots/works on compose

change-type: minor
2024-06-24 09:29:18 -07:00
96868c1787 v4.0.57 2024-06-24 15:01:28 +00:00
0f86f5638a Merge pull request #255 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.7
2024-06-24 15:00:40 +00:00
173a99d363 Update balena/open-balena-api Docker tag to v25.1.7
Update balena/open-balena-api from 25.1.6 to 25.1.7

Change-type: patch
2024-06-24 14:56:58 +00:00
9c013c9b44 v4.0.56 2024-06-24 14:01:45 +00:00
049cbcaf9b Merge pull request #254 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.6
2024-06-24 14:01:00 +00:00
aefe256e81 Update balena/open-balena-api Docker tag to v25.1.6
Update balena/open-balena-api from 25.1.5 to 25.1.6

Change-type: patch
2024-06-24 13:56:36 +00:00
6cf045aea9 v4.0.55 2024-06-24 05:59:18 +00:00
0848e06003 Merge pull request #253 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.5
2024-06-24 05:58:32 +00:00
c4d94801f6 Update balena/open-balena-api Docker tag to v25.1.5
Update balena/open-balena-api from 25.1.3 to 25.1.5

Change-type: patch
2024-06-24 05:54:01 +00:00
33eb988eef v4.0.54 2024-06-21 21:04:51 +00:00
91ea4936bf Merge pull request #252 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.10
2024-06-21 21:04:04 +00:00
0e28278a37 Update dependency balena-io/balena-cli to v18.2.10
Update balena-io/balena-cli from 18.2.9 to 18.2.10

Change-type: patch
2024-06-21 20:54:48 +00:00
f3091b5b2e v4.0.53 2024-06-21 20:02:15 +00:00
ee4bf0218c Merge pull request #251 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.9
2024-06-21 20:01:23 +00:00
be879e9fd9 Update dependency balena-io/balena-cli to v18.2.9
Update balena-io/balena-cli from 18.2.8 to 18.2.9

Change-type: patch
2024-06-21 19:56:32 +00:00
1aa73874a2 v4.0.52 2024-06-21 19:00:15 +00:00
afb9865b52 Merge pull request #250 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.8
2024-06-21 18:59:35 +00:00
a49e96d84f Update dependency balena-io/balena-cli to v18.2.8
Update balena-io/balena-cli from 18.2.7 to 18.2.8

Change-type: patch
2024-06-21 18:54:50 +00:00
dce88ff01b v4.0.51 2024-06-21 18:02:30 +00:00
cde52c24da Merge pull request #249 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.7
2024-06-21 18:01:48 +00:00
cd4c361b8c Update dependency balena-io/balena-cli to v18.2.7
Update balena-io/balena-cli from 18.2.6 to 18.2.7

Change-type: patch
2024-06-21 17:57:23 +00:00
78da3c5a1a v4.0.50 2024-06-21 15:59:13 +00:00
41d6129911 Merge pull request #248 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.6
2024-06-21 15:58:15 +00:00
da4647515e Update dependency balena-io/balena-cli to v18.2.6
Update balena-io/balena-cli from 18.2.5 to 18.2.6

Change-type: patch
2024-06-21 15:53:50 +00:00
e67e435971 v4.0.49 2024-06-21 13:04:40 +00:00
ced0fe4b17 Merge pull request #247 from balena-io/renovate/balena-io-balena-cli-18.2.x
Update dependency balena-io/balena-cli to v18.2.5
2024-06-21 13:03:53 +00:00
6c8786f4f9 Update dependency balena-io/balena-cli to v18.2.5
Update balena-io/balena-cli from 18.2.2 to 18.2.5

Change-type: patch
2024-06-21 12:59:07 +00:00
1a9d7fa230 v4.0.48 2024-06-19 17:57:51 +00:00
f69dba08f7 Merge pull request #246 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.3
2024-06-19 17:57:02 +00:00
e742df4e89 Update balena/open-balena-api Docker tag to v25.1.3
Update balena/open-balena-api from 25.1.2 to 25.1.3

Change-type: patch
2024-06-19 17:52:47 +00:00
742d19dd6c v4.0.47 2024-06-19 13:57:49 +00:00
4bcf8c5ace Merge pull request #245 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.2
2024-06-19 13:57:00 +00:00
252398e130 Update balena/open-balena-api Docker tag to v25.1.2
Update balena/open-balena-api from 25.1.1 to 25.1.2

Change-type: patch
2024-06-19 13:52:51 +00:00
008a06fb96 v4.0.46 2024-06-18 08:58:35 +00:00
3a42e20809 Merge pull request #244 from balena-io/renovate/balena-open-balena-api-25.1.x
Update balena/open-balena-api Docker tag to v25.1.1
2024-06-18 08:57:53 +00:00
25e2346f2d Update balena/open-balena-api Docker tag to v25.1.1
Update balena/open-balena-api from 25.1.0 to 25.1.1

Change-type: patch
2024-06-18 08:53:37 +00:00
aad05c96de v4.0.45 2024-06-18 03:56:40 +00:00
2510c1644f Merge pull request #243 from balena-io/renovate/aws-actions-configure-aws-credentials-digest
Update aws-actions/configure-aws-credentials digest to 61a1105
2024-06-18 03:55:57 +00:00
6dd753b744 Update aws-actions/configure-aws-credentials digest to 61a1105
Update aws-actions/configure-aws-credentials

Change-type: patch
2024-06-18 03:52:12 +00:00
bd504f6019 v4.0.44 2024-06-17 17:01:20 +00:00
9955e7e4fc Merge pull request #242 from balena-io/renovate/balena-open-balena-api-25.x
Update balena/open-balena-api Docker tag to v25.1.0
2024-06-17 17:00:30 +00:00
b87f2662f9 Update balena/open-balena-api Docker tag to v25.1.0
Update balena/open-balena-api from 25.0.2 to 25.1.0

Change-type: patch
2024-06-17 16:56:22 +00:00
ca72e711d3 v4.0.43 2024-06-17 16:26:22 +00:00
4e2ecb653f Merge pull request #238 from balena-io/renovate/balena-open-balena-api-25.x
Update balena/open-balena-api Docker tag to v25
2024-06-17 09:25:39 -07:00
15e93fecc7 Update balena/open-balena-api Docker tag to v25
Update balena/open-balena-api from 24.3.1 to 25.0.2

Change-type: patch
2024-06-15 14:52:14 +00:00
47ed0ce133 v4.0.42 2024-06-13 22:57:15 +00:00
bb9ed97688 Merge pull request #240 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.16
2024-06-13 22:56:34 +00:00
217473e54a Update qemux/qemu-docker Docker tag to v5.16
Update qemux/qemu-docker from 5.15 to 5.16

Change-type: patch
2024-06-13 22:52:54 +00:00
6e7dae2cc9 v4.0.41 2024-06-12 20:57:42 +00:00
f4f12d2d1a Merge pull request #237 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.15
2024-06-12 20:56:42 +00:00
ca910f88d1 Update qemux/qemu-docker Docker tag to v5.15
Update qemux/qemu-docker from 5.14 to 5.15

Change-type: patch
2024-06-12 20:53:07 +00:00
9ffdce4e9b v4.0.40 2024-06-12 18:58:46 +00:00
4038e45a3d Merge pull request #236 from balena-io/renovate/actions-checkout-digest
Update actions/checkout digest to 692973e
2024-06-12 18:58:00 +00:00
6474a7a8b5 Update actions/checkout digest to 692973e
Update actions/checkout

Change-type: patch
2024-06-12 18:54:42 +00:00
f095a2c596 v4.0.39 2024-06-12 17:59:52 +00:00
459cca7449 Merge pull request #235 from balena-io/renovate/actions-checkout-digest
Update actions/checkout digest to 6ccd57f
2024-06-12 17:58:54 +00:00
8090670ae6 Update actions/checkout digest to 6ccd57f
Update actions/checkout

Change-type: patch
2024-06-12 17:55:07 +00:00
a88a0cb89d v4.0.38 2024-06-12 16:04:57 +00:00
4ee327b84a Merge pull request #234 from balena-io/renovate/actions-checkout-digest
Update actions/checkout digest to b17fe1e
2024-06-12 16:04:02 +00:00
12d9370d6f Update actions/checkout digest to b17fe1e
Update actions/checkout

Change-type: patch
2024-06-12 15:56:14 +00:00
f201cce2a6 v4.0.37 2024-06-12 03:00:54 +00:00
1fbf042d0a Merge pull request #233 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.14
2024-06-12 03:00:01 +00:00
9345f75b3b Update qemux/qemu-docker Docker tag to v5.14
Update qemux/qemu-docker from 5.13 to 5.14

Change-type: patch
2024-06-12 02:55:47 +00:00
506e046140 v4.0.36 2024-06-12 00:01:25 +00:00
9b19d1e3fb Merge pull request #232 from balena-io/renovate/balena-open-balena-s3-2.28.x
Update balena/open-balena-s3 Docker tag to v2.28.45
2024-06-12 00:00:30 +00:00
1d34d468b4 Update balena/open-balena-s3 Docker tag to v2.28.45
Update balena/open-balena-s3 from 2.28.44 to 2.28.45

Change-type: patch
2024-06-11 23:54:54 +00:00
a939d907d5 v4.0.35 2024-06-11 23:07:12 +00:00
2fbf7895ef Merge pull request #229 from balena-io/renovate/balena-open-balena-api-24.3.x
Update balena/open-balena-api Docker tag to v24.3.1
2024-06-11 23:06:29 +00:00
c448be555b Update balena/open-balena-api Docker tag to v24.3.1
Update balena/open-balena-api from 24.3.0 to 24.3.1

Change-type: patch
2024-06-11 22:55:46 +00:00
03f3f9134b v4.0.34 2024-06-11 22:03:46 +00:00
3db1233154 Merge pull request #230 from balena-io/renovate/balena-open-balena-registry-2.39.x
Update balena/open-balena-registry Docker tag to v2.39.58
2024-06-11 22:02:32 +00:00
f6bdc3ea65 Update balena/open-balena-registry Docker tag to v2.39.58
Update balena/open-balena-registry from 2.39.57 to 2.39.58

Change-type: patch
2024-06-11 21:53:09 +00:00
73be11fd0f v4.0.33 2024-06-11 15:56:31 +00:00
6162e15f91 Merge pull request #228 from balena-io/renovate/balena-open-balena-api-24.x
Update balena/open-balena-api Docker tag to v24.3.0
2024-06-11 15:55:50 +00:00
6c49a9ef98 Update balena/open-balena-api Docker tag to v24.3.0
Update balena/open-balena-api from 24.2.2 to 24.3.0

Change-type: patch
2024-06-11 15:52:04 +00:00
7ab210b2f9 v4.0.32 2024-06-11 13:57:45 +00:00
f97b471d97 Merge pull request #227 from balena-io/renovate/balena-open-balena-api-24.2.x
Update balena/open-balena-api Docker tag to v24.2.2
2024-06-11 13:56:54 +00:00
16d1bbc25b Update balena/open-balena-api Docker tag to v24.2.2
Update balena/open-balena-api from 24.2.1 to 24.2.2

Change-type: patch
2024-06-11 13:52:23 +00:00
36c6055b63 v4.0.31 2024-06-11 04:58:26 +00:00
9d138c22e8 Merge pull request #226 from balena-io/renovate/aws-actions-configure-aws-credentials-digest
Update aws-actions/configure-aws-credentials digest to c7680c3
2024-06-11 04:57:42 +00:00
e89f6c069b Update aws-actions/configure-aws-credentials digest to c7680c3
Update aws-actions/configure-aws-credentials

Change-type: patch
2024-06-11 04:54:11 +00:00
bf5e5d9caf v4.0.30 2024-06-11 03:57:13 +00:00
1382e77e07 Merge pull request #225 from balena-io/renovate/aws-actions-configure-aws-credentials-digest
Update aws-actions/configure-aws-credentials digest to cf3f053
2024-06-11 03:56:33 +00:00
3f69ce0ca0 Update aws-actions/configure-aws-credentials digest to cf3f053
Update aws-actions/configure-aws-credentials

Change-type: patch
2024-06-11 03:53:28 +00:00
6ef5c59820 v4.0.29 2024-06-11 00:03:28 +00:00
0159b929a6 Merge pull request #224 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.13
2024-06-11 00:02:29 +00:00
c7b07b9f02 Update qemux/qemu-docker Docker tag to v5.13
Update qemux/qemu-docker from 5.12 to 5.13

Change-type: patch
2024-06-10 23:52:14 +00:00
bd7eb1889c v4.0.28 2024-06-10 22:57:43 +00:00
2cc0eb72c1 Merge pull request #223 from balena-io/renovate/balena-open-balena-api-24.2.x
Update balena/open-balena-api Docker tag to v24.2.1
2024-06-10 22:57:04 +00:00
7f71b83f62 Update balena/open-balena-api Docker tag to v24.2.1
Update balena/open-balena-api from 24.2.0 to 24.2.1

Change-type: patch
2024-06-10 22:52:38 +00:00
f91bb909ef v4.0.27 2024-06-10 15:28:44 +00:00
19f2691112 Merge pull request #222 from balena-io/ab77/patch
ignore .env if it doesn't exist
2024-06-10 15:25:03 +00:00
fb3b2211c1 ignore .env if it doesn't exist
change-type: patch
2024-06-10 07:54:52 -07:00
c2369950b0 v4.0.26 2024-06-10 13:58:44 +00:00
6ec137bf17 Merge pull request #221 from balena-io/renovate/balena-open-balena-api-24.x
Update balena/open-balena-api Docker tag to v24.2.0
2024-06-10 13:57:50 +00:00
b37c476f58 Update balena/open-balena-api Docker tag to v24.2.0
Update balena/open-balena-api from 24.1.3 to 24.2.0

Change-type: patch
2024-06-10 13:53:45 +00:00
39c3fed5df v4.0.25 2024-06-10 02:20:19 +00:00
32d123b3f9 Merge pull request #220 from balena-io/renovate/balena-open-balena-api-24.1.x
Update balena/open-balena-api Docker tag to v24.1.3
2024-06-10 02:19:37 +00:00
cf5e4d226b Update balena/open-balena-api Docker tag to v24.1.3
Update balena/open-balena-api from 24.1.2 to 24.1.3

Change-type: patch
2024-06-10 02:15:31 +00:00
80b6bb67d6 v4.0.24 2024-06-09 22:12:18 +00:00
a420a3edef Merge pull request #216 from balena-io/ab77/patch
backoff retry device registrations and tagging
2024-06-09 22:11:34 +00:00
4e1e10501d backoff retry device registrations and tagging
change-type: patch
2024-06-09 15:06:41 -07:00
57a8d218c4 v4.0.23 2024-06-09 15:57:32 +00:00
67fb253ff5 Merge pull request #218 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.12
2024-06-09 15:56:42 +00:00
7625d40d80 Update qemux/qemu-docker Docker tag to v5.12
Update qemux/qemu-docker from 5.11 to 5.12

Change-type: patch
2024-06-09 15:52:13 +00:00
c97b87918b v4.0.22 2024-06-07 11:08:21 +00:00
76cae37cdb Merge pull request #217 from balena-io/renovate/balena-open-balena-api-24.1.x
Update balena/open-balena-api Docker tag to v24.1.2
2024-06-07 11:07:26 +00:00
e741155b4b Update balena/open-balena-api Docker tag to v24.1.2
Update balena/open-balena-api from 24.1.1 to 24.1.2

Change-type: patch
2024-06-07 10:54:43 +00:00
6cf973527a v4.0.21 2024-06-06 19:33:20 +00:00
560557b095 Merge pull request #215 from balena-io/renovate/balena-open-balena-api-24.x
Update balena/open-balena-api Docker tag to v24
2024-06-06 12:32:15 -07:00
d205982207 Update balena/open-balena-api Docker tag to v24
Update balena/open-balena-api from 23.3.0 to 24.1.1

Change-type: patch
2024-06-06 17:51:41 +00:00
bf0b843624 v4.0.20 2024-06-06 09:58:30 +00:00
6d92d50c1c Merge pull request #214 from balena-io/renovate/balena-open-balena-api-23.x
Update balena/open-balena-api Docker tag to v23.3.0
2024-06-06 09:57:43 +00:00
8af31148c1 Update balena/open-balena-api Docker tag to v23.3.0
Update balena/open-balena-api from 23.2.0 to 23.3.0

Change-type: patch
2024-06-06 09:53:25 +00:00
6e69b42963 v4.0.19 2024-06-05 16:00:26 +00:00
e6764e2919 Merge pull request #213 from balena-io/renovate/balena-open-balena-api-23.x
Update balena/open-balena-api Docker tag to v23.2.0
2024-06-05 15:59:36 +00:00
54d3cd3c1c Update balena/open-balena-api Docker tag to v23.2.0
Update balena/open-balena-api from 23.1.0 to 23.2.0

Change-type: patch
2024-06-05 15:55:26 +00:00
4a2b04b18f v4.0.18 2024-06-05 10:57:42 +00:00
14b7daea72 Merge pull request #212 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.11
2024-06-05 10:56:43 +00:00
4f8413e564 Update qemux/qemu-docker Docker tag to v5.11
Update qemux/qemu-docker from 5.10 to 5.11

Change-type: patch
2024-06-05 10:51:53 +00:00
fdbe6df36a v4.0.17 2024-06-04 21:00:54 +00:00
ceb81db652 Merge pull request #211 from balena-io/renovate/balena-open-balena-api-23.x
Update balena/open-balena-api Docker tag to v23.1.0
2024-06-04 21:00:08 +00:00
76cb7ef4ea Update balena/open-balena-api Docker tag to v23.1.0
Update balena/open-balena-api from 23.0.2 to 23.1.0

Change-type: patch
2024-06-04 20:56:25 +00:00
d9b8b8f2b4 v4.0.16 2024-06-04 15:03:56 +00:00
72088ac8eb Merge pull request #210 from balena-io/renovate/balena-open-balena-api-23.0.x
Update balena/open-balena-api Docker tag to v23.0.2
2024-06-04 15:03:02 +00:00
b4af363152 Update balena/open-balena-api Docker tag to v23.0.2
Update balena/open-balena-api from 23.0.1 to 23.0.2

Change-type: patch
2024-06-04 14:55:32 +00:00
dc83f0b095 v4.0.15 2024-06-04 04:00:05 +00:00
6f7c7a54f4 Merge pull request #209 from balena-io/renovate/aws-actions-configure-aws-credentials-digest
Update aws-actions/configure-aws-credentials digest to bd07581
2024-06-04 03:59:13 +00:00
07e01297aa Update aws-actions/configure-aws-credentials digest to bd07581
Update aws-actions/configure-aws-credentials

Change-type: patch
2024-06-04 03:55:11 +00:00
7a36fe1f76 v4.0.14 2024-06-02 19:57:17 +00:00
7a63a52dea Merge pull request #208 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5.10
2024-06-02 19:56:35 +00:00
af2ce80fd9 Update qemux/qemu-docker Docker tag to v5.10
Update qemux/qemu-docker from 5.09 to 5.10

Change-type: patch
2024-06-02 19:52:46 +00:00
3cdeed6b3f v4.0.13 2024-05-30 23:58:24 +00:00
06c6c0b93f Merge pull request #202 from balena-io/renovate/ubuntu-24.x
Update ubuntu Docker tag to v24
2024-05-30 16:57:37 -07:00
496a1d75ec Update ubuntu Docker tag to v24
Update ubuntu from 22.04 to noble

Change-type: patch
2024-05-30 22:51:57 +00:00
ea7f30ed94 v4.0.12 2024-05-30 21:56:54 +00:00
dce23ab8b2 Merge pull request #201 from balena-io/renovate/qemux-qemu-docker-5.x
Update qemux/qemu-docker Docker tag to v5
2024-05-30 14:56:08 -07:00
5b835f3a8e Update qemux/qemu-docker Docker tag to v5
Update qemux/qemu-docker from 4.28 to 5.09

Change-type: patch
2024-05-30 20:52:17 +00:00
af3e7612b3 v4.0.11 2024-05-30 18:00:57 +00:00
d170f74eea Merge pull request #205 from balena-io/renovate/balena-open-balena-registry-2.39.x
Update balena/open-balena-registry Docker tag to v2.39.57
2024-05-30 18:00:06 +00:00
dfe88d90d5 Update balena/open-balena-registry Docker tag to v2.39.57
Update balena/open-balena-registry from 2.39.56 to 2.39.57

Change-type: patch
2024-05-30 17:54:21 +00:00
231d6f0000 v4.0.10 2024-05-30 16:59:46 +00:00
538ed220e5 Merge pull request #206 from balena-io/renovate/balena-open-balena-s3-2.28.x
Update balena/open-balena-s3 Docker tag to v2.28.44
2024-05-30 16:59:04 +00:00
661ff99321 Update balena/open-balena-s3 Docker tag to v2.28.44
Update balena/open-balena-s3 from 2.28.43 to 2.28.44

Change-type: patch
2024-05-30 16:52:25 +00:00
d348c4870b v4.0.9 2024-05-30 16:43:34 +00:00
e6103a3c1c Merge pull request #200 from balena-io/renovate/balena-open-balena-api-23.x
Update balena/open-balena-api Docker tag to v23
2024-05-30 09:42:42 -07:00
79f0609b6b Update balena/open-balena-api Docker tag to v23
Update balena/open-balena-api from 22.2.3 to 23.0.1

Change-type: patch
2024-05-30 15:55:24 +00:00
db0e6315ea v4.0.8 2024-05-29 05:57:16 +00:00
dea3d8a244 Merge pull request #198 from balena-io/renovate/balena-open-balena-vpn-11.30.x
Update balena/open-balena-vpn Docker tag to v11.30.22
2024-05-29 05:56:33 +00:00
1ea77d38ca Update balena/open-balena-vpn Docker tag to v11.30.22
Update balena/open-balena-vpn from 11.30.9 to 11.30.22

Change-type: patch
2024-05-29 05:53:17 +00:00
992dc8fea6 v4.0.7 2024-05-29 04:57:27 +00:00
da5f3a4a2d Merge pull request #199 from balena-io/renovate/qemux-qemu-docker-4.x
Update qemux/qemu-docker Docker tag to v4.28
2024-05-29 04:56:42 +00:00
1c3b8dd38f Update qemux/qemu-docker Docker tag to v4.28
Update qemux/qemu-docker from 4.24 to 4.28

Change-type: patch
2024-05-29 04:52:57 +00:00
76adeff491 v4.0.6 2024-05-29 03:57:56 +00:00
a8d8a9f12f Merge pull request #197 from balena-io/renovate/balena-open-balena-s3-2.28.x
Update balena/open-balena-s3 Docker tag to v2.28.43
2024-05-29 03:57:06 +00:00
9d3b6ccc3f Update balena/open-balena-s3 Docker tag to v2.28.43
Update balena/open-balena-s3 from 2.28.42 to 2.28.43

Change-type: patch
2024-05-29 03:53:50 +00:00
4b13d5d97d v4.0.5 2024-05-29 03:00:21 +00:00
9404a61e54 Merge pull request #195 from balena-io/renovate/balena-open-balena-haproxy-4.3.x
Update balena/open-balena-haproxy Docker tag to v4.3.2
2024-05-29 02:59:36 +00:00
fbd49bb409 Update balena/open-balena-haproxy Docker tag to v4.3.2
Update balena/open-balena-haproxy from 4.3.1 to 4.3.2

Change-type: patch
2024-05-29 02:55:37 +00:00
c1c8667da4 v4.0.4 2024-05-29 02:17:27 +00:00
888865caf5 Merge pull request #196 from balena-io/renovate/balena-open-balena-registry-2.39.x
Update balena/open-balena-registry Docker tag to v2.39.56
2024-05-29 02:16:43 +00:00
40bf98a26c Update balena/open-balena-registry Docker tag to v2.39.56
Update balena/open-balena-registry from 2.39.55 to 2.39.56

Change-type: patch
2024-05-29 02:13:20 +00:00
eb8e9075b1 v4.0.3 2024-05-29 01:18:12 +00:00
f53f142df4 Merge pull request #193 from balena-io/renovate/aws-actions-configure-aws-credentials-digest
Update aws-actions/configure-aws-credentials digest to 43c8912
2024-05-29 01:17:30 +00:00
8e7be03371 Update aws-actions/configure-aws-credentials digest to 43c8912
Update aws-actions/configure-aws-credentials

Change-type: patch
2024-05-29 01:13:22 +00:00
13 changed files with 1616 additions and 193 deletions

View File

@ -50,8 +50,3 @@ jobs:
github.event_name == 'pull_request_target' github.event_name == 'pull_request_target'
)) && github.event.action != 'closed' )) && github.event.action != 'closed'
secrets: inherit secrets: inherit
with:
environment: balena-cloud.com
fleet: balena/open-balena
# https://dash.cloudflare.com/001b3ed2352612aaa068aca1b0022736/balena-devices.com/dns
dns_tld: balena-devices.com

View File

@ -3,85 +3,112 @@ name: openBalena tests
on: on:
workflow_call: workflow_call:
inputs:
environment:
description: "balenaCloud environment"
required: true
type: string
fleet:
description: "balenaCloud fleet"
required: true
type: string
dns_tld:
description: "domain name to use for issuing SSL certificates"
required: true
type: string
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication # https://docs.github.com/en/actions/security-guides/automatic-token-authentication
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions: permissions:
actions: read
checks: read
contents: read contents: read
deployments: read id-token: "write" # AWS GitHub OIDC required: write
id-token: write # AWS GitHub OIDC required: write
issues: read
discussions: read
packages: read packages: read
pages: read
pull-requests: read # https://docs.github.com/en/actions/using-jobs/using-concurrency
repository-projects: read concurrency:
security-events: read group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
statuses: read # cancel jobs in progress for updated PRs, but not merge or tag events
cancel-in-progress: ${{ github.event.action == 'synchronize' }}
env: env:
# Stack ID # Stack ID
# arn:aws:cloudformation:us-east-1:491725000532:stack/balena-tests-s3-certs/814dea60-404d-11ed-b06f-0a7d458f8ba5 # arn:aws:cloudformation:us-east-1:491725000532:stack/balena-tests-s3-certs/814dea60-404d-11ed-b06f-0a7d458f8ba5
AWS_S3_CERTS_BUCKET: balena-tests-certs AWS_S3_CERTS_BUCKET: balena-tests-certs
# (kvm) nested virtualisation not supported on AWS/EC2 instance types|classes other than X.metal # (kvm) nested virtualisation not supported on AWS/EC2 instance types|classes other than X.metal
AWS_EC2_INSTANCE_TYPE: c6a.2xlarge AWS_EC2_INSTANCE_TYPES: "r6i.2xlarge r6a.2xlarge r5.2xlarge r5n.2xlarge r5b.2xlarge r5a.2xlarge m5.2xlarge m5n.2xlarge m5a.2xlarge m6i.2xlarge c6a.2xlarge c6i.2xlarge c5n.2xlarge c5.2xlarge c5a.2xlarge"
AWS_EC2_LAUNCH_TEMPLATE: lt-02e10a4f66261319d AWS_EC2_LAUNCH_TEMPLATE: lt-02e10a4f66261319d
AWS_EC2_LT_VERSION: 2
AWS_IAM_USERNAME: balena-tests-iam-User-1GXO3XP12N6LL AWS_IAM_USERNAME: balena-tests-iam-User-1GXO3XP12N6LL
AWS_LOGS_RETENTION: "30"
AWS_VPC_SECURITY_GROUP_IDS: sg-057937f4d89d9d51c AWS_VPC_SECURITY_GROUP_IDS: sg-057937f4d89d9d51c
AWS_VPC_SUBNET_IDS: 'subnet-02d18a08ea4058574 subnet-0a026eae1df907a09' AWS_VPC_SUBNET_IDS: "subnet-02d18a08ea4058574 subnet-0a026eae1df907a09"
# otherwise it tries to send data to an endpoint provided by a private project # otherwise it tries to send data to an endpoint provided by a private project
# https://github.com/balena-io/analytics-backend # https://github.com/balena-io/analytics-backend
# .. which is not part of openBalena # .. which is not part of openBalena
BALENARC_NO_ANALYTICS: '1' # https://github.com/balena-io/balena-cli/blob/master/lib/events.ts#L62-L70 BALENARC_NO_ANALYTICS: "1" # https://github.com/balena-io/balena-cli/blob/master/lib/events.ts#L62-L70
DEBUG: '0' # https://github.com/balena-io/balena-cli/issues/2447 DEBUG: "0" # https://github.com/balena-io/balena-cli/issues/2447
RETRY: 3 RETRY: "3"
SUBDOMAIN: auto
jobs: jobs:
test: test:
runs-on: ["self-hosted", "X64", "distro:jammy"] # tests require socat v1.7.4 runs-on: ["self-hosted", "X64", "distro:jammy"] # balenaOS (balena-public-pki) tests require socat v1.7.4
timeout-minutes: 60 timeout-minutes: 60
strategy: strategy:
fail-fast: true fail-fast: false
matrix:
target:
- compose-private-pki
- balena-public-pki
include:
# tests Docker (compose) flow using self-signed PKI
- target: compose-private-pki
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=unknown
ami: ami-04b70fa74e45c3917
subdomain: ${{ vars.DNS_SUBDOMAIN || 'auto' }}
dns_tld: ${{ vars.DNS_TLD || 'balena-devices.com' }}
# .. balenaCloud flow with Let's Encrypt (ACME) PKI
- 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-installer-secureboot-*-generic-amd64"]},{"region":"us-east-1"}]
# currentImageName=unknown
ami: ami-03a3995797dee84fa
# https://dash.cloudflare.com/001b3ed2352612aaa068aca1b0022736/balena-devices.com/dns
subdomain: ${{ vars.DNS_SUBDOMAIN || 'auto' }}
dns_tld: ${{ vars.DNS_TLD || 'balena-devices.com' }}
environment: ${{ vars.BALENARC_BALENA_URL || 'balena-cloud.com' }}
fleet: ${{ vars.BALENA_FLEET || 'balena/open-balena' }}
environment:
name: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@b80ff79f1755d06ba70441c368a6fe801f5f3a62 - uses: actions/checkout@b80ff79f1755d06ba70441c368a6fe801f5f3a62
with:
# FIXME: remove once balenaBlocks/balenaVirt is a thing
submodules: true
- uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # 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@61a110527dcc9ccef6c109117050c80a00bec898
with: with:
aws-region: ${{ vars.AWS_REGION || 'us-east-1' }} aws-region: ${{ vars.AWS_REGION || 'us-east-1' }}
role-session-name: github-${{ github.job }}-${{ github.run_id }}-${{ github.run_attempt }} role-session-name: github-${{ github.job }}-${{ github.run_id }}-${{ github.run_attempt }}
# balena-io/environments-bases: aws/balenacloud/ephemeral-tests/balena-tests-iam.yml # balena-io/environments-bases: aws/balenacloud/ephemeral-tests/balena-tests-iam.yml
role-to-assume: ${{ vars.AWS_IAM_ROLE }} role-to-assume: ${{ vars.AWS_IAM_ROLE }}
# https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html#install-plugin-debian
- name: install session-manager-plugin
if: matrix.target == 'compose-private-pki'
run: |
runner_arch="$(echo "${RUNNER_ARCH}" | tr '[:upper:]' '[:lower:]' | sed 's/x64/64bit/g')"
session-manager-plugin || (curl -sSfo session-manager-plugin.deb https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_${runner_arch}/session-manager-plugin.deb \
&& sudo dpkg -i session-manager-plugin.deb \
&& rm -f session-manager-plugin.deb)
# https://github.com/balena-io-examples/setup-balena-action
- name: Setup balena CLI
uses: balena-io-examples/setup-balena-action@main
# https://github.com/pdcastro/ssh-uuid#why # https://github.com/pdcastro/ssh-uuid#why
# https://github.com/pdcastro/ssh-uuid#linux-debian-ubuntu-others # https://github.com/pdcastro/ssh-uuid#linux-debian-ubuntu-others
- name: install additional dependencies - name: install ssh(scp)-uuid
if: matrix.target == 'balena-public-pki'
shell: bash shell: bash
run: | run: |
set -ue set -ue
echo '::notice::install additional dependencies'
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -100,13 +127,65 @@ jobs:
grep -q "${RUNNER_TEMP}/ssh-uuid" "${GITHUB_PATH}" \ grep -q "${RUNNER_TEMP}/ssh-uuid" "${GITHUB_PATH}" \
|| echo "${RUNNER_TEMP}/ssh-uuid" >> "${GITHUB_PATH}" || echo "${RUNNER_TEMP}/ssh-uuid" >> "${GITHUB_PATH}"
- name: (pre)register test device - name: install cloud-init
id: register-test-device if: matrix.target == 'compose-private-pki'
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} shell: bash
run: sudo apt update && sudo apt install -y cloud-init
- name: generate SSH private key
id: generate-key-pair
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x verbose='+x'
if [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]]; then
verbose='-x'
fi
set ${verbose}
key_name="${{ matrix.target }}-${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}-${GITHUB_RUN_ATTEMPT}"
echo "key_name=${key_name}" >> $GITHUB_OUTPUT
set +x
private_key_material="$(aws ec2 create-key-pair \
--key-name "${key_name}" | jq -r .KeyMaterial)"
public_key="$(aws ec2 describe-key-pairs --include-public-key \
--key-name "${key_name}" | jq -re .KeyPairs[].PublicKey)"
# https://stackoverflow.com/a/70384422/1559300
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-log
while read -r line; do
echo "::add-mask::${line}"
done <<< "${private_key_material}"
ssh_private_key="$(cat << EOF
$(echo "${private_key_material}")
EOF
)"
echo "ssh_private_key<<EOF" >> $GITHUB_OUTPUT
set ${verbose}
echo "${ssh_private_key}" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "ssh_public_key=${public_key}" >> "${GITHUB_OUTPUT}"
env:
AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
# https://github.com/webfactory/ssh-agent
- uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0
with:
ssh-private-key: ${{ steps.generate-key-pair.outputs.ssh_private_key }}
- name: (pre)register balenaOS test device
id: register-test-device
if: matrix.target == 'balena-public-pki'
run: |
set -ue
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -115,7 +194,7 @@ jobs:
balena_device_uuid="$(openssl rand -hex 16)" balena_device_uuid="$(openssl rand -hex 16)"
# https://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#52-preregistering-a-device # https://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#52-preregistering-a-device
balena device register '${{ inputs.fleet }}' --uuid "${balena_device_uuid}" with_backoff balena device register '${{ matrix.fleet }}' --uuid "${balena_device_uuid}"
device_id="$(balena device "${balena_device_uuid}" | grep ^ID: | cut -c20-)" device_id="$(balena device "${balena_device_uuid}" | grep ^ID: | cut -c20-)"
@ -130,7 +209,7 @@ jobs:
$([[ '${{ vars.DEVELOPMENT_MODE || 'false' }}' =~ true ]] && echo '--dev') \ $([[ '${{ vars.DEVELOPMENT_MODE || 'false' }}' =~ true ]] && echo '--dev') \
--output config.json --output config.json
balena tag set balena ephemeral-test-device --device "${balena_device_uuid}" with_backoff balena tag set balena ephemeral-test-device --device "${balena_device_uuid}"
github_vars=(GITHUB_ACTOR GITHUB_BASE_REF GITHUB_HEAD_REF GITHUB_JOB \ github_vars=(GITHUB_ACTOR GITHUB_BASE_REF GITHUB_HEAD_REF GITHUB_JOB \
GITHUB_REF GITHUB_REF_NAME GITHUB_REF_TYPE GITHUB_REPOSITORY \ GITHUB_REF GITHUB_REF_NAME GITHUB_REF_TYPE GITHUB_REPOSITORY \
@ -144,13 +223,13 @@ jobs:
echo "balena_device_uuid=${balena_device_uuid}" >> "${GITHUB_OUTPUT}" echo "balena_device_uuid=${balena_device_uuid}" >> "${GITHUB_OUTPUT}"
echo "balena_device_id=${device_id}" >> "${GITHUB_OUTPUT}" echo "balena_device_id=${device_id}" >> "${GITHUB_OUTPUT}"
# https://github.com/balena-io/balena-cli/issues/1543 # https://github.com/balena-io/balena-cli/issues/1543
- name: pin device to draft release - name: pin balenaOS test device to draft release
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -uae set -uae
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -158,7 +237,7 @@ jobs:
pr_id='${{ github.event.pull_request.id }}' pr_id='${{ github.event.pull_request.id }}'
head_sha='${{ github.event.pull_request.head.sha || github.event.head_commit.id }}' head_sha='${{ github.event.pull_request.head.sha || github.event.head_commit.id }}'
release_id="$(with_backoff balena releases '${{ inputs.fleet }}' --json \ release_id="$(with_backoff balena releases '${{ matrix.fleet }}' --json \
| jq -r --arg pr_id "${pr_id}" --arg head_sha "${head_sha}" '.[] | jq -r --arg pr_id "${pr_id}" --arg head_sha "${head_sha}" '.[]
| select(.release_tag[].tag_key=="balena-ci-commit-sha") | select(.release_tag[].tag_key=="balena-ci-commit-sha")
| select(.release_tag[].value==$head_sha) | select(.release_tag[].value==$head_sha)
@ -171,12 +250,12 @@ jobs:
with_backoff balena device ${{ steps.register-test-device.outputs.balena_device_uuid }} with_backoff balena device ${{ steps.register-test-device.outputs.balena_device_uuid }}
- name: configure test device environment - name: configure balenaOS test device environment
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -188,7 +267,7 @@ jobs:
with_backoff balena env add BALENARC_NO_ANALYTICS '1' \ with_backoff balena env add BALENARC_NO_ANALYTICS '1' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add DNS_TLD '${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add DNS_TLD '${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add DB_HOST db \ with_backoff balena env add DB_HOST db \
@ -210,39 +289,39 @@ jobs:
# 10.0.2.100 # 10.0.2.100
# #
with_backoff balena env add API_HOST 'api.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add API_HOST 'api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
# not used but required for config.json to be valid # not used but required for config.json to be valid
with_backoff balena env add DELTA_HOST 'delta.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add DELTA_HOST 'delta.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add REGISTRY2_HOST 'registry2.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add REGISTRY2_HOST 'registry2.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add VPN_HOST 'cloudlink.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add VPN_HOST 'cloudlink.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add HOST 'api.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add HOST 'api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--service api \ --service api \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add TOKEN_AUTH_CERT_ISSUER 'api.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add TOKEN_AUTH_CERT_ISSUER 'api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--service api \ --service api \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add REGISTRY2_TOKEN_AUTH_ISSUER 'api.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add REGISTRY2_TOKEN_AUTH_ISSUER 'api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--service registry \ --service registry \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add REGISTRY2_TOKEN_AUTH_REALM 'https://api.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}/auth/v1/token' \ with_backoff balena env add REGISTRY2_TOKEN_AUTH_REALM 'https://api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}/auth/v1/token' \
--service registry \ --service registry \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add REGISTRY2_S3_REGION_ENDPOINT 's3.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add REGISTRY2_S3_REGION_ENDPOINT 's3.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add WEBRESOURCES_S3_HOST 's3.${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add WEBRESOURCES_S3_HOST 's3.${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
# https://github.com/balena-io/cert-manager/blob/master/entry.sh#L255-L278 # https://github.com/balena-io/cert-manager/blob/master/entry.sh#L255-L278
@ -256,7 +335,7 @@ jobs:
with_backoff balena env add COMMON_REGION '${{ env.AWS_REGION }}' \ with_backoff balena env add COMMON_REGION '${{ env.AWS_REGION }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add SUPERUSER_EMAIL 'admin@${{ env.SUBDOMAIN }}.${{ inputs.dns_tld }}' \ with_backoff balena env add SUPERUSER_EMAIL 'admin@${{ matrix.subdomain }}.${{ matrix.dns_tld }}' \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
with_backoff balena env add ORG_UNIT openBalena \ with_backoff balena env add ORG_UNIT openBalena \
@ -272,12 +351,12 @@ jobs:
--service sut \ --service sut \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
- name: configure test device secrets - name: configure balenaOS test device secrets
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -302,28 +381,34 @@ jobs:
--service cert-manager \ --service cert-manager \
--device '${{ steps.register-test-device.outputs.balena_device_uuid }}' --device '${{ steps.register-test-device.outputs.balena_device_uuid }}'
- name: provision ephemeral test device - name: provision balenaOS ephemeral SUT
id: provision-test-device id: balena-sut
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions
for subnet_id in ${{ env.AWS_VPC_SUBNET_IDS }}; do for subnet_id in ${{ env.AWS_VPC_SUBNET_IDS }}; do
# spot, on-demand # spot, on-demand
for market_type in ${{ vars.MARKET_TYPES || 'spot' }}; do for market_type in ${{ vars.MARKET_TYPES || 'spot' }}; do
# https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html for instance_type in ${AWS_EC2_INSTANCE_TYPES}; do
response="$(aws ec2 run-instances \ # https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html
--launch-template 'LaunchTemplateId=${{ env.AWS_EC2_LAUNCH_TEMPLATE }},Version=${{ env.AWS_EC2_LT_VERSION }}' \ response="$(aws ec2 run-instances \
--instance-type '${{ env.AWS_EC2_INSTANCE_TYPE }}' \ $([[ -n '${{ matrix.ami }}' ]] && echo '--image-id ${{ matrix.ami }}') \
$([[ $market_type =~ spot ]] && echo '--instance-market-options MarketType=spot') \ --launch-template 'LaunchTemplateId=${{ env.AWS_EC2_LAUNCH_TEMPLATE }},Version=${{ matrix.launch_template_version }}' \
--security-group-ids '${{ env.AWS_VPC_SECURITY_GROUP_IDS }}' \ --instance-type "${instance_type}" \
--subnet-id "${subnet_id}" \ $([[ $market_type =~ spot ]] && echo '--instance-market-options MarketType=spot') \
--associate-public-ip-address \ --security-group-ids '${{ env.AWS_VPC_SECURITY_GROUP_IDS }}' \
--user-data file://config.json \ --subnet-id "${subnet_id}" \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=balena-tests},{Key=MarketType,Value=${market_type}},{Key=Owner,Value=${{ env.AWS_IAM_USERNAME }}},{Key=GITHUB_SHA,Value=${GITHUB_SHA}-tests}]" || true)" --associate-public-ip-address \
--user-data file://config.json \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=open-balena-tests},{Key=matrix.target,Value=${{ matrix.target }}},{Key=MarketType,Value=${market_type}},{Key=Owner,Value=${{ env.AWS_IAM_USERNAME }}},{Key=GITHUB_SHA,Value=${GITHUB_SHA}-tests},{Key=GITHUB_RUN_ID,Value=${GITHUB_RUN_ID}-tests},{Key=GITHUB_RUN_NUMBER,Value=${GITHUB_RUN_NUMBER}-tests},{Key=GITHUB_RUN_ATTEMPT,Value=${GITHUB_RUN_ATTEMPT}-tests}]" || true)"
[[ -n $response ]] && break
done
[[ -n $response ]] && break [[ -n $response ]] && break
done done
[[ -n $response ]] && break [[ -n $response ]] && break
@ -334,35 +419,31 @@ jobs:
instance_id="$(echo "${response}" | jq -r '.Instances[].InstanceId')" instance_id="$(echo "${response}" | jq -r '.Instances[].InstanceId')"
aws ec2 wait instance-running --instance-ids "${instance_id}" aws ec2 wait instance-running --instance-ids "${instance_id}"
with_backoff aws ec2 wait instance-status-ok --instance-ids "${instance_id}"
aws ec2 wait instance-status-ok --instance-ids "${instance_id}"
echo "instance_id=${instance_id}" >> "${GITHUB_OUTPUT}" echo "instance_id=${instance_id}" >> "${GITHUB_OUTPUT}"
env: env:
AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ env.AWS_REGION }}
- name: provision SSH key - name: provision balenaCloud SSH key
id: provision-ssh-key id: provision-ssh-key
# wait for cloud-config # wait for cloud-config
# https://github.com/balena-os/cloud-config # https://github.com/balena-os/cloud-config
timeout-minutes: 5 timeout-minutes: 5
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}' with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
if ! [[ -e "${HOME}/.ssh/id_rsa" ]]; then if ! [[ -e "${HOME}/.ssh/id_rsa" ]]; then
ssh-keygen -N '' \ echo '${{ steps.generate-key-pair.outputs.ssh_private_key }}' > "${HOME}/.ssh/id_rsa"
-C "$(balena whoami | grep EMAIL | cut -c11-)" \ echo '${{ steps.generate-key-pair.outputs.ssh_public_key }}' > "${HOME}/.ssh/id_rsa.pub"
-f "${HOME}/.ssh/id_rsa"
fi fi
echo "::notice::check $(balena keys | wc -l) keys" echo "::notice::check $(balena keys | wc -l) keys"
@ -382,10 +463,6 @@ jobs:
balena keys balena keys
fi fi
pgrep ssh-agent || ssh-agent -a "${SSH_AUTH_SOCK}"
ssh-add "${HOME}/.ssh/id_rsa"
while ! [[ "$(ssh-uuid -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ while ! [[ "$(ssh-uuid -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
${{ steps.register-test-device.outputs.balena_device_uuid }}.balena \ ${{ steps.register-test-device.outputs.balena_device_uuid }}.balena \
cat /mnt/boot/config.json | jq -r .uuid)" =~ ${{ steps.register-test-device.outputs.balena_device_uuid }} ]]; do cat /mnt/boot/config.json | jq -r .uuid)" =~ ${{ steps.register-test-device.outputs.balena_device_uuid }} ]]; do
@ -396,16 +473,13 @@ jobs:
echo "key_id=${GITHUB_SHA}" >> "${GITHUB_OUTPUT}" echo "key_id=${GITHUB_SHA}" >> "${GITHUB_OUTPUT}"
env: - name: wait for balenaCloud application
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
- name: wait for application
timeout-minutes: 10 timeout-minutes: 10
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -414,7 +488,7 @@ jobs:
balena whoami && ssh-add -l balena whoami && ssh-add -l
while [[ "$(curl -X POST --silent --retry ${{ env.RETRY }} --fail \ while [[ "$(curl -X POST --silent --retry ${{ env.RETRY }} --fail \
'https://api.${{ inputs.environment }}/supervisor/v1/device' \ 'https://api.${{ matrix.environment }}/supervisor/v1/device' \
--header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \ --header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \
--header 'Content-Type:application/json' \ --header 'Content-Type:application/json' \
--data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \ --data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \
@ -444,20 +518,17 @@ jobs:
sleep "$(( (RANDOM % 30) + 30 ))s" sleep "$(( (RANDOM % 30) + 30 ))s"
done done
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
# (TBC) https://www.balena.io/docs/reference/supervisor/docker-compose/ # (TBC) https://www.balena.io/docs/reference/supervisor/docker-compose/
# due to lack of long form depends_on support in compositions, restart to ensure all # due to lack of long form depends_on support in compositions, restart to ensure all
# components are running with the latest configuration; preferred over restart via # components are running with the latest configuration; preferred over restart via
# Supervisor API restart due to potential HTTP [timeouts](https://github.com/balena-os/balena-supervisor/issues/1157) # Supervisor API restart due to potential HTTP [timeouts](https://github.com/balena-os/balena-supervisor/issues/1157)
- name: restart components - name: restart balenaEngine composition
timeout-minutes: 10 timeout-minutes: 10
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}} if: matrix.target == 'balena-public-pki'
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -483,11 +554,8 @@ jobs:
sleep "$(( (RANDOM % 30) + 30 ))s" sleep "$(( (RANDOM % 30) + 30 ))s"
done done
env: - name: SUT&DUT (balena)
SSH_AUTH_SOCK: /tmp/ssh_agent.sock if: matrix.target == 'balena-public-pki'
- name: SUT&DUT
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed'}}
timeout-minutes: 20 timeout-minutes: 20
# https://giters.com/gfx/example-github-actions-with-tty # https://giters.com/gfx/example-github-actions-with-tty
# https://github.com/actions/runner/issues/241#issuecomment-924327172 # https://github.com/actions/runner/issues/241#issuecomment-924327172
@ -495,7 +563,7 @@ jobs:
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -513,7 +581,7 @@ jobs:
status='' status=''
while [[ "$status" =~ Running ]]; do while [[ "$status" =~ Running ]]; do
status="$(curl --silent --retry ${{ env.RETRY }} --fail \ status="$(curl --silent --retry ${{ env.RETRY }} --fail \
'https://api.${{ inputs.environment }}/supervisor/v2/applications/state' \ 'https://api.${{ matrix.environment }}/supervisor/v2/applications/state' \
--header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \ --header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \
--header 'Content-Type:application/json' \ --header 'Content-Type:application/json' \
--data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \ --data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \
@ -528,7 +596,7 @@ jobs:
while ! [[ "$status" =~ exited ]]; do while ! [[ "$status" =~ exited ]]; do
echo "::warning::Still working..." echo "::warning::Still working..."
status="$(curl --silent --retry ${{ env.RETRY }} --fail \ status="$(curl --silent --retry ${{ env.RETRY }} --fail \
'https://api.${{ inputs.environment }}/supervisor/v2/applications/state' \ 'https://api.${{ matrix.environment }}/supervisor/v2/applications/state' \
--header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \ --header 'authorization: Bearer ${{ secrets.BALENA_API_KEY }}' \
--header 'Content-Type:application/json' \ --header 'Content-Type:application/json' \
--data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \ --data '{"uuid": "${{ steps.register-test-device.outputs.balena_device_uuid }}", "method": "GET"}' \
@ -547,35 +615,331 @@ jobs:
[[ $expected_exit_code -eq $actual_exit_code ]] || false [[ $expected_exit_code -eq $actual_exit_code ]] || false
env: env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
ATTEMPTS: 2 ATTEMPTS: 2
- name: remove SSH key - name: provision Ubuntu ephemeral SUT
if: always() id: ubuntu-sut
timeout-minutes: 20
if: matrix.target == 'compose-private-pki'
run: |
set -ue
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions
function cleanup() {
rm -f user-data.yml
}
trap 'cleanup' EXIT
aws sts get-caller-identity
# https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
# https://cloudinit.readthedocs.io/en/latest/reference/modules.html#update-etc-hosts
cat <<EOF >user-data.yml
#cloud-config
output : { all : '| tee -a /var/log/cloud-init-output.log' }
# https://cloudinit.readthedocs.io/en/latest/reference/modules.html#update-etc-hosts
manage_etc_hosts: localhost
packages:
- git
- jq
- wget
write_files:
- path: /root/.env
permissions: "0766"
content: |
DNS_TLD=${{ matrix.subdomain }}.${{ matrix.dns_tld }}
PRODUCTION_MODE=false
VERBOSE=${{ vars.VERBOSE }}
- path: /root/functions
permissions: "0777"
content: |
# 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
}
# docs/getting-started.md
- path: /root/getting-started.sh
permissions: "0777"
content: |
#!/usr/bin/env bash
set -ax
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source /root/functions
apt-get update
which openssl || apt-get install -y make openssl
which git || apt-get install -y make git
which jq || apt-get install -y make jq
which make || apt-get install make
which yq || with_backoff wget -q https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq
chmod +x /usr/bin/yq
yq --version
which docker || curl -fsSL https://get.docker.com | sh -
usermod -aG docker ubuntu
systemctl enable docker && systemctl start docker
chown ubuntu:docker /var/run/docker.sock
id -u balena || useradd -s /bin/bash -m -G docker,sudo balena
echo 'balena ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/balena
while ! docker ps; do sleep \$(((RANDOM%3)+1)); done
with_backoff docker login \
--username='${{ secrets.DOCKERHUB_USER }}' \
--password='${{ secrets.DOCKERHUB_TOKEN }}'
with_backoff docker login ghcr.io \
--username=token \
--password=${{ secrets.GITHUB_TOKEN }}
if [ ! -f /sys/fs/cgroup/cgroup.controllers ]; then
echo "cgroups v2 is disabled"
else
echo "cgroups v2 is enabled"
source /etc/default/grub
sed -i '/GRUB_CMDLINE_LINUX/d' /etc/default/grub
echo GRUB_CMDLINE_LINUX=\$(printf '\"%s systemd.unified_cgroup_hierarchy=0\"\n' "\${GRUB_CMDLINE_LINUX}") > /etc/default/grub
update-grub
reboot
fi
tmphosts="\$(mktemp)"
cat </etc/hosts | sed "s/\$(hostname)\$/\$(hostname) api.${{ matrix.subdomain }}.${{ matrix.dns_tld }}/g" >"\${tmphosts}" \
&& cat <"\${tmphosts}" >/etc/hosts \
&& rm -f "\${tmphosts}" \
&& getent hosts api.${{ matrix.subdomain }}.${{ matrix.dns_tld }} | grep 127.0.1.1
# cloud-init runs as root
# (e.g.) https://cloudinit.readthedocs.io/en/latest/reference/merging.html#example-cloud-config
runcmd:
- '/root/getting-started.sh' # FIXME: this may run before the script is written
EOF
cloud-init schema -c user-data.yml
for subnet_id in ${{ env.AWS_VPC_SUBNET_IDS }}; do
# spot, on-demand
for market_type in ${{ vars.MARKET_TYPES || 'spot' }}; do
for instance_type in ${AWS_EC2_INSTANCE_TYPES}; do
# https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html
response="$(aws ec2 run-instances \
$([[ -n '${{ matrix.ami }}' ]] && echo '--image-id ${{ matrix.ami }}') \
--launch-template 'LaunchTemplateId=${{ env.AWS_EC2_LAUNCH_TEMPLATE }},Version=${{ matrix.launch_template_version }}' \
--instance-type "${instance_type}" \
$([[ $market_type =~ spot ]] && echo '--instance-market-options MarketType=spot') \
--security-group-ids '${{ env.AWS_VPC_SECURITY_GROUP_IDS }}' \
--subnet-id "${subnet_id}" \
--key-name '${{ steps.generate-key-pair.outputs.key_name }}' \
--associate-public-ip-address \
--user-data file://user-data.yml \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=open-balena-tests},{Key=matrix.target,Value=${{ matrix.target }}},{Key=MarketType,Value=${market_type}},{Key=Owner,Value=${{ env.AWS_IAM_USERNAME }}},{Key=GITHUB_SHA,Value=${GITHUB_SHA}-tests},{Key=GITHUB_RUN_ID,Value=${GITHUB_RUN_ID}-tests},{Key=GITHUB_RUN_NUMBER,Value=${GITHUB_RUN_NUMBER}-tests},{Key=GITHUB_RUN_ATTEMPT,Value=${GITHUB_RUN_ATTEMPT}-tests}]" || true)"
[[ -n $response ]] && break
done
[[ -n $response ]] && break
done
[[ -n $response ]] && break
done
[[ -z $response ]] && exit 1
instance_id="$(echo "${response}" | jq -r '.Instances[].InstanceId')"
echo "instance_id=${instance_id}" >> $GITHUB_OUTPUT
aws ec2 wait instance-running --instance-ids "${instance_id}"
with_backoff aws ec2 wait instance-status-ok --instance-ids "${instance_id}"
env:
ATTEMPTS: 2
AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
COMMIT: ${{ github.event.pull_request.head.sha || github.event.head_commit.id || github.event.pull_request.head.ref }}
- name: SUT&DUT (Ubuntu/compose)
if: matrix.target == 'compose-private-pki'
timeout-minutes: 30
run: |
set -ue
[[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions
function log_output() {
rm -f "{HOME}/.ssh/config"
aws ssm list-command-invocations \
--details \
--output text \
--command-id "${cid}" || true
aws logs describe-log-streams \
--log-group-name open-balena-tests \
--log-stream-name-prefix "${cid}" || true
aws logs put-retention-policy \
--log-group-name open-balena-tests \
--retention-in-days "${{ env.AWS_LOGS_RETENTION }}" || true
}
trap 'log_output' EXIT
# https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html
cat << EOF > "${HOME}/.ssh/config"
host i-*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
EOF
# docs/getting-started.md
cmds="set -ax \
&& cloud-init status --wait --long && cat </var/log/cloud-init-output.log \
&& sudo -u balena git clone https://token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git /home/balena/open-balena \
&& sudo -u balena git config --global --add safe.directory /home/balena/open-balena \
&& cd /home/balena/open-balena \
&& sudo -u balena git checkout ${COMMIT} \
&& . /root/.env \
&& sudo -u balena touch .env \
&& docker compose version \
&& docker compose config --no-interpolate >${COMMIT} \
&& cat <${COMMIT} >docker-compose.yml \
&& sudo -u balena --preserve-env=DNS_TLD\,VERBOSE\,PRODUCTION_MODE make up \
&& sudo -u balena make self-signed \
&& sudo -u balena make verify \
&& sudo -u balena make restart \
&& docker compose wait dut"
# AWS-RunShellScript runs as root
result="$(aws ssm send-command \
--instance-ids ${{ steps.ubuntu-sut.outputs.instance_id }} \
--document-name AWS-RunShellScript \
--comment "open-balena-tests@${{ matrix.target }}" \
--parameters commands=["${cmds}"] \
--cloud-watch-output-config '{"CloudWatchLogGroupName":"open-balena-tests","CloudWatchOutputEnabled":true}')"
echo "${result}" | jq -re
cid="$(echo "${result}" | jq -r .Command.CommandId)"
iid="$(echo "${result}" | jq -r .Command.InstanceIds[0])"
([[ -n "$cid" ]] && [[ -n "$iid" ]]) || false
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines
CYAN='\033[0;36m'; NC='\033[0m'; echo -e "::group::${CYAN}open-balena-tests${NC}"
until [[ "$(aws ssm list-command-invocations --command-id "${cid}" \
| jq -re '.CommandInvocations[].Status')" =~ InProgress ]]; do
echo '::info::starting...'
sleep $(((RANDOM%5) + 5))s
done
echo '::info::command started'
while [[ $(aws logs describe-log-streams \
--log-group-name open-balena-tests \
--log-stream-name-prefix "${cid}" | jq -r '.logStreams|length') -le 0 ]]; do
echo '::info::waiting for logs...'
done
echo '::info::logs started'
until [[ "$(docker compose ls --format json | jq -re '.[] | select(.Status | startswith("running")).Name')" =~ open-balena ]]; do
echo '::info::waiting for composition...'
with_backoff docker compose ls
sleep $(((RANDOM%5) + 5))s
done
echo '::info::composition started'
touch .env
for service in sut dut; do
until [[ "$(docker compose ps --services "${service}" --status running)" =~ "${service}" ]]; do
echo "::info::waiting for ${service}..."
with_backoff docker compose ps
sleep $(((RANDOM%5) + 5))s
done
echo "::info::${service} started"
done
echo '::info::settling down...'
sleep $(((RANDOM%30) + 15))s
while [[ "$(aws ssm list-command-invocations --command-id "${cid}" \
| jq -re '.CommandInvocations[].Status')" =~ InProgress ]]; do
with_backoff docker compose ls && with_backoff docker compose ps
with_backoff docker compose logs --follow --timestamps sut
echo '::info::still running...'
sleep $(((RANDOM%1) + 1))s
done
aws ssm wait command-executed --command-id "${cid}" --instance-id "${iid}"
echo '::info::command finished'
echo "::endgroup::"
if ! [[ "$(aws ssm list-command-invocations --command-id "${cid}" \
| jq -r '.CommandInvocations[].Status')" =~ Success ]]; then
false
fi
env:
ATTEMPTS: 2
AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
DOCKER_HOST: ssh://ubuntu@${{ steps.ubuntu-sut.outputs.instance_id }}:22
COMMIT: ${{ github.event.pull_request.head.sha || github.event.head_commit.id || github.event.pull_request.head.ref }}
- name: remove balenaCloud SSH key
if: always() && matrix.target == 'balena-public-pki'
continue-on-error: true continue-on-error: true
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}' with_backoff balena login --token '${{ secrets.BALENA_API_KEY }}'
with_backoff balena keys | grep ${{ steps.provision-ssh-key.outputs.key_id }} \ with_backoff balena keys | grep ${{ steps.provision-ssh-key.outputs.key_id }} \
| awk '{print $1}' | xargs balena key rm --yes | awk '{print $1}' | xargs --no-run-if-empty balena key rm --yes
pgrep ssh-agent && (pgrep ssh-agent | xargs kill) - name: delete balenaOS test device
if: always() && matrix.target == 'balena-public-pki'
rm -f /tmp/ssh_agent.sock
- name: destroy balena test device
if: always()
continue-on-error: true continue-on-error: true
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
@ -584,32 +948,35 @@ jobs:
with_backoff balena device rm ${{ steps.register-test-device.outputs.balena_device_uuid }} --yes with_backoff balena device rm ${{ steps.register-test-device.outputs.balena_device_uuid }} --yes
env: env:
AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ env.AWS_REGION }}
# always destroy test EC2 instances even if the workflow is cancelled # always destroy test EC2 instances even if the workflow is cancelled
- name: destroy AWS test device - name: destroy AWS test device(s)
if: always() if: always()
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
source src/balena-tests/functions source src/balena-tests/functions
if [[ -n '${{ steps.provision-test-device.outputs.instance_id }}' ]]; then if [[ -n '${{ steps.balena-sut.outputs.instance_id }}' ]]; then
with_backoff aws ec2 terminate-instances \ with_backoff aws ec2 terminate-instances \
--instance-ids ${{ steps.provision-test-device.outputs.instance_id }} --instance-ids ${{ steps.balena-sut.outputs.instance_id }}
fi
if [[ -n '${{ steps.ubuntu-sut.outputs.instance_id }}' ]]; then
with_backoff aws ec2 terminate-instances \
--instance-ids ${{ steps.ubuntu-sut.outputs.instance_id }}
fi fi
with_backoff aws ec2 describe-instances --filters Name=tag:GITHUB_SHA,Values=${GITHUB_SHA}-tests \ with_backoff aws ec2 describe-instances --filters Name=tag:GITHUB_SHA,Values=${GITHUB_SHA}-tests \
| jq -r .Reservations[].Instances[].InstanceId \ | jq -r .Reservations[].Instances[].InstanceId \
| xargs aws ec2 terminate-instances --instance-ids | xargs --no-run-if-empty aws ec2 terminate-instances --instance-ids
stale_instances=$(mktemp) stale_instances=$(mktemp)
aws ec2 describe-instances --filters \ aws ec2 describe-instances --filters \
Name=tag:Name,Values=balena-tests \ Name=tag:Name,Values=open-balena-tests \
Name=instance-state-name,Values=running \ Name=instance-state-name,Values=running \
| jq -re '.Reservations[].Instances[].InstanceId + " " + .Reservations[].Instances[].LaunchTime' > ${stale_instances} || true | jq -re '.Reservations[].Instances[].InstanceId + " " + .Reservations[].Instances[].LaunchTime' > ${stale_instances} || true
@ -628,26 +995,24 @@ jobs:
fi fi
env: env:
AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ env.AWS_REGION }}
# remove orphaned ACME DNS-01 validation records # remove orphaned ACME DNS-01 validation records
# https://letsencrypt.org/docs/challenge-types/#dns-01-challenge # https://letsencrypt.org/docs/challenge-types/#dns-01-challenge
# FIXME: clean up older _acme-challenge.auto TXT records # FIXME: clean up older _acme-challenge.auto TXT records
- name: cleanup-dns-records - name: cleanup Cloudflare DNS
if: always() if: always() && matrix.target == 'balena-public-pki'
continue-on-error: true continue-on-error: true
run: | run: |
set -ue set -ue
[[ '${{ vars.VERBOSE || 'false' }}' =~ on|On|Yes|yes|true|True ]] && set -x [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x
if [[ -n '${{ steps.register-test-device.outputs.balena_device_uuid }}' ]]; then if [[ -n '${{ steps.register-test-device.outputs.balena_device_uuid }}' ]]; then
match="${{ steps.register-test-device.outputs.balena_device_uuid }}.${{ env.SUBDOMAIN }}" match="${{ steps.register-test-device.outputs.balena_device_uuid }}.${{ matrix.subdomain }}"
zone_id="$(curl --silent --retry ${{ env.RETRY }} \ zone_id="$(curl --silent --retry ${{ env.RETRY }} \
"https://api.cloudflare.com/client/v4/zones?name=${{ inputs.dns_tld }}" \ "https://api.cloudflare.com/client/v4/zones?name=${{ matrix.dns_tld }}" \
-H 'Authorization: Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}' | jq -r '.result[].id')" -H 'Authorization: Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}' | jq -r '.result[].id')"
for record in "$(curl --silent --retry ${{ env.RETRY }} \ for record in "$(curl --silent --retry ${{ env.RETRY }} \
@ -673,4 +1038,4 @@ jobs:
fi fi
env: env:
DRY_RUN: true DRY_RUN: false

View File

@ -1,3 +1,745 @@
- commits:
- subject: Pin unfor19/install-aws-cli-action action to e8b481e
hash: fe3bc20a300412d0918d985fa249844fe94953d4
body: |
Update unfor19/install-aws-cli-action
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.1.1
title: ""
date: 2024-06-24T20:56:51.820Z
- commits:
- subject: test compose workflow
hash: 9a172b03f787a5194dc6ad79eb497196e8cac8f8
body: >
* docker-compose test workflow to broadly approximate the getting
started guide,
since testing on balenaCloud/balenaOS alone doesn't give us a high level
of
confidence the project boots/works on compose
footer:
change-type: minor
author: Anton Belodedenko
nested: []
version: 4.1.0
title: ""
date: 2024-06-24T20:01:42.546Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.7
hash: 173a99d363396e25be84bbebd51fa8b3fcc01129
body: |
Update balena/open-balena-api from 25.1.6 to 25.1.7
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.57
title: ""
date: 2024-06-24T15:01:24.610Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.6
hash: aefe256e81d2e17e5515eac9163a738f2980e5b7
body: |
Update balena/open-balena-api from 25.1.5 to 25.1.6
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.56
title: ""
date: 2024-06-24T14:01:41.031Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.5
hash: c4d94801f692b33e3d688605bd4e3240ce493f07
body: |
Update balena/open-balena-api from 25.1.3 to 25.1.5
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.55
title: ""
date: 2024-06-24T05:59:14.616Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.10
hash: 0e28278a37b8672364befaf34d25ae92a8a891b4
body: |
Update balena-io/balena-cli from 18.2.9 to 18.2.10
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.54
title: ""
date: 2024-06-21T21:04:47.853Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.9
hash: be879e9fd9b12a8496999a640b39e5f618ec1834
body: |
Update balena-io/balena-cli from 18.2.8 to 18.2.9
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.53
title: ""
date: 2024-06-21T20:02:12.319Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.8
hash: a49e96d84f4ea8795782b5c132ee569cf6d5566e
body: |
Update balena-io/balena-cli from 18.2.7 to 18.2.8
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.52
title: ""
date: 2024-06-21T19:00:11.650Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.7
hash: cd4c361b8ca1e44730670c30fe0689cac805670f
body: |
Update balena-io/balena-cli from 18.2.6 to 18.2.7
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.51
title: ""
date: 2024-06-21T18:02:26.125Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.6
hash: da4647515e74e7d2a8073d8ed11e7398326c8fe2
body: |
Update balena-io/balena-cli from 18.2.5 to 18.2.6
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.50
title: ""
date: 2024-06-21T15:59:09.758Z
- commits:
- subject: Update dependency balena-io/balena-cli to v18.2.5
hash: 6c8786f4f9f9ae814bdc889eb571ae3465598de8
body: |
Update balena-io/balena-cli from 18.2.2 to 18.2.5
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.49
title: ""
date: 2024-06-21T13:04:36.164Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.3
hash: e742df4e896bb47d841bdb077ab1991d0aa172f7
body: |
Update balena/open-balena-api from 25.1.2 to 25.1.3
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.48
title: ""
date: 2024-06-19T17:57:48.261Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.2
hash: 252398e13003f3115aaada4526494d09be8f271d
body: |
Update balena/open-balena-api from 25.1.1 to 25.1.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.47
title: ""
date: 2024-06-19T13:57:45.166Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.1
hash: 25e2346f2d557d8abe313ac0a27b1893c2681a4d
body: |
Update balena/open-balena-api from 25.1.0 to 25.1.1
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.46
title: ""
date: 2024-06-18T08:58:32.128Z
- commits:
- subject: Update aws-actions/configure-aws-credentials digest to 61a1105
hash: 6dd753b744b8e4e73ce7a9bfe964aa1b017f4805
body: |
Update aws-actions/configure-aws-credentials
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.45
title: ""
date: 2024-06-18T03:56:36.468Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25.1.0
hash: b87f2662f9339f60ef44efd1850e514cb4168e14
body: |
Update balena/open-balena-api from 25.0.2 to 25.1.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.44
title: ""
date: 2024-06-17T17:01:17.472Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v25
hash: 15e93fecc72c13d7749e862b3137890b0443bb52
body: |
Update balena/open-balena-api from 24.3.1 to 25.0.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.43
title: ""
date: 2024-06-17T16:26:19.681Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.16
hash: 217473e54acc86d8ea9f42b23ae91f507f340508
body: |
Update qemux/qemu-docker from 5.15 to 5.16
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.42
title: ""
date: 2024-06-13T22:57:11.136Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.15
hash: ca910f88d126f00cf0e4d0c5193485e27b98457d
body: |
Update qemux/qemu-docker from 5.14 to 5.15
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.41
title: ""
date: 2024-06-12T20:57:38.623Z
- commits:
- subject: Update actions/checkout digest to 692973e
hash: 6474a7a8b586d9aa354f01094d8bd01e495b7400
body: |
Update actions/checkout
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.40
title: ""
date: 2024-06-12T18:58:42.570Z
- commits:
- subject: Update actions/checkout digest to 6ccd57f
hash: 8090670ae69dcf6d394b2a83c58bc8942a5c7c4a
body: |
Update actions/checkout
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.39
title: ""
date: 2024-06-12T17:59:47.271Z
- commits:
- subject: Update actions/checkout digest to b17fe1e
hash: 12d9370d6f01fc5696aad22a8450ed5ddfe21237
body: |
Update actions/checkout
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.38
title: ""
date: 2024-06-12T16:04:51.156Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.14
hash: 9345f75b3b05ece962c0a4f7cdf58dfee289e1c4
body: |
Update qemux/qemu-docker from 5.13 to 5.14
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.37
title: ""
date: 2024-06-12T03:00:50.502Z
- commits:
- subject: Update balena/open-balena-s3 Docker tag to v2.28.45
hash: 1d34d468b4a367bb6ce2ba49450c30f3f6b30a65
body: |
Update balena/open-balena-s3 from 2.28.44 to 2.28.45
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.36
title: ""
date: 2024-06-12T00:01:21.103Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.3.1
hash: c448be555be1297559af3a140ce7e7ccb662393a
body: |
Update balena/open-balena-api from 24.3.0 to 24.3.1
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.35
title: ""
date: 2024-06-11T23:07:07.523Z
- commits:
- subject: Update balena/open-balena-registry Docker tag to v2.39.58
hash: f6bdc3ea655b2279da73bfe7a463e6054017362a
body: |
Update balena/open-balena-registry from 2.39.57 to 2.39.58
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.34
title: ""
date: 2024-06-11T22:03:39.192Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.3.0
hash: 6c49a9ef98cc8e4be050424954e8e5e1069601b4
body: |
Update balena/open-balena-api from 24.2.2 to 24.3.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.33
title: ""
date: 2024-06-11T15:56:28.106Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.2.2
hash: 16d1bbc25bf9068a8f9ac846c9b60cfde362589a
body: |
Update balena/open-balena-api from 24.2.1 to 24.2.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.32
title: ""
date: 2024-06-11T13:57:42.189Z
- commits:
- subject: Update aws-actions/configure-aws-credentials digest to c7680c3
hash: e89f6c069ba702459eaf50f767710cdad5d05df2
body: |
Update aws-actions/configure-aws-credentials
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.31
title: ""
date: 2024-06-11T04:58:23.292Z
- commits:
- subject: Update aws-actions/configure-aws-credentials digest to cf3f053
hash: 3f69ce0ca055d042ed966b048291d1241f033749
body: |
Update aws-actions/configure-aws-credentials
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.30
title: ""
date: 2024-06-11T03:57:10.363Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.13
hash: c7b07b9f02d6162562f144b59248334c8ed52623
body: |
Update qemux/qemu-docker from 5.12 to 5.13
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.29
title: ""
date: 2024-06-11T00:03:23.126Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.2.1
hash: 7f71b83f62a05edc9b00db8680ca91a76e1ef51d
body: |
Update balena/open-balena-api from 24.2.0 to 24.2.1
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.28
title: ""
date: 2024-06-10T22:57:40.430Z
- commits:
- subject: ignore .env if it doesn't exist
hash: fb3b2211c13f7586437360c7773cf8983d21f23d
body: ""
footer:
change-type: patch
author: Anton Belodedenko
nested: []
version: 4.0.27
title: ""
date: 2024-06-10T15:28:41.175Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.2.0
hash: b37c476f58ef07c8871fef385b9522d0e1a381b9
body: |
Update balena/open-balena-api from 24.1.3 to 24.2.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.26
title: ""
date: 2024-06-10T13:58:40.486Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.1.3
hash: cf5e4d226b2b13cf74a9b94b4c6ebd41bca8f933
body: |
Update balena/open-balena-api from 24.1.2 to 24.1.3
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.25
title: ""
date: 2024-06-10T02:20:16.146Z
- commits:
- subject: backoff retry device registrations and tagging
hash: 4e1e10501d443a5d7b014cfd948073a1efc34acf
body: ""
footer:
change-type: patch
author: Anton Belodedenko
nested: []
version: 4.0.24
title: ""
date: 2024-06-09T22:12:15.802Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.12
hash: 7625d40d80b593d441d9500c12630c4abeb5acf1
body: |
Update qemux/qemu-docker from 5.11 to 5.12
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.23
title: ""
date: 2024-06-09T15:57:29.274Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24.1.2
hash: e741155b4be79d3cd18754de165f7f00f2dc6f80
body: |
Update balena/open-balena-api from 24.1.1 to 24.1.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.22
title: ""
date: 2024-06-07T11:08:18.462Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v24
hash: d20598220739749705d198a58c83e62ce51e34dd
body: |
Update balena/open-balena-api from 23.3.0 to 24.1.1
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.21
title: ""
date: 2024-06-06T19:33:16.038Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v23.3.0
hash: 8af31148c18212739bf3024bb7164e3b4f260308
body: |
Update balena/open-balena-api from 23.2.0 to 23.3.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.20
title: ""
date: 2024-06-06T09:58:27.460Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v23.2.0
hash: 54d3cd3c1ca590d4c53b54b2fbcd9b4ad959ad4c
body: |
Update balena/open-balena-api from 23.1.0 to 23.2.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.19
title: ""
date: 2024-06-05T16:00:22.731Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.11
hash: 4f8413e564cd984a7f17c9c249d7372f796bb117
body: |
Update qemux/qemu-docker from 5.10 to 5.11
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.18
title: ""
date: 2024-06-05T10:57:38.282Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v23.1.0
hash: 76cb7ef4eac98da7e94e974c4b8f96cc14524f02
body: |
Update balena/open-balena-api from 23.0.2 to 23.1.0
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.17
title: ""
date: 2024-06-04T21:00:51.177Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v23.0.2
hash: b4af363152633e55e62271d42001cc2cc02a1232
body: |
Update balena/open-balena-api from 23.0.1 to 23.0.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.16
title: ""
date: 2024-06-04T15:03:51.966Z
- commits:
- subject: Update aws-actions/configure-aws-credentials digest to bd07581
hash: 07e01297aae1d548ae51bfb2ae8acc0f66a1cef2
body: |
Update aws-actions/configure-aws-credentials
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.15
title: ""
date: 2024-06-04T04:00:00.889Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5.10
hash: af2ce80fd99cefd6cec3937dfd40331396042210
body: |
Update qemux/qemu-docker from 5.09 to 5.10
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.14
title: ""
date: 2024-06-02T19:57:14.160Z
- commits:
- subject: Update ubuntu Docker tag to v24
hash: 496a1d75ec7f5a3b8f499eeb49c595f25f63ce49
body: |
Update ubuntu from 22.04 to noble
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.13
title: ""
date: 2024-05-30T23:58:20.498Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v5
hash: 5b835f3a8edbdd5575faa82c8d79d2b5d72fe27c
body: |
Update qemux/qemu-docker from 4.28 to 5.09
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.12
title: ""
date: 2024-05-30T21:56:51.082Z
- commits:
- subject: Update balena/open-balena-registry Docker tag to v2.39.57
hash: dfe88d90d5f718dc3dd20988f611de7c1dad9200
body: |
Update balena/open-balena-registry from 2.39.56 to 2.39.57
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.11
title: ""
date: 2024-05-30T18:00:52.558Z
- commits:
- subject: Update balena/open-balena-s3 Docker tag to v2.28.44
hash: 661ff99321f05f007dd5bdaa48ef60e66686925c
body: |
Update balena/open-balena-s3 from 2.28.43 to 2.28.44
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.10
title: ""
date: 2024-05-30T16:59:41.752Z
- commits:
- subject: Update balena/open-balena-api Docker tag to v23
hash: 79f0609b6b73d8a7122ff269ce97f782c09b6c59
body: |
Update balena/open-balena-api from 22.2.3 to 23.0.1
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.9
title: ""
date: 2024-05-30T16:43:29.956Z
- commits:
- subject: Update balena/open-balena-vpn Docker tag to v11.30.22
hash: 1ea77d38cac6d4de8cee20888c68d0657dc1d9af
body: |
Update balena/open-balena-vpn from 11.30.9 to 11.30.22
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.8
title: ""
date: 2024-05-29T05:57:12.761Z
- commits:
- subject: Update qemux/qemu-docker Docker tag to v4.28
hash: 1c3b8dd38fadbf111ebe850d77bdca4f8cd0bb2d
body: |
Update qemux/qemu-docker from 4.24 to 4.28
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.7
title: ""
date: 2024-05-29T04:57:24.252Z
- commits:
- subject: Update balena/open-balena-s3 Docker tag to v2.28.43
hash: 9d3b6ccc3f8fe7adb6034dbc6d0e9aaecddb7653
body: |
Update balena/open-balena-s3 from 2.28.42 to 2.28.43
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.6
title: ""
date: 2024-05-29T03:57:53.284Z
- commits:
- subject: Update balena/open-balena-haproxy Docker tag to v4.3.2
hash: fbd49bb4092c2fe93d08eb702c81f195e47deb11
body: |
Update balena/open-balena-haproxy from 4.3.1 to 4.3.2
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.5
title: ""
date: 2024-05-29T03:00:18.310Z
- commits:
- subject: Update balena/open-balena-registry Docker tag to v2.39.56
hash: 40bf98a26c6c41e7156d413079bc9e297762b515
body: |
Update balena/open-balena-registry from 2.39.55 to 2.39.56
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.4
title: ""
date: 2024-05-29T02:17:23.351Z
- commits:
- subject: Update aws-actions/configure-aws-credentials digest to 43c8912
hash: 8e7be03371b77378fb0c06e2cf81da6d939cfb88
body: |
Update aws-actions/configure-aws-credentials
footer:
Change-type: patch
change-type: patch
author: Self-hosted Renovate Bot
nested: []
version: 4.0.3
title: ""
date: 2024-05-29T01:18:08.903Z
- commits: - commits:
- subject: Update actions/checkout digest to b80ff79 - subject: Update actions/checkout digest to b80ff79
hash: b6e8eaefe9b4c995889bf91a60ef3119951c82ac hash: b6e8eaefe9b4c995889bf91a60ef3119951c82ac

View File

@ -4,6 +4,291 @@ All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
# v4.1.1
## (2024-06-24)
* Pin unfor19/install-aws-cli-action action to e8b481e [Self-hosted Renovate Bot]
# v4.1.0
## (2024-06-24)
* test compose workflow [Anton Belodedenko]
# v4.0.57
## (2024-06-24)
* Update balena/open-balena-api Docker tag to v25.1.7 [Self-hosted Renovate Bot]
# v4.0.56
## (2024-06-24)
* Update balena/open-balena-api Docker tag to v25.1.6 [Self-hosted Renovate Bot]
# v4.0.55
## (2024-06-24)
* Update balena/open-balena-api Docker tag to v25.1.5 [Self-hosted Renovate Bot]
# v4.0.54
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.10 [Self-hosted Renovate Bot]
# v4.0.53
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.9 [Self-hosted Renovate Bot]
# v4.0.52
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.8 [Self-hosted Renovate Bot]
# v4.0.51
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.7 [Self-hosted Renovate Bot]
# v4.0.50
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.6 [Self-hosted Renovate Bot]
# v4.0.49
## (2024-06-21)
* Update dependency balena-io/balena-cli to v18.2.5 [Self-hosted Renovate Bot]
# v4.0.48
## (2024-06-19)
* Update balena/open-balena-api Docker tag to v25.1.3 [Self-hosted Renovate Bot]
# v4.0.47
## (2024-06-19)
* Update balena/open-balena-api Docker tag to v25.1.2 [Self-hosted Renovate Bot]
# v4.0.46
## (2024-06-18)
* Update balena/open-balena-api Docker tag to v25.1.1 [Self-hosted Renovate Bot]
# v4.0.45
## (2024-06-18)
* Update aws-actions/configure-aws-credentials digest to 61a1105 [Self-hosted Renovate Bot]
# v4.0.44
## (2024-06-17)
* Update balena/open-balena-api Docker tag to v25.1.0 [Self-hosted Renovate Bot]
# v4.0.43
## (2024-06-17)
* Update balena/open-balena-api Docker tag to v25 [Self-hosted Renovate Bot]
# v4.0.42
## (2024-06-13)
* Update qemux/qemu-docker Docker tag to v5.16 [Self-hosted Renovate Bot]
# v4.0.41
## (2024-06-12)
* Update qemux/qemu-docker Docker tag to v5.15 [Self-hosted Renovate Bot]
# v4.0.40
## (2024-06-12)
* Update actions/checkout digest to 692973e [Self-hosted Renovate Bot]
# v4.0.39
## (2024-06-12)
* Update actions/checkout digest to 6ccd57f [Self-hosted Renovate Bot]
# v4.0.38
## (2024-06-12)
* Update actions/checkout digest to b17fe1e [Self-hosted Renovate Bot]
# v4.0.37
## (2024-06-12)
* Update qemux/qemu-docker Docker tag to v5.14 [Self-hosted Renovate Bot]
# v4.0.36
## (2024-06-12)
* Update balena/open-balena-s3 Docker tag to v2.28.45 [Self-hosted Renovate Bot]
# v4.0.35
## (2024-06-11)
* Update balena/open-balena-api Docker tag to v24.3.1 [Self-hosted Renovate Bot]
# v4.0.34
## (2024-06-11)
* Update balena/open-balena-registry Docker tag to v2.39.58 [Self-hosted Renovate Bot]
# v4.0.33
## (2024-06-11)
* Update balena/open-balena-api Docker tag to v24.3.0 [Self-hosted Renovate Bot]
# v4.0.32
## (2024-06-11)
* Update balena/open-balena-api Docker tag to v24.2.2 [Self-hosted Renovate Bot]
# v4.0.31
## (2024-06-11)
* Update aws-actions/configure-aws-credentials digest to c7680c3 [Self-hosted Renovate Bot]
# v4.0.30
## (2024-06-11)
* Update aws-actions/configure-aws-credentials digest to cf3f053 [Self-hosted Renovate Bot]
# v4.0.29
## (2024-06-11)
* Update qemux/qemu-docker Docker tag to v5.13 [Self-hosted Renovate Bot]
# v4.0.28
## (2024-06-10)
* Update balena/open-balena-api Docker tag to v24.2.1 [Self-hosted Renovate Bot]
# v4.0.27
## (2024-06-10)
* ignore .env if it doesn't exist [Anton Belodedenko]
# v4.0.26
## (2024-06-10)
* Update balena/open-balena-api Docker tag to v24.2.0 [Self-hosted Renovate Bot]
# v4.0.25
## (2024-06-10)
* Update balena/open-balena-api Docker tag to v24.1.3 [Self-hosted Renovate Bot]
# v4.0.24
## (2024-06-09)
* backoff retry device registrations and tagging [Anton Belodedenko]
# v4.0.23
## (2024-06-09)
* Update qemux/qemu-docker Docker tag to v5.12 [Self-hosted Renovate Bot]
# v4.0.22
## (2024-06-07)
* Update balena/open-balena-api Docker tag to v24.1.2 [Self-hosted Renovate Bot]
# v4.0.21
## (2024-06-06)
* Update balena/open-balena-api Docker tag to v24 [Self-hosted Renovate Bot]
# v4.0.20
## (2024-06-06)
* Update balena/open-balena-api Docker tag to v23.3.0 [Self-hosted Renovate Bot]
# v4.0.19
## (2024-06-05)
* Update balena/open-balena-api Docker tag to v23.2.0 [Self-hosted Renovate Bot]
# v4.0.18
## (2024-06-05)
* Update qemux/qemu-docker Docker tag to v5.11 [Self-hosted Renovate Bot]
# v4.0.17
## (2024-06-04)
* Update balena/open-balena-api Docker tag to v23.1.0 [Self-hosted Renovate Bot]
# v4.0.16
## (2024-06-04)
* Update balena/open-balena-api Docker tag to v23.0.2 [Self-hosted Renovate Bot]
# v4.0.15
## (2024-06-04)
* Update aws-actions/configure-aws-credentials digest to bd07581 [Self-hosted Renovate Bot]
# v4.0.14
## (2024-06-02)
* Update qemux/qemu-docker Docker tag to v5.10 [Self-hosted Renovate Bot]
# v4.0.13
## (2024-05-30)
* Update ubuntu Docker tag to v24 [Self-hosted Renovate Bot]
# v4.0.12
## (2024-05-30)
* Update qemux/qemu-docker Docker tag to v5 [Self-hosted Renovate Bot]
# v4.0.11
## (2024-05-30)
* Update balena/open-balena-registry Docker tag to v2.39.57 [Self-hosted Renovate Bot]
# v4.0.10
## (2024-05-30)
* Update balena/open-balena-s3 Docker tag to v2.28.44 [Self-hosted Renovate Bot]
# v4.0.9
## (2024-05-30)
* Update balena/open-balena-api Docker tag to v23 [Self-hosted Renovate Bot]
# v4.0.8
## (2024-05-29)
* Update balena/open-balena-vpn Docker tag to v11.30.22 [Self-hosted Renovate Bot]
# v4.0.7
## (2024-05-29)
* Update qemux/qemu-docker Docker tag to v4.28 [Self-hosted Renovate Bot]
# v4.0.6
## (2024-05-29)
* Update balena/open-balena-s3 Docker tag to v2.28.43 [Self-hosted Renovate Bot]
# v4.0.5
## (2024-05-29)
* Update balena/open-balena-haproxy Docker tag to v4.3.2 [Self-hosted Renovate Bot]
# v4.0.4
## (2024-05-29)
* Update balena/open-balena-registry Docker tag to v2.39.56 [Self-hosted Renovate Bot]
# v4.0.3
## (2024-05-29)
* Update aws-actions/configure-aws-credentials digest to 43c8912 [Self-hosted Renovate Bot]
# v4.0.2 # v4.0.2
## (2024-05-28) ## (2024-05-28)

View File

@ -3,15 +3,17 @@ SHELL := bash
# export all variables to child processes by default # export all variables to child processes by default
export export
# Include the .env file # include the .env file if it exists
include .env -include .env
BALENARC_NO_ANALYTICS ?= 1
DNS_TLD ?= $(error DNS_TLD not set) DNS_TLD ?= $(error DNS_TLD not set)
TMPKI := $(shell mktemp)
STAGING_PKI ?= /usr/local/share/ca-certificates
PRODUCTION_MODE ?= true
ORG_UNIT ?= openBalena ORG_UNIT ?= openBalena
PRODUCTION_MODE ?= true
STAGING_PKI ?= /usr/local/share/ca-certificates
SUPERUSER_EMAIL ?= admin@$(DNS_TLD) SUPERUSER_EMAIL ?= admin@$(DNS_TLD)
TMPKI := $(shell mktemp)
VERBOSE ?= false
.NOTPARALLEL: $(DOCKERCOMPOSE) .NOTPARALLEL: $(DOCKERCOMPOSE)
@ -39,23 +41,45 @@ ifneq ($(GANDI_API_TOKEN),)
endif endif
endif endif
@rm -f .env @rm -f .env
@echo "BALENARC_NO_ANALYTICS=$(BALENARC_NO_ANALYTICS)" > .env
@echo "DNS_TLD=$(DNS_TLD)" >> .env @echo "DNS_TLD=$(DNS_TLD)" >> .env
@echo "ORG_UNIT=$(ORG_UNIT)" >> .env @echo "ORG_UNIT=$(ORG_UNIT)" >> .env
@echo "SUPERUSER_EMAIL=$(SUPERUSER_EMAIL)" >> .env
@echo "PRODUCTION_MODE=$(PRODUCTION_MODE)" >> .env @echo "PRODUCTION_MODE=$(PRODUCTION_MODE)" >> .env
@echo "GANDI_API_TOKEN=$(GANDI_API_TOKEN)" >> .env @echo "SUPERUSER_EMAIL=$(SUPERUSER_EMAIL)" >> .env
@echo "CLOUDFLARE_API_TOKEN=$(CLOUDFLARE_API_TOKEN)" >> .env @echo "VERBOSE=$(VERBOSE)" >> .env
ifneq ($(ACME_EMAIL),)
@echo "ACME_EMAIL=$(ACME_EMAIL)" >> .env @echo "ACME_EMAIL=$(ACME_EMAIL)" >> .env
endif
ifneq ($(CLOUDFLARE_API_TOKEN),)
@echo "CLOUDFLARE_API_TOKEN=$(CLOUDFLARE_API_TOKEN)" >> .env
endif
ifneq ($(GANDI_API_TOKEN),)
@echo "GANDI_API_TOKEN=$(GANDI_API_TOKEN)" >> .env
endif
ifneq ($(HAPROXY_CRT),)
@echo "HAPROXY_CRT=$(HAPROXY_CRT)" >> .env @echo "HAPROXY_CRT=$(HAPROXY_CRT)" >> .env
endif
ifneq ($(HAPROXY_KEY),)
@echo "HAPROXY_KEY=$(HAPROXY_KEY)" >> .env @echo "HAPROXY_KEY=$(HAPROXY_KEY)" >> .env
endif
ifneq ($(ROOT_CA),)
@echo "ROOT_CA=$(ROOT_CA)" >> .env @echo "ROOT_CA=$(ROOT_CA)" >> .env
endif
@$(MAKE) showenv @$(MAKE) showenv
.PHONY: wait
wait: ## Wait for service
@until [[ $$(docker compose ps $(SERVICE) --format json | jq -r '.Health') =~ ^healthy$$ ]]; do printf '.'; sleep 3; done
@printf '\n'
.PHONY: waitlog
waitlog: ## Wait for log line
@until docker compose logs $(SERVICE) | grep -Eq "$(LOG_STRING)"; do printf '.'; sleep 3; done
.PHONY: up .PHONY: up
up: config ## Start all services up: config ## Start all services
@docker compose up --build -d @docker compose up --build -d
@until [[ $$(docker compose ps api --format json | jq -r '.Health') =~ healthy ]]; do printf '.'; sleep 3; done @$(MAKE) wait SERVICE=api
@printf '\n'
@$(MAKE) showenv @$(MAKE) showenv
@$(MAKE) showpass @$(MAKE) showpass
@ -83,6 +107,7 @@ stop: down ## Alias for 'make down'
.PHONY: restart .PHONY: restart
restart: ## Restart all services restart: ## Restart all services
@docker compose restart @docker compose restart
@$(MAKE) wait SERVICE=api
.PHONY: update .PHONY: update
update: # Pull and deploy latest changes from git update: # Pull and deploy latest changes from git
@ -118,11 +143,10 @@ self-signed: ## Install self-signed CA certificates
auto-pki: config # Start all services using LetsEncrypt and ACME auto-pki: config # Start all services using LetsEncrypt and ACME
@docker compose exec cert-manager rm -f /certs/export/chain.pem @docker compose exec cert-manager rm -f /certs/export/chain.pem
@docker compose up -d @docker compose up -d
@until docker compose logs cert-manager | grep -Eq "/certs/export/chain.pem Certificate will not expire in [0-9] days"; do printf '.'; sleep 3; done @$(MAKE) waitlog SERVICE=cert-manager LOG_STRING="/certs/export/chain.pem Certificate will not expire in [0-9] days"
@until docker compose logs cert-manager | grep -q "subject=CN = ${DNS_TLD}"; do printf '.'; sleep 3; done @$(MAKE) waitlog SERVICE=cert-manager LOG_STRING="subject=CN = ${DNS_TLD}"
@until docker compose logs cert-manager | grep -q "issuer=C = US, O = Let's Encrypt, CN = R3"; do printf '.'; sleep 3; done @$(MAKE) waitlog SERVICE=cert-manager LOG_STRING="issuer=C = US, O = Let's Encrypt, CN = R3"
@until [[ $$(docker compose ps haproxy --format json | jq -r '.Health') =~ healthy ]]; do printf '.'; sleep 3; done @$(MAKE) wait SERVICE=haproxy
@printf '\n'
@$(MAKE) showenv @$(MAKE) showenv
@$(MAKE) showpass @$(MAKE) showpass

View File

@ -1 +1 @@
4.0.2 4.1.1

View File

@ -23,4 +23,4 @@ data:
- generic-amd64 - generic-amd64
- genericx86-64-ext - genericx86-64-ext
- intel-nuc - intel-nuc
version: 4.0.2 version: 4.1.1

View File

@ -64,11 +64,11 @@ x-network-privileges-trait: &with-network-privileges
- SYS_RESOURCE - SYS_RESOURCE
x-base-service-definition: &base-service x-base-service-definition: &base-service
restart: unless-stopped restart: 'unless-stopped'
# for docker-compose only, no effect on balenaCloud # for docker-compose only, no effect on balenaCloud
env_file: env_file:
- .env - .env
tty: 'true' # send syastemd logs from containers to stdout tty: true # send syastemd logs from containers to stdout
services: services:
# https://github.com/balena-io/open-balena-api # https://github.com/balena-io/open-balena-api
@ -79,7 +79,7 @@ services:
*with-default-privileges, *with-default-privileges,
*with-default-volumes, *with-default-volumes,
] ]
image: balena/open-balena-api:v22.2.3 image: balena/open-balena-api:v25.1.7
depends_on: depends_on:
- db - db
- redis - redis
@ -110,7 +110,7 @@ services:
TRUST_PROXY: 172.16.0.0/12 TRUST_PROXY: 172.16.0.0/12
VPN_PORT: 443 VPN_PORT: 443
WEBRESOURCES_S3_BUCKET: web-resources WEBRESOURCES_S3_BUCKET: web-resources
WEBRESOURCES_S3_REGION: "us-east-1" # this is required for minio WEBRESOURCES_S3_REGION: 'us-east-1' # this is required for minio
# https://github.com/balena-io/open-balena-registry # https://github.com/balena-io/open-balena-registry
registry: registry:
@ -119,7 +119,7 @@ services:
*with-default-healthcheck, *with-default-healthcheck,
*with-default-privileges, *with-default-privileges,
] ]
image: balena/open-balena-registry:v2.39.55 image: balena/open-balena-registry:v2.39.58
volumes: volumes:
- certs-data:/certs - certs-data:/certs
- resin-data:/balena - resin-data:/balena
@ -146,7 +146,7 @@ services:
*with-network-privileges, *with-network-privileges,
*with-default-privileges, *with-default-privileges,
] ]
image: balena/open-balena-vpn:v11.30.9 image: balena/open-balena-vpn:v11.30.22
depends_on: depends_on:
- api - api
environment: environment:
@ -175,7 +175,7 @@ services:
*with-default-healthcheck, *with-default-healthcheck,
*with-default-privileges, *with-default-privileges,
] ]
image: balena/open-balena-s3:v2.28.42 image: balena/open-balena-s3:v2.28.45
volumes: volumes:
- s3-data:/export - s3-data:/export
- certs-data:/certs - certs-data:/certs
@ -212,11 +212,11 @@ services:
test: true | openssl s_client -connect localhost:443 test: true | openssl s_client -connect localhost:443
ports: ports:
# haproxy/http # haproxy/http
- "80:80/tcp" - '80:80/tcp'
# haproxy/tcp-router # haproxy/tcp-router
- "443:443/tcp" - '443:443/tcp'
# haproxy/stats # haproxy/stats
- "1936:1936/tcp" - '1936:1936/tcp'
environment: environment:
LOGLEVEL: info LOGLEVEL: info
@ -281,7 +281,7 @@ services:
# only relevant when running in AWS/EC2 # only relevant when running in AWS/EC2
tag-sidecar: tag-sidecar:
build: src/tag-sidecar build: src/tag-sidecar
restart: no restart: 'no'
environment: environment:
ENABLED: 'true' ENABLED: 'true'
labels: labels:
@ -308,7 +308,7 @@ services:
labels: labels:
io.balena.features.balena-api: 1 io.balena.features.balena-api: 1
io.balena.features.supervisor-api: 1 io.balena.features.supervisor-api: 1
restart: no restart: 'no'
# virtual Device Under Test (DUT) # virtual Device Under Test (DUT)
dut: dut:
@ -333,7 +333,7 @@ services:
- resin-data:/balena - resin-data:/balena
devices: devices:
- /dev/net/tun - /dev/net/tun
restart: no restart: 'no'
# https://hub.docker.com/_/docker # https://hub.docker.com/_/docker
# pseudo(builder) service for balena-tests # pseudo(builder) service for balena-tests
@ -344,11 +344,23 @@ services:
*with-network-privileges, *with-network-privileges,
] ]
image: docker:dind image: docker:dind
entrypoint:
- /bin/sh
- -c
command:
- |
set -x
cp /certs/root-ca.pem /certs/server-ca.pem /usr/local/share/ca-certificates/ \
&& update-ca-certificates
exec /usr/local/bin/dockerd-entrypoint.sh
volumes: volumes:
- builder-data:/var/lib/docker - /sys:/sys
- builder-certs-ca:/docker-pki/ca - builder-certs-ca:/docker-pki/ca
- builder-certs-client:/docker-pki/client - builder-certs-client:/docker-pki/client
- /sys:/sys - builder-data:/var/lib/docker
- certs-data:/certs
environment: environment:
DOCKER_TLS_CERTDIR: /docker-pki DOCKER_TLS_CERTDIR: /docker-pki
healthcheck: healthcheck:

View File

@ -82,7 +82,7 @@ name and configure records.
```bash ```bash
sudo useradd -s /bin/bash -m -G docker,sudo balena sudo useradd -s /bin/bash -m -G docker,sudo balena
echo 'balena ALL=(ALL) NOPASSWD: ALL' | tee >/etc/sudoers.d/balena echo 'balena ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/balena
``` ```
6. Switch user: 6. Switch user:

View File

@ -1,7 +1,7 @@
FROM ubuntu:22.04 FROM ubuntu:24.04
# renovate: datasource=github-releases depName=balena-io/balena-cli # renovate: datasource=github-releases depName=balena-io/balena-cli
ARG BALENA_CLI_VERSION=v18.2.2 ARG BALENA_CLI_VERSION=v18.2.10
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
bash \ bash \

View File

@ -41,7 +41,7 @@ function shutdown_dut() {
if [[ -n $balena_device_uuid ]]; then if [[ -n $balena_device_uuid ]]; then
with_backoff balena device "${balena_device_uuid}" with_backoff balena device "${balena_device_uuid}"
balena device shutdown -f "${balena_device_uuid}" || true with_backoff balena device shutdown -f "${balena_device_uuid}"
fi fi
} }
@ -248,7 +248,7 @@ function check_running_release() {
running_release_id="$(balena device "${balena_device_uuid}" | grep -E ^COMMIT | awk '{print $2}')" running_release_id="$(balena device "${balena_device_uuid}" | grep -E ^COMMIT | awk '{print $2}')"
printf 'please wait, device %s should be running %s, but is still running %s...\n' \ printf 'please wait, device %s should be running %s, but is still running %s...\n' \
"${balena_device_uuid}" \ "${balena_device_uuid}" \
"${1}" \ "${should_be_running_release}" \
"${running_release_id}" "${running_release_id}"
sleep "$(( (RANDOM % 5) + 5 ))s" sleep "$(( (RANDOM % 5) + 5 ))s"

View File

@ -1,4 +1,4 @@
# https://github.com/balena-io/open-balena-haproxy # https://github.com/balena-io/open-balena-haproxy
FROM balena/open-balena-haproxy:v4.3.1 FROM balena/open-balena-haproxy:v4.3.2
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

View File

@ -1,6 +1,6 @@
# https://hub.docker.com/r/qemux/qemu-docker # https://hub.docker.com/r/qemux/qemu-docker
# https://github.com/qemus/qemu-docker # https://github.com/qemus/qemu-docker
FROM qemux/qemu-docker:4.24 FROM qemux/qemu-docker:5.16
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
minicom \ minicom \