Skip to content

Commit 5d02b5b

Browse files
authored
Merge branch '3.0-dev' into cjnolan/update-service-dependencies
2 parents 0a3c301 + 6d2b650 commit 5d02b5b

File tree

10 files changed

+165
-162
lines changed

10 files changed

+165
-162
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
* @open-edge-platform/edge-microvisor-toolkit-maintain
2+
3+
/docs @open-edge-platform/edge-microvisor-toolkit-docs-write

docs/developer-guide/architecture-overview.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ Edge Microvisor Toolkit is produced and maintained in several versions, in both
1111
mutable images. It enables users to quickly deploy and run their workloads on Intel® platforms,
1212
offering quick solutions to multiple scenarios.
1313

14-
- ISO installer with a mutable image using GRUB as the second-stage bootloader
15-
- ISO installer - mutable image, GRUB as the second-stage bootloader
16-
- RAW and VHD/X - immutable image, systemd-boot as the second-stage bootloader
14+
- ISO installer with a mutable image using GRUB as the second-stage bootloader.
15+
- ISO installer - mutable image, GRUB as the second-stage bootloader.
16+
- RAW and VHD/X - immutable image, systemd-boot as the second-stage bootloader.
1717
- RAW and VHD/X - immutable image, systemd-boot as the second-stage bootloader, with real-time
18-
support
18+
support.
1919

2020
Two flavors of immutable microvisor are available, integrating the Intel® kernel and
2121
enabling the software and features offered by Intel® Open Edge Platform. Check out this
@@ -117,12 +117,12 @@ Limits deep idle states on Intel® CPUs, reducing wake-up latencies that can adv
117117
Each build of Edge Microvisor Toolkit produces several build artifacts based on
118118
the image configuration used. The artifacts come with associated `sha256` files.
119119

120-
- Unique build ID
121-
- Manifest containing version, kernel version, size, release details and CVE manifest
122-
- Software BOM package manifests (included packages, dependencies, patches)
123-
- Signed Image in raw.gz format
124-
- Image in VHD format
125-
- Signing key
120+
- Unique build ID.
121+
- Manifest containing version, kernel version, size, release details and CVE manifest.
122+
- Software BOM package manifests (included packages, dependencies, patches).
123+
- Signed Image in raw.gz format.
124+
- Image in VHD format.
125+
- Signing key.
126126

127127

128128
## Packaging
@@ -138,9 +138,9 @@ Device Start End Sectors Size Type
138138
...raw3 3145728 4192255 1046528 511M Linux filesystem
139139
```
140140

141-
- The first partition is the EFI boot partition
142-
- The second partition contains the read-only rootfs filesystem
143-
- The third partition contains the persistent filesystem
141+
- The first partition is the EFI boot partition.
142+
- The second partition contains the read-only rootfs filesystem.
143+
- The third partition contains the persistent filesystem.
144144

145145
UKI (Unified Kernel Image) is an EFI executable that bundles several components, reducing
146146
the number of artifacts and making updates to the operating system easier to manage.
@@ -195,8 +195,8 @@ The `layout.env` defines the `tmpfs` and persistent bind mounts for the image. B
195195
/etc/otelcol
196196
```
197197

198-
- The `/var` directory requires to be writable as its content changes during normal operation (logs, cache, OS runtime data, persistent application data and temporary files)
199-
- The `/etc/lp` holds assets and configuration for the system's printing subsystem
198+
- The `/var` directory requires to be writable as its content changes during normal operation (logs, cache, OS runtime data, persistent application data and temporary files).
199+
- The `/etc/lp` holds assets and configuration for the system's printing subsystem.
200200
- The `/etc/node-agent` and `/etc/cluster-agent` and `/etc/health-check` are required for the Open Edge Platform's baremetal agents for configuration data.
201201
- The `/etc/telegraf` and `/etc/otelcol` are for telemetry data and configuration for the `telemetry-agent` and `observability-agent` required by the Open Edge Platform.
202202
- `/etc/caddy` is the ephemeral data required by the reverse-proxy required by the Open Edge Platform to communicate with the backend service(s).
@@ -225,8 +225,8 @@ PERSISTENT_BIND_PATHS="
225225
/var/lib/rancher"
226226
```
227227

228-
- Several key directories required for the OS to be writable for normal system operations are kept as persistent bind paths such as `/etc/fstab`, `/etc/environemnt`, `/etc/hosts`, `/etc/pki`, `/etc/ssh`, `/etc/systemd`, `/etc/udev`, `/etc/sysconfig`, `/etc/netplan`
229-
- The Kubernetes distribution used for Open Edge platform uses Rancher's RKE2 and requires additional bind mounts such as `/etc/rancher`, `/etc/cni`, `/etc/kubernetes`, `/var/lib/rancher`
228+
- Several key directories required for the OS to be writable for normal system operations are kept as persistent bind paths such as `/etc/fstab`, `/etc/environemnt`, `/etc/hosts`, `/etc/pki`, `/etc/ssh`, `/etc/systemd`, `/etc/udev`, `/etc/sysconfig`, `/etc/netplan`.
229+
- The Kubernetes distribution used for Open Edge platform uses Rancher's RKE2 and requires additional bind mounts such as `/etc/rancher`, `/etc/cni`, `/etc/kubernetes`, `/var/lib/rancher`.
230230

231231
## Bare Metal Agents
232232

@@ -275,10 +275,14 @@ One partition is designated as active and is used during system boot via EFI and
275275
When a new update is available, the following steps occur:
276276

277277
- The new image is downloaded and then verified for integrity and authenticity.
278-
Once verified, the new image is written to the inactive partition.
278+
279+
Once verified, the new image is written to the inactive partition.
280+
279281
- The bootloader (systemd-boot) is then reconfigured to boot from this updated partition, which will become the new active partition upon the next reboot.
282+
280283
- Rollback Capability:
281-
Integrated within systemd-boot is the ability to detect boot failures. If the system fails to boot from the new image, the bootloader can automatically rollback to the previous, stable partition, ensuring continuous system availability.
284+
285+
Integrated within systemd-boot is the ability to detect boot failures. If the system fails to boot from the new image, the bootloader can automatically rollback to the previous, stable partition, ensuring continuous system availability.
282286

283287
### Benefits of This Approach
284288

docs/developer-guide/contribution.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ community to support adding new features, optimizing, and improving security.
55

66
There are many areas in which you can contribute, such as:
77

8-
1. the build infrastructure pipeline
9-
1. new features and functionality in new or existing microvisor image definitions
10-
1. support for new edge platforms
8+
1. The build infrastructure pipeline.
9+
2. New features and functionality in new or existing microvisor image definitions.
10+
3. Support for new edge platforms.
1111

1212
## New Features
1313

@@ -28,33 +28,33 @@ General contribution guidelines to Open Edge platform can be found [TODO]
2828

2929
### Update of Edge Node Agents
3030

31-
1. If a new package has to be released, follow below steps to ensure the package is available in the artifactory.
31+
1. If a new package has to be released, follow these steps to ensure the package is available in the artifactory:
3232

33-
1. Checkout the tag for your agent which has to be released
34-
1. cd into your agent's directory
35-
1. Invoke `make tarball`
36-
1. Upload tarball from `build/artifacts` to the tarball repository
33+
a. Checkout the tag for your agent which has to be released.
34+
b. cd into your agent's directory.
35+
c. Invoke `make tarball`.
36+
d. Upload tarball from `build/artifacts` to the tarball repository.
3737

38-
1. Update the respective spec file in SPECS/<agent-name> directory. Example : `SPECS/node-agent`.
38+
2. Update the respective .spec file in SPECS/<agent-name> directory. Example : `SPECS/node-agent`.
3939

40-
1. Bump the release number declared in the top section of the spec file if on the same version. Else, update the release version and set the number to 1.
40+
3. Bump the release number declared in the top section of the .spec file if on the same version. Else, update the release version and set the number to 1.
4141

42-
1. Update `env_wrapper.sh` and the spec file if there are new configurations to be added or installation changes.
42+
4. Update `env_wrapper.sh` and the .spec file if there are new configurations to be added or installation changes.
4343

44-
1. Update the changelog to ensure the version and release number are mentioned correctly as well.
44+
5. Update the changelog to ensure the version and release number are mentioned correctly as well.
4545
Example :
4646

4747
```bash
4848
* Tue Mar 25 2025 Andrea Campanella <andrea.campanella@intel.com> - 1.5.11-2
4949
- Move from RSTYPE to RS_TYPE in wrapper for node-agent
5050
```
5151

52-
1. Generate sha256sum of all files that have been updated.
52+
6. Generate sha256sum of all files that have been updated.
5353
Example : `sha256sum ./SPECS/node-agent/env_wrapper.sh`
5454

55-
1. Update the signature file name `<agent-name>.signatures.json`. Example : `node-agent.signatures.json`.
55+
7. Update the signature file name `<agent-name>.signatures.json`. Example : `node-agent.signatures.json`.
5656

57-
1. Update `cgmanifest.json`. You can use a script to do it, if you have an rpm environment. Else, update the version and download the URL manually. Example commands to update using a manifest:
57+
8. Update `cgmanifest.json`. You can use a script to do it, if you have an rpm environment. Else, update the version and download the URL manually. Example commands to update using a manifest:
5858

5959
```bash
6060
python3 -m pip install -r ./toolkit/scripts/requirements.txt
@@ -71,14 +71,14 @@ planned releases.
7171
Edge Microvisor Toolkit releases every 6 weeks. Here are the details:
7272

7373
**every 6 weeks:**
74-
- RPM updates including new RPMs or patches to existing RPMs
75-
- Exception releases to address critical bugs/CVEs
74+
- RPM updates including new RPMs or patches to existing RPMs.
75+
- Exception releases to address critical bugs/CVEs.
7676

7777
**every 12 weeks:**
78-
- ISO image + RPM release
78+
- ISO image + RPM release.
7979

8080
**every quarter:**
81-
- RAW/VHD (+RPMs delta) image release
81+
- RAW/VHD (+RPMs delta) image release.
8282

8383
## Contribution license
8484

docs/developer-guide/get-started.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,28 @@ Edge Microvisor Toolkit is a lightweight, container-first Linux distribution
44
optimized for Intel® architecture. It provides a secure and high-performing environment for
55
deploying edge workloads across multiple deployment models.
66

7-
This section provides its overview in terms of both the Operating System and the build pipeline.
8-
See what usage scenarios you can choose, in the description below, and move on to:
9-
10-
* [Build an Edge Microvisor Toolkit Image](./get-started/building-howto.md)
11-
* [Install Edge Microvisor Toolkit](./get-started/installation-howto.md)
12-
7+
The section provides an overview of both the operating system and build pipelines.
8+
Once you have decided on the usage scenarios presented below, you can move on to:
139

10+
- [Build an Edge Microvisor Toolkit Image.](./get-started/building-howto.md)
11+
- [Install Edge Microvisor Toolkit.](./get-started/installation-howto.md)
1412

1513
## Usage Scenarios
1614

17-
Edge Microvisor Toolkit can be used for standalone edge node deployments or with Edge
18-
Orchestrator, a complete integrated system providing full lifecycle management for your edge
19-
devices, including remote deployment and management of Kubernetes applications.
20-
2115
This section outlines the key usage models intended for the initial release of
2216
Edge Microvisor Toolkit.
2317

18+
It can be used for standalone edge node deployments or with Edge
19+
Orchestrator, a complete integrated system providing full lifecycle management for your edge
20+
devices, including remote deployment and management of Kubernetes applications.
21+
2422
### Standalone Developer Edge Node
2523

2624
To create a custom developer build of Edge Microvisor Toolkit, follow the steps below:
2725

2826
- Install the mutable OS via ISO image that includes only essential pre-installed packages, providing a ready-to-use base environment.
2927
- Install additional RPM packages, using DNF to tailor the OS to your specific needs.
30-
- Update installed RPMs regularly to stay up-to-date in the OS, for package updates, kernel updates, security vulnerability fixes and bug fixes
28+
- Update installed RPMs regularly to stay up-to-date in the OS, for package updates, kernel updates, security vulnerability fixes and bug fixes.
3129
- Build a custom OS image, using the OS toolkit and available packages, which enables you to:
3230
- Configure the system for specialized workloads or environments.
3331
- Experiment with simplified or enhanced configurations tailored for your specific workloads.
@@ -49,7 +47,9 @@ The supported package repository offers additional `rpm` for tailoring the image
4947

5048
### Standalone Edge Node
5149

52-
The standalone edge node uses the standard immutable build and provides an ISO image that can be flashed to a USB device and installed on edge nodes. It installs the microvisor and Kubernetes to the edge node with the essential functionality to run a single node cluster. The edge node will serve as both control- and worker node. Additional worker nodes can be added to the cluster through Kubernetes. Future releases will allow standalone edge nodes to join an existing Edge Orchestrator Toolkit backend deployed on-prem or in the cloud to support scale out and management of larger infrastructures. The Standalone Edge Node enables you to quickly get an edge node up and running without deploying backend services, ready to deploy Kubernetes applications through `kubectl`, `helm`, or Kubernetes web dashboard.
50+
The standalone edge node uses the standard immutable build and provides an ISO image that can be flashed to a USB device and installed on edge nodes. It installs the microvisor and Kubernetes to the edge node with the essential functionality to run a single node cluster. The edge node will serve as both control and worker node. Additional worker nodes can be added to the cluster through Kubernetes.
51+
52+
Future releases will enable standalone edge nodes to join an existing Edge Orchestrator Toolkit backend deployed on-prem or in the cloud to support scale out and management of larger infrastructures. The Standalone Edge Node enables you to quickly get an edge node up and running without deploying backend services, ready to deploy Kubernetes applications through `kubectl`, `helm`, or Kubernetes web dashboard.
5353

5454
```{admonition} The standalone edge node does not support the real-time version currently.
5555
:class: note

docs/developer-guide/get-started/building-howto.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ facilitate creating `rpm` based OS images supporting a variety of different imag
66
The toolkit has an `imageconfig` construct in the `json` format that defines the resulting
77
image characteristics, such as:
88

9-
- Partitioning table type and size
10-
- The different partitions and their types (such as EFI, rootfs, etc.) and settings, file system (`fat32`, `ext4` etc.) and size
11-
- Reference to `packagelists` which defines what packages (i.e. `rpms`) should be included in the image
12-
- Additional configuration files that should be embedded in the image (e.g. network-, systemd configurations)
13-
- Any required post installation scripts that should be executed once the image has been generated
14-
- Kernel options and command line
15-
- Final configuration properties that should be applied (e.g. enable full disc encryption, immutable image, second stage bootloader provider, purge documentation etc.)
9+
- Partitioning table type and size.
10+
- The different partitions and their types (such as EFI, rootfs, etc.) and settings, file system (`fat32`, `ext4` etc.) and size.
11+
- Reference to `packagelists` which defines what packages (i.e. `rpms`) should be included in the image.
12+
- Additional configuration files that should be embedded in the image (e.g. network-, systemd configurations).
13+
- Any required post installation scripts that should be executed once the image has been generated.
14+
- Kernel options and command line.
15+
- Final configuration properties that should be applied (e.g. enable full disc encryption, immutable image, second stage bootloader provider, purge documentation etc.).
1616

1717

1818
Before you can build OS images you need to build the toolchain and make sure to
@@ -74,7 +74,7 @@ files from the `imageconfig`.
7474
### Example: Adding Nano
7575

7676
The following example shows how to add `nano` as an alternative text editor to the image.
77-
You can add the packages for which SPEC files already exist. Simply include them in an
77+
You can add the packages for which .spec files already exist. Simply include them in an
7878
existing `packagelist` file, or create a new one and add it to the `imageconfig`.
7979

8080

0 commit comments

Comments
 (0)