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

app: Skip app integrity check if pulled by skopeo #44

Merged
merged 7 commits into from
Jan 14, 2025

Conversation

mike-sul
Copy link
Collaborator

@mike-sul mike-sul commented Jan 2, 2025

Make composectl work if app is pulled by "aklite+skopeo".

  1. Don't require all app blobs to install and start app if app is pulled by "aklite+skopeo". Require only those blobs that are mandatory to install and start app.

  2. Don't require all app blobs during checking app "locally" in fully offline mode.

  3. Skip app integrity check if app blobs are pulled by "aklite+skopeo".

  4. Added a test to verify the aforementioned use-case.

If app and its images are pulled by `skopeo` then we should not expect
the app bundle index in a local blob store even if the app manifest
includes a reference to the app bundle index.
The app bundle index presence in a local blob store is mandatory only if
an app is pulled by `composectl`.

Signed-off-by: Mike Sul <[email protected]>
Make sure app is loaded from correct app store during running `ps` and
`check` command.
In case of `ps` command app should be loaded from the store location
specified in the `--store` parameter of `composectl` command, hence this
is the app store blob provider.
In case of `check` command app should be loaded either from:
1. Local app store specified in the `--store` parameter if `--local`
   parameter is specified;
2. From the blob store specified in the `--source-store-path` parameter;
3. From the remote registry, which is considered as a blob provider.

Signed-off-by: Mike Sul <[email protected]>
The app store's blob provider should be used for the app pruning,
otherwise app pulled by `skopeo` won't be loadable.

Signed-off-by: Mike Sul <[email protected]>
Add `skopeo` to the dev&test image and use it for preloading required
images to container registry.

Signed-off-by: Mike Sul <[email protected]>
Add an end-to-end test that verifies app installation and start by means
of `composectl` if app images are pulled by `skopeo` and app content is
pulled in the way as the aklite version <= 92 does.

Signed-off-by: Mike Sul <[email protected]>
@mike-sul mike-sul force-pushed the load-app-tree-if-pulled-by-skopeo branch 2 times, most recently from 52d92e4 to db448c2 Compare January 10, 2025 10:01
Unify instantiation of a source and destination blob
providers for all use-cases that require checking whether all
app blobs are fetched and installed.

Signed-off-by: Mike Sul <[email protected]>
@mike-sul mike-sul force-pushed the load-app-tree-if-pulled-by-skopeo branch 2 times, most recently from 3dde8f8 to 52df9fc Compare January 13, 2025 12:12
If an app is pulled by "aklite+skopeo" (e.g. aklite v.92) then not all
app blobs are fetched to a blob store. Some of them are fetched and
stored in a app store and some of them are not fetched at all.

This change adjust `composectl check --local` and `composectl install`
commands so they does not require all blobs in a blob store if an app
is pulled by "aklite+skopeo". Instead, it requires all blobs needed to
build an app's Merkle tree, install and run apps.

Signed-off-by: Mike Sul <[email protected]>
@mike-sul mike-sul force-pushed the load-app-tree-if-pulled-by-skopeo branch from 52df9fc to d84a433 Compare January 13, 2025 15:22
@mike-sul mike-sul marked this pull request as ready for review January 13, 2025 15:49
@mike-sul mike-sul requested a review from detsch January 13, 2025 15:49
@mike-sul mike-sul merged commit 769f800 into main Jan 14, 2025
1 check passed
@mike-sul mike-sul deleted the load-app-tree-if-pulled-by-skopeo branch January 14, 2025 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants