Skip to content

Commit 7f79302

Browse files
authored
Merge branch 'main' into ITEP-78714-install-completion-output
2 parents 7ffb243 + e6d2e4c commit 7f79302

26 files changed

+4252
-2190
lines changed

.github/workflows/boot_tester.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Boot Tester
2+
on:
3+
schedule:
4+
# Run twice a week: Tuesdays at 02:00 UTC and Fridays at 02:00 UTC
5+
- cron: '0 2 * * 2' # Tuesday at 2 AM UTC
6+
- cron: '0 2 * * 5' # Friday at 2 AM UTC
7+
workflow_dispatch: {}
8+
# Allow manual triggering of the workflow
9+
permissions:
10+
contents: read
11+
jobs:
12+
boot-test:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
with:
18+
persist-credentials: false
19+
20+
- name: Set up Docker Buildx
21+
uses: docker/setup-buildx-action@v3
22+
23+
- name: Install Earthly
24+
uses: earthly/actions-setup@v1
25+
with:
26+
github-token: ${{ secrets.GITHUB_TOKEN }}
27+
version: "latest" # or pin to a specific version like "v0.8.0"
28+
29+
- name: Install system deps
30+
run: |
31+
sudo apt-get update
32+
sudo apt-get install -y qemu-system-x86 ovmf tree jq systemd-ukify mmdebstrap systemd-boot
33+
34+
- name: Set up Go
35+
uses: actions/setup-go@v5
36+
with:
37+
go-version: stable # or a pinned version you know exists
38+
39+
- name: Copy tester script
40+
run: |
41+
if [ ! -f validate.sh ]; then
42+
echo "validate.sh not found!"
43+
exit 1
44+
fi
45+
chmod +x validate.sh
46+
47+
- name: Run build-tester
48+
run: |
49+
echo "Starting validate.sh..."
50+
# Ensure script has access to docker group for Earthly
51+
sudo usermod -aG docker $USER
52+
# Run the validation script
53+
./validate.sh --qemu-test
54+
echo "Build and tests completed."

docs/architecture/architecture.md

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,17 @@ The following diagram shows the network context of the OS Image Composer tool:
7070
![OS Image Composer Network Diagram](assets/os-image-composer-network-diagram.drawio.svg).
7171

7272
The diagram illustrates how different components of the product's system
73-
architecture communicate with each other.
73+
architecture communicate with each other as well as the flow of setup and
74+
deployment process:
75+
76+
1. Clone image composer tool repository from Intel Open Edge Platform
77+
2. Install or Build the Image Composer Tool to the target architecture.
78+
3. Use the Image Composer Tool to compose your custom OS Image for the desired
79+
OS distribution. The remote package repositories perform server side
80+
validation on the HTTPS requests from the image composer tool. Integrity of
81+
each downloaded package is verified using authenticated GPG keys.
82+
4. Deploy the composed OS Image on edge node using your preferred
83+
deployment method.
7484

7585
### Network Security Considerations
7686

@@ -94,16 +104,16 @@ the OS Image Composer tool:
94104

95105
The tools for composing an image are grouped under following components:
96106
**Provider**, **Chroot**, **Image**, **OsPackage**, and **Config**.
97-
For modularity, each group contains a set of the components for
98-
the OS Image Composer tool's functions.
107+
For modularity, each group contains a set of the components for the
108+
OS Image Composer tool's functions.
99109

100110
The **provider** component takes data from *config* as its input, then calls
101-
**chroot**, **image** and **OsPackage** components to set up buidling the image.
111+
**chroot**, **image** and **OsPackage** components to set up building the image.
102112
**Chroot** libraries are used to create ChrootEnv for building the OS Image.
103113
The **image** libraries provide the general functions for building OS images.
104-
The **OsPackage** libraries include utilities for handling debian and
105-
rpm packages. The **config** component contains configuration data for the image
106-
that will be created.
114+
The **OsPackage** libraries include utilities for handling debian and rpm packages.
115+
The **config** component contains configuration data for the image that will be
116+
created.
107117

108118
### Chroot
109119

@@ -139,15 +149,15 @@ distribution-specific functionality from the core and common business logic.-->
139149

140150
![components - package](assets/components.drawio.OsPackage.svg)
141151

142-
*Package* groups the libraries that provide the unified interface of the
152+
*OsPackage* groups the libraries that provide the unified interface of the
143153
operating system vendors' remote package repositories. It analyzes given
144154
package lists and downloads all the packages and dependencies from the target
145155
operating system's remote package repository to a local cache.
146156

147157
It also verifies signatures of the downloaded packages to ensure they are
148-
authenticated and from certified source. It also provides the unified interface
149-
to install the packages and the dependencies in the correct order into the
150-
image rootfs directory.
158+
authenticated and from a certified source. It also provides the unified
159+
interface to install the packages and the dependencies in the correct order
160+
into the image rootfs directory.
151161

152162
## Operational Flow
153163

docs/architecture/assets/components.drawio.OsPackage.svg

Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading

docs/architecture/assets/components.drawio.image.svg

Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)