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

[Feat]: release freebsd images for zot #1663

Open
rchincha opened this issue Jul 31, 2023 · 11 comments · May be fixed by #1748
Open

[Feat]: release freebsd images for zot #1663

rchincha opened this issue Jul 31, 2023 · 11 comments · May be fixed by #1748
Labels
ci/cd feature New feature or request rm-external Roadmap item submitted by non-maintainers

Comments

@rchincha
Copy link
Contributor

Is your feature request related to a problem? Please describe.

PR #1660 adds support for freebsd binaries. This issue is being filed so that we track the remaining step of releasing freebsd container images for zot once an official freebsd-minimal image is available.

cc: @dfr

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

@rchincha rchincha added feature New feature or request rm-external Roadmap item submitted by non-maintainers ci/cd labels Jul 31, 2023
@rchincha rchincha linked a pull request Sep 2, 2023 that will close this issue
@rchincha
Copy link
Contributor Author

@dfr Noticed that the images you are pushing to dockerhub are docker images and not OCI. Is this intended? For example official ubuntu images are pushed as OCI images.

https://hub.docker.com/r/dougrabson/freebsd-minimal/tags

@dfr
Copy link
Contributor

dfr commented Oct 11, 2023

Not sure - I'm just building them using 'buildah mount' and 'buildah commit', using FreeBSD packaging tools to install things into the images.

How do I tell that they are docker images, not OCI? I don't see the difference when I compare one of my images with e.g. library/ubuntu using skopeo.

@rchincha
Copy link
Contributor Author

rchincha commented Oct 16, 2023

@dfr There are many tools. For example,

https://github.com/google/go-containerregistry/tree/main/cmd/crane

crane manifest <image> | jq .

$ crane manifest dougrabson/freebsd-minimal:13.2 | jq .

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",

@rchincha
Copy link
Contributor Author

In comparison, ubuntu

$ crane manifest ubuntu:latest | jq .

{
  "manifests": [
    {
      "digest": "sha256:c9cf959fd83770dfdefd8fb42cfef0761432af36a764c077aed54bbc5bb25368",
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      

@rchincha
Copy link
Contributor Author

@dfr So you are pushing docker images to dockerhub. Not sure if this was intentional - from what I understand, FreeBSD is standardizing on OCI?

@dfr
Copy link
Contributor

dfr commented Oct 17, 2023

This is strange - I pushed the same image to both docker.io and quay.io but the manifest type on dockerhub is different.

$ crane manifest docker.io/dougrabson/freebsd13.2-static:13.2p2 | jq .
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 1130,
      "digest": "sha256:4378443a2023c8804997bca2f5e8c33944085e2102e192af0dcea943053b59bb",
      "platform": {
        "architecture": "amd64",
        "os": "freebsd"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 1132,
      "digest": "sha256:cc62ec2301fdfab24d0e3976ff86ba16938ead54d638acdee1436d3ff5a3c1f9",
      "platform": {
        "architecture": "arm64",
        "os": "freebsd"
      }
    }
  ]
}
$ crane manifest quay.io/dougrabson/freebsd13.2-static:13.2p2 | jq .
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:4378443a2023c8804997bca2f5e8c33944085e2102e192af0dcea943053b59bb",
      "size": 1130,
      "platform": {
        "architecture": "amd64",
        "os": "freebsd"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:cc62ec2301fdfab24d0e3976ff86ba16938ead54d638acdee1436d3ff5a3c1f9",
      "size": 1132,
      "platform": {
        "architecture": "arm64",
        "os": "freebsd"
      }
    }
  ]
}

@rchincha
Copy link
Contributor Author

@dfr

Ah I see. So you are pushing a multi-arch image index (which is docker media-type) but the individual image manifests in that image index are all OCI.

Perhaps your buildah (if that is what you are using) version needs to be a more recent one. There are some known breakages with older versions.
containers/buildah#4395

buildah push --all -f oci ...

@dfr
Copy link
Contributor

dfr commented Oct 18, 2023

The image manifests above were built with buildah-1.31.0 which is after the bug you linked was fixed, as far as I can tell. Thanks for the link though - next time I push things to dockerhub and quay.io, I'll use the most recent buildah release and see if that helps.

@rchincha
Copy link
Contributor Author

@dfr do you have an anticipated time frame for an official freebsd image release? Asking so we can coordinate our release window accordingly if possible.

@dfr
Copy link
Contributor

dfr commented Oct 19, 2023

I can't give a very clear answer but conservatively, Q1 2024 is quite possible. One of the main blocking factors should be resolved with the upcoming 14.0 FreeBSD release and I plan to work with the release engineers after that to integrate my image building scripts into their process.

@rchincha
Copy link
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/cd feature New feature or request rm-external Roadmap item submitted by non-maintainers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants