Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Image Customizer: Make verity API a list. #10789

Merged
merged 3 commits into from
Oct 25, 2024
Merged

Conversation

cwize1
Copy link
Contributor

@cwize1 cwize1 commented Oct 18, 2024

Change the verity config from a single item to a list of items. This is being done so that it is easier to add support for other verity partitions (e.g. /usr) in the future. However, this change restricts the verity API to only the root partition (/).

In addition, move the verity config from .os to .storage. This is being done for alignment with the Trident API. But is also probably a more morally correct place for verity to be placed.

As a side effect, this change removes support for enabling verity on a base image that somehow had all the correct partitions to support verity but didn't actually have verity enabled. None of our base images are like this. So, it is expected that no user ever made use of this functionality. This functionality could be re-added in the future. It was omitted from this change to avoid adding additional complexity.


Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge
Does this affect the toolchain?

NO

Test Methodology
  • Ran UTs.

Change the verity config from a single item to a list of items. This is
being done so that it is easier to add support for other verity
partitions (e.g. /usr) in the future. However, this change restricts
the verity API to only the root partition (`/`).

In addition, move the verity config from `.os` to `.storage`. This is
being done for alignment with the Trident API. But is also probably a
more morally correct place for verity to be placed.

As a side effect, this change removes support for enabling verity on a
base image that somehow had all the correct partitions to support
verity but didn't actually have verity enabled. None of our base images
are like this. So, it is expected that no user ever made use of this
functionality. This functionality could be re-added in the future. It
was omitted from this change to avoid adding additional complexity.
@cwize1 cwize1 requested a review from a team as a code owner October 18, 2024 19:24
@liulanze liulanze self-requested a review October 25, 2024 20:45
Copy link
Contributor

@liulanze liulanze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the revision, looks good!

@cwize1 cwize1 merged commit 0353f32 into 3.0-dev Oct 25, 2024
12 checks passed
@cwize1 cwize1 deleted the user/chrisgun/micVerityList branch October 25, 2024 22:20
cwize1 added a commit that referenced this pull request Oct 25, 2024
Missing docs fixes associated with #10789.
@cwize1 cwize1 mentioned this pull request Oct 25, 2024
12 tasks
cwize1 added a commit that referenced this pull request Oct 29, 2024
In change #10789, the `imagecustomizerapi.FileSystem` type had an
internal field added called `PartitionId` which is filled in by the API
validity checks.

ISO to ISO customization supports cracking open the squashfs file and
modifying the Live-OS. However, to do this, a temporary OS image must be
created. This creation logic uses the `imagecustomizerapi.FileSystem`
type but the code wasn't updated to ensure the `PartitionId` field has a
value.
cwize1 added a commit that referenced this pull request Oct 29, 2024
In change #10789, the `imagecustomizerapi.FileSystem` type had an internal field added called `PartitionId` which is filled in by the API validity checks.

ISO to ISO customization supports cracking open the squashfs file and modifying the Live-OS. However, to do this, a temporary OS image must be created. This creation logic uses the `imagecustomizerapi.FileSystem` type but the code wasn't updated to ensure the `PartitionId` field has a value.
durgajagadeesh pushed a commit to durgajagadeesh/azurelinux_djpalli that referenced this pull request Dec 31, 2024
Change the verity config from a single item to a list of items. This is being done so that it is easier to add support for other verity partitions (e.g. /usr) in the future. However, this change restricts the verity API to only the root partition (`/`).

In addition, move the verity config from `.os` to `.storage`. This is being done for alignment with the Trident API. But is also probably a more morally correct place for verity to be placed.

As a side effect, this change removes support for enabling verity on a base image that somehow had all the correct partitions to support verity but didn't actually have verity enabled. None of our base images are like this. So, it is expected that no user ever made use of this functionality. This functionality could be re-added in the future. It was omitted from this change to avoid adding additional complexity.
durgajagadeesh pushed a commit to durgajagadeesh/azurelinux_djpalli that referenced this pull request Dec 31, 2024
In change microsoft#10789, the `imagecustomizerapi.FileSystem` type had an internal field added called `PartitionId` which is filled in by the API validity checks.

ISO to ISO customization supports cracking open the squashfs file and modifying the Live-OS. However, to do this, a temporary OS image must be created. This creation logic uses the `imagecustomizerapi.FileSystem` type but the code wasn't updated to ensure the `PartitionId` field has a value.
JocelynBerrendonner pushed a commit to JocelynBerrendonner/azurelinux that referenced this pull request Jan 23, 2025
Change the verity config from a single item to a list of items. This is being done so that it is easier to add support for other verity partitions (e.g. /usr) in the future. However, this change restricts the verity API to only the root partition (`/`).

In addition, move the verity config from `.os` to `.storage`. This is being done for alignment with the Trident API. But is also probably a more morally correct place for verity to be placed.

As a side effect, this change removes support for enabling verity on a base image that somehow had all the correct partitions to support verity but didn't actually have verity enabled. None of our base images are like this. So, it is expected that no user ever made use of this functionality. This functionality could be re-added in the future. It was omitted from this change to avoid adding additional complexity.
JocelynBerrendonner pushed a commit to JocelynBerrendonner/azurelinux that referenced this pull request Jan 23, 2025
In change microsoft#10789, the `imagecustomizerapi.FileSystem` type had an internal field added called `PartitionId` which is filled in by the API validity checks.

ISO to ISO customization supports cracking open the squashfs file and modifying the Live-OS. However, to do this, a temporary OS image must be created. This creation logic uses the `imagecustomizerapi.FileSystem` type but the code wasn't updated to ensure the `PartitionId` field has a value.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants