← Back to issue list

Is the support complete for `rock` images? (potentially new inspector required)

View original Github issue

Metadata

Project
fetch-service
Number
#329
Type
issue
State
open
Author
Vyom-Yadav
Labels
Created
Updated
Closed

Current evaluation

Fetch service lacks OCI image inspector for rockcraft builds; maintainer acknowledged and confirmed OCI inspector support is planned.

Suggested action: keep open

Reason: Maintainer @cmatsuoka acknowledged the issue on 2025-01-28 and explicitly stated 'support for an OCI image inspector is planned.' This is a legitimate feature gap that has been triaged and is on the roadmap, not a stale or unsupported request.

Impact: 50 Quick Win: 17.5 Staleness: 45 Complexity: 65 Confidence: 75 Support Request: 15

Issue body

### Bug Description While inspecting the mimetypes in fetch service, I was curious how it handled other OCI images being fetched as a part of the build. So, we setup a rockcraft build with ubuntu@24.04 base: https://code.launchpad.net/~canonical-security/shishirsub10-superalpaca/+git/shishirsub10-superalpaca/+ref/master According to rocks documentation: > Ubuntu bases > > When setting an Ubuntu [base](https://documentation.ubuntu.com/rockcraft/en/latest/reference/rockcraft.yaml/#rockcraft-yaml-base) for a rock, Rockcraft will pull the corresponding Ubuntu base container image from a container registry. This is exactly the same container one would get from places like [Docker Hub](https://hub.docker.com/_/ubuntu/) or [Amazon ECR](https://gallery.ecr.aws/ubuntu/ubuntu). > > The resulting rock will therefore also contain any software and utilities that are present in the Ubuntu base container images. > > Setting an Ubuntu [base](https://documentation.ubuntu.com/rockcraft/en/latest/reference/rockcraft.yaml/#rockcraft-yaml-base) for a rock is especially useful when the goal is to build a rock that can be used for general-purpose environments such as a development working space. While inspecting the [fetch service output](https://launchpad.net/~shishirsub10/shishirsub10-superalpaca/+rock/shishirsub10-alsuperalpaca/+build/262/+files/ROCKRECIPEBUILD-262_metadata.json) for this: ```json { "artifact-metadata-version": "0.1", "request-inspection": { "default": { "opinion": "Unknown", "reason": "the request was not recognized by any format inspector" } }, "response-inspection": { "default": { "opinion": "Unknown", "reason": "the artifact file content was not recognized by any format inspector" } }, "result": "Rejected", "metadata": { "type": "application/gzip", "sha1": "959266e2d8e4e6b66eb2f9b1a21cfe07395617f7", "sha256": "5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040", "size": 29754290, "name": "", "version": "", "vendor": "", "description": "", "author": "", "license": "" }, "downloads": [ { "start-time": "2025-01-27T06:08:20.380986054Z", "end-time": "2025-01-27T06:08:22.438437962Z", "method": "GET", "url": "https://d2glxqk2uabbnd.cloudfront.net:443/v2/e63354-770290485149-64bb1500-015b-80db-0107-97d4abc1e249/a70a7ee3-20a2-4459-8ecc-ef227bdbb81e?Encoded=WC1BbXotU2VjdXJpdHktVG9rZW49SVFvSmIzSnBaMmx1WDJWakVFNGFDWFZ6TFdWaGMzUXRNU0pITUVVQ0lRREJocmthR2JMJTJGYnhxeHRUb3dTdk9tRTNjVG9mQnhSUE1HVGgxMU01dmk2Z0lnRkZ1NmdhZnRaa2hMOEx6eElJZGNpSTFCWUlTZTBsV2FVT2JOelhUZHUzTXF3d01JVmhBRkdndzFPVEV4TURVNU1UUTVOVElpRE5NYUIzWWJqcjdkajJmMHNTcWdBNVpBR2l0V2RLVThtS0xzenptbFZMMUtTcVh2WEslMkZmdnNZTDVTVmtQY3RvS25uUFlRNTZVRGFDVHZEQjJtRU9zdlJTcDdHelYydURtT3VOMjZCMjY0TE4lMkZURDVkRDV2WUR5ZWU4eGVOS2tkVTRxeGtvQ3RGU1VJc3R3Q1lEWDhIZkZDd0w4YjduSlRkSjMwNDRQMWhBQlB4QkZwTkpwMTkxNzBWY3hZU25CaE5kQ2JhcFdiYjhPeGVRRnNVdkpjanpScUdrejhOQ1QyVkhTeUZISUdoSW9JVEJwRXIyV05odEFkY2FEeEp5ZUYlMkJpNVhXZmpwcWI1VWIlMkJsQVllTW9FSGlaeUFlWFVTSXZpNVJTUTklMkJEcEFZaWthUHhHeUdJM0pqMkg0c1g4TGpVUjMydUxpcWQxUVNybjJ1Zlc5YUpLRGpMQSUyRlBPJTJCM3F6eEFJZmNBYjYyRjYlMkJKU2JZb2JmSHFiTXdmUWRQNWtvWlVEbWJBa2dkTFJYWU83eWdoJTJCR3FJWFBKbjBEQ1ZLUXB4dzNTNHhjR1ZVaVV0S1RraHFUQktuUGo1YmpXYjZCek94JTJGWGJrU3dwYTNiJTJCNFU4M0dmU0FMcXJlNyUyQmJKWll6OW04ZnpBVXg5OFQ2QmxUWUhtRkRFcWtWRHhhVVFuRGM0ajRYVWlxT0ozWHQ2ajcweVpFMHJ1cXp3MXlBQTFqR3pETFVjZUloWE9WS2VZejJDaE52TXJoVzdhTkQzOUZpTU0ybzNMd0dPcUVCV1EySXZrc1VCV2UwR0RlWkVaeTllWTRLUVFraVkzVnNvNSUyRnpuVHVjejZTUSUyRjllY3JiaGZkaXpFYTdJd3k0ODkzRVBGejdTVURRMGlwSjZZa0FqNDhDWFFKMUVxSUclMkIlMkJoSzhPSGNLWElHVjFveSUyQjlnTGVXU3o5aTYxTzc5UkptQWZLdEFpdFJjbmVMRVV2VlU1a2xRVDdSYVZIZmZsJTJCeCUyRnRvdnBCOElOQ3hyZG1Nek5PbGU3QldhaWdHcEZWSUpITFN6NG56OGY3bHpBakxoOFFZSE15QSUzRCZYLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1EYXRlPTIwMjUwMTI3VDA2MDgxOVomWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JlgtQW16LUV4cGlyZXM9MzU5OSZYLUFtei1DcmVkZW50aWFsPUFTSUFZVElGSVBCRUpEWFdWUVZCJTJGMjAyNTAxMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1TaWduYXR1cmU9MmZmZTRiNGVjMGJhMjBhY2IxOGU1YzVhNjBkZGM4OWY5ZWFmNjJjNjk1OTc0MTBiZDNhM2M0NWEzOTE4NjM5MQ==&Expires=1737961699&Signature=hMiZxD-qlBOUWcjXzpEPNwAR0LTcfUREkB8tTUDF0V3VQTzBmz5Pb23jUEw3UCJ2Xgr~Sle2ZTmIsID8~KEOqDc~zggRv3th58SIUPsfzOAoXuez9HPHHiJkF8Nk~U44lSNpGuwL0Vhg8hjQMXDFE2TtUS~fIwLAIfPbxI5OCxBiJd7fSrya8W8aMKQ1Ik0CdojKpRgoyOPf8SMwd31BdexPd7xqqyUmkDgQbZG4hMzAMzOqA~k1CE9D2MWkW0VqGZcuoTy30mpuB38GkcdwUcYYuqo2CVDYdjYG2ZarpFdT7nxFyniMaIZdXsbmygIBoP-CX1IhsdrY7b4-rbpUAQ__&Key-Pair-Id=KSPLJWGOARK62", "address": "10.133.170.12:42664", "user-agent": "skopeo/1.14.2", "request-header": { "Accept-Encoding": [ "gzip" ], "Docker-Distribution-Api-Version": [ "registry/2.0" ], "Referer": [ "https://public.ecr.aws/v2/ubuntu/ubuntu/blobs/sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040" ], "User-Agent": [ "skopeo/1.14.2" ] }, ``` It rejected the download of the base image (exact mimetypes to be figured out - but it's shown as gzip now, oci images may have a separate one). Fetch service was in permissive mode so the build succeeded, but fetch service doesn't account for the base image. All types in this fetch service output: ```cmd $ jq '[.artifacts[].metadata.type] | unique' Downloads/ROCKRECIPEBUILD-262_metadata.json [ "application/gzip", # related to oci images "application/json", # related to oci images "application/vnd.debian.binary-package", "application/x.apt.packages", "application/x.apt.release", "application/x.apt.translation", "application/x.canonical.rockcraft", "application/x.canonical.snap-package", "application/x.canonical.snap-refresh", "application/x.git.upload-pack-advertisement", "application/x.git.upload-pack-result.ls-ref", "application/x.go.module.git-repo", "application/x.ubuntu.assertion.account-key", "application/x.ubuntu.assertion.snap-declaration", "application/x.ubuntu.assertion.snap-revision" ] ``` Subsequently, the support for this would also have to be added to the dependency service. ### To Reproduce Repo is at: https://code.launchpad.net/~canonical-security/shishirsub10-superalpaca/+git/shishirsub10-superalpaca/+ref/master ### Relevant log output ```shell Running build phase... Starting rockcraft, version 1.7.0 Logging execution to '/root/.local/state/rockcraft/log/rockcraft-20250127-060815.936766.log' Retrieving base ubuntu@24.04 for amd64 [27/Jan/2025:06:08:17 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 4039 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:17 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5384 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:18 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5196 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:19 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 4218 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:19 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5962 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:23 +0000] "CONNECT d2glxqk2uabbnd.cloudfront.net:443 HTTP/1.1" 200 29846545 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:24 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5962 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:25 +0000] "CONNECT d2glxqk2uabbnd.cloudfront.net:443 HTTP/1.1" 200 7384 "-" "Go-http-client/1.1" Retrieved base ubuntu@24.04 for amd64 Extracting ubuntu:24.04 Extracted ubuntu:24.04 [27/Jan/2025:06:08:27 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 4039 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:27 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5376 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:28 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5196 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:29 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 4218 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:29 +0000] "CONNECT public.ecr.aws:443 HTTP/1.1" 200 5966 "-" "Go-http-client/1.1" [27/Jan/2025:06:08:30 +0000] "CONNECT d2glxqk2uabbnd.cloudfront.net:443 HTTP/1.1" 200 7479 "-" "Go-http-client/1.1" Initialising lifecycle Installing build-packages ... ```

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b
Impact: 50
Quick Win: 17.5
Staleness: 45
Complexity: 65
Confidence: 75
Support Request: 15
keep open Fetch service lacks OCI image inspector for rockcraft builds; maintainer acknowledged and confirmed OCI inspector support is planned.

Update history

Date Change
created

Related issues

No related issues found above the similarity threshold.