diff --git a/mantle/go.mod b/mantle/go.mod index 9467a6ff20..094167c948 100644 --- a/mantle/go.mod +++ b/mantle/go.mod @@ -19,7 +19,7 @@ require ( github.com/coreos/go-systemd/v22 v22.0.0 github.com/coreos/ignition/v2 v2.13.0 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f - github.com/coreos/stream-metadata-go v0.1.8 + github.com/coreos/stream-metadata-go v0.3.0 github.com/coreos/vcontext v0.0.0-20211021162308-f1dbbca7bef4 github.com/digitalocean/go-libvirt v0.0.0-20200810224808-b9c702499bf7 // indirect github.com/digitalocean/go-qemu v0.0.0-20200529005954-1b453d036a9c diff --git a/mantle/go.sum b/mantle/go.sum index 8c23a206fc..5aea52472b 100644 --- a/mantle/go.sum +++ b/mantle/go.sum @@ -88,8 +88,8 @@ github.com/coreos/ignition/v2 v2.13.0 h1:1ouW+d0nOuPUbLjxxOCnC+dWQxynr8Mt5exqJoC github.com/coreos/ignition/v2 v2.13.0/go.mod h1:HO1HWYWcvAIbHu6xewoKxPGBTyZ32FLwGIuipw5d63o= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/stream-metadata-go v0.1.8 h1:EbLlLia+Ekuqgh8nF4NNFs0jUqmhUbN4mWd1O8u8TQE= -github.com/coreos/stream-metadata-go v0.1.8/go.mod h1:RTjQyHgO/G37oJ3qnqYK6Z4TPZ5EsaabOtfMjVXmgko= +github.com/coreos/stream-metadata-go v0.3.0 h1:Bmoh7jC5yn/2SNiKBzbM4vqCDITo/BqMN5xZ3nt+tns= +github.com/coreos/stream-metadata-go v0.3.0/go.mod h1:RTjQyHgO/G37oJ3qnqYK6Z4TPZ5EsaabOtfMjVXmgko= github.com/coreos/vcontext v0.0.0-20211021162308-f1dbbca7bef4 h1:pfSsrvbjUFGINaPGy0mm2QKQKTdq7IcbUa+nQwsz2UM= github.com/coreos/vcontext v0.0.0-20211021162308-f1dbbca7bef4/go.mod h1:HckqHnP/HI41vS0bfVjJ20u6jD0biI5+68QwZm5Xb9U= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= diff --git a/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/cosa_v1.go b/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/cosa_v1.go index 1b9875a847..2b91dc4929 100644 --- a/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/cosa_v1.go +++ b/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/cosa_v1.go @@ -73,6 +73,7 @@ type Build struct { PkgdiffBetweenBuilds PackageSetDifferences `json:"pkgdiff,omitempty"` PowerVirtualServer []Cloudartifact `json:"powervs,omitempty"` ReleasePayload *Image `json:"release-payload,omitempty"` + S3 *S3 `json:"s3,omitempty"` } type BuildArtifacts struct { @@ -147,3 +148,9 @@ type Koji struct { type PackageSetDifferences []PackageSetDifferencesItems type PackageSetDifferencesItems interface{} + +type S3 struct { + Bucket string `json:"bucket,omitempty"` + Key string `json:"key,omitempty"` + PublicURL string `json:"public-url,omitempty"` +} diff --git a/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/schema_doc.go b/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/schema_doc.go index e1ddd61c12..50e2aee3e5 100644 --- a/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/schema_doc.go +++ b/mantle/vendor/github.com/coreos/coreos-assembler-schema/cosa/schema_doc.go @@ -225,6 +225,7 @@ var generatedSchemaJSON = `{ "parent-advisories-diff", "advisories-diff", "release-payload", + "s3", "coreos-assembler.basearch", "coreos-assembler.build-timestamp", @@ -266,6 +267,26 @@ var generatedSchemaJSON = `{ "default":"", "minLength": 1 }, + "s3": { + "type": "object", + "properties": { + "bucket": { + "$id":"#/properties/bucket", + "type":"string", + "title":"Bucket" + }, + "key": { + "$id": "#/properties/key", + "type":"string", + "title":"Key" + }, + "public-url": { + "$id":"#/properties/public-url", + "type":"string", + "title":"Public URL" + } + } + }, "koji": { "type": "object", "properties": { diff --git a/mantle/vendor/github.com/coreos/stream-metadata-go/release/release.go b/mantle/vendor/github.com/coreos/stream-metadata-go/release/release.go index f1be9bb4ee..16d7d8fceb 100644 --- a/mantle/vendor/github.com/coreos/stream-metadata-go/release/release.go +++ b/mantle/vendor/github.com/coreos/stream-metadata-go/release/release.go @@ -66,6 +66,7 @@ type Media struct { Openstack *PlatformBase `json:"openstack"` PowerVS *PlatformIBMCloud `json:"powervs"` Qemu *PlatformBase `json:"qemu"` + VirtualBox *PlatformBase `json:"virtualbox"` Vmware *PlatformBase `json:"vmware"` Vultr *PlatformBase `json:"vultr"` } @@ -102,7 +103,7 @@ type PlatformIBMCloud struct { // PlatformKubeVirt containerDisk metadata type PlatformKubeVirt struct { PlatformBase - Image *KubeVirtContainerDisk `json:"image"` + Image *ContainerImage `json:"image"` } // ImageFormat contains all artifacts for a single OS image @@ -126,6 +127,13 @@ type CloudImage struct { Image string `json:"image"` } +// ContainerImage represents a tagged container image +type ContainerImage struct { + // Preferred way to reference the image, which might be by tag or digest + Image string `json:"image"` + DigestRef string `json:"digest-ref"` +} + // GcpImage represents a GCP cloud image type GcpImage struct { Project string `json:"project"` @@ -139,8 +147,3 @@ type IBMCloudImage struct { Bucket string `json:"bucket"` Url string `json:"url"` } - -// KubeVirtContainerDisk describes a disk image inside a container which can be consumed by a KubeVirt based platform -type KubeVirtContainerDisk struct { - Image string `json:"image,omitempty"` -} diff --git a/mantle/vendor/github.com/coreos/stream-metadata-go/release/translate.go b/mantle/vendor/github.com/coreos/stream-metadata-go/release/translate.go index a8ea4baf89..27f4fe9791 100644 --- a/mantle/vendor/github.com/coreos/stream-metadata-go/release/translate.go +++ b/mantle/vendor/github.com/coreos/stream-metadata-go/release/translate.go @@ -46,12 +46,12 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { Formats: mapFormats(releaseArch.Media.Aliyun.Artifacts), } aliyunImages := stream.ReplicatedImage{ - Regions: make(map[string]stream.RegionImage), + Regions: make(map[string]stream.SingleImage), } if releaseArch.Media.Aliyun.Images != nil { for region, image := range releaseArch.Media.Aliyun.Images { - ri := stream.RegionImage{Release: rel.Release, Image: image.Image} - aliyunImages.Regions[region] = ri + si := stream.SingleImage{Release: rel.Release, Image: image.Image} + aliyunImages.Regions[region] = si } cloudImages.Aliyun = &aliyunImages @@ -63,13 +63,13 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { Release: rel.Release, Formats: mapFormats(releaseArch.Media.Aws.Artifacts), } - awsAmis := stream.AwsImage{ - Regions: make(map[string]stream.AwsRegionImage), + awsAmis := stream.ReplicatedImage{ + Regions: make(map[string]stream.SingleImage), } if releaseArch.Media.Aws.Images != nil { for region, ami := range releaseArch.Media.Aws.Images { - ri := stream.AwsRegionImage{Release: rel.Release, Image: ami.Image} - awsAmis.Regions[region] = ri + si := stream.SingleImage{Release: rel.Release, Image: ami.Image} + awsAmis.Regions[region] = si } cloudImages.Aws = &awsAmis @@ -138,8 +138,10 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { Formats: mapFormats(releaseArch.Media.KubeVirt.Artifacts), } if releaseArch.Media.KubeVirt.Image != nil { - cloudImages.KubeVirt = &stream.KubeVirtContainerDisk{ - Image: releaseArch.Media.KubeVirt.Image.Image, + cloudImages.KubeVirt = &stream.ContainerImage{ + Release: rel.Release, + Image: releaseArch.Media.KubeVirt.Image.Image, + DigestRef: releaseArch.Media.KubeVirt.Image.DigestRef, } } } @@ -163,17 +165,17 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { Formats: mapFormats(releaseArch.Media.Ibmcloud.Artifacts), } ibmcloudObjects := stream.ReplicatedObject{ - Regions: make(map[string]stream.RegionObject), + Regions: make(map[string]stream.SingleObject), } if releaseArch.Media.Ibmcloud.Images != nil { for region, object := range releaseArch.Media.Ibmcloud.Images { - ri := stream.RegionObject{ + so := stream.SingleObject{ Release: rel.Release, Object: object.Object, Bucket: object.Bucket, Url: object.Url, } - ibmcloudObjects.Regions[region] = ri + ibmcloudObjects.Regions[region] = so } cloudImages.Ibmcloud = &ibmcloudObjects @@ -211,17 +213,17 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { Formats: mapFormats(releaseArch.Media.PowerVS.Artifacts), } powervsObjects := stream.ReplicatedObject{ - Regions: make(map[string]stream.RegionObject), + Regions: make(map[string]stream.SingleObject), } if releaseArch.Media.PowerVS.Images != nil { for region, object := range releaseArch.Media.PowerVS.Images { - ri := stream.RegionObject{ + so := stream.SingleObject{ Release: rel.Release, Object: object.Object, Bucket: object.Bucket, Url: object.Url, } - powervsObjects.Regions[region] = ri + powervsObjects.Regions[region] = so } cloudImages.PowerVS = &powervsObjects @@ -235,13 +237,12 @@ func (releaseArch *Arch) toStreamArch(rel *Release) stream.Arch { } } - // if releaseArch.Media.Virtualbox != nil { - // virtualbox := StreamMediaDetails{ - // Release: rel.Release, - // Formats: releaseArch.Media.Virtualbox.Artifacts, - // } - // artifacts.Virtualbox = &virtualbox - // } + if releaseArch.Media.VirtualBox != nil { + artifacts["virtualbox"] = stream.PlatformArtifacts{ + Release: rel.Release, + Formats: mapFormats(releaseArch.Media.VirtualBox.Artifacts), + } + } if releaseArch.Media.Vmware != nil { artifacts["vmware"] = stream.PlatformArtifacts{ diff --git a/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream.go b/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream.go index 3f9b11c501..1ed9b1fd70 100644 --- a/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream.go +++ b/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream.go @@ -50,36 +50,44 @@ type Artifact struct { UncompressedSha256 string `json:"uncompressed-sha256,omitempty"` } -type KubeVirtContainerDisk struct { - Image string `json:"image"` -} - // Images contains images available in cloud providers type Images struct { - Aliyun *ReplicatedImage `json:"aliyun,omitempty"` - Aws *AwsImage `json:"aws,omitempty"` - Gcp *GcpImage `json:"gcp,omitempty"` - Ibmcloud *ReplicatedObject `json:"ibmcloud,omitempty"` - KubeVirt *KubeVirtContainerDisk `json:"kubevirt,omitempty"` - PowerVS *ReplicatedObject `json:"powervs,omitempty"` + Aliyun *ReplicatedImage `json:"aliyun,omitempty"` + Aws *AwsImage `json:"aws,omitempty"` + Gcp *GcpImage `json:"gcp,omitempty"` + Ibmcloud *ReplicatedObject `json:"ibmcloud,omitempty"` + KubeVirt *ContainerImage `json:"kubevirt,omitempty"` + PowerVS *ReplicatedObject `json:"powervs,omitempty"` } // ReplicatedImage represents an image in all regions of an AWS-like cloud type ReplicatedImage struct { - Regions map[string]RegionImage `json:"regions,omitempty"` + Regions map[string]SingleImage `json:"regions,omitempty"` } -// RegionImage represents an image in a single region of an AWS-like cloud -type RegionImage struct { +// SingleImage represents a globally-accessible image or an image in a +// single region of an AWS-like cloud +type SingleImage struct { Release string `json:"release"` Image string `json:"image"` } +// ContainerImage represents a tagged container image +type ContainerImage struct { + Release string `json:"release"` + // Preferred way to reference the image, which might be by tag or digest + Image string `json:"image"` + DigestRef string `json:"digest-ref"` +} + // AwsImage is a typedef for backwards compatibility. type AwsImage = ReplicatedImage // AwsRegionImage is a typedef for backwards compatibility. -type AwsRegionImage = RegionImage +type AwsRegionImage = SingleImage + +// RegionImage is a typedef for backwards compatibility. +type RegionImage = SingleImage // GcpImage represents a GCP cloud image type GcpImage struct { @@ -89,15 +97,20 @@ type GcpImage struct { Name string `json:"name"` } -// ReplicatedObject represents an object in all regions of an IBMCloud-like cloud +// ReplicatedObject represents an object in all regions of an IBMCloud-like +// cloud type ReplicatedObject struct { - Regions map[string]RegionObject `json:"regions,omitempty"` + Regions map[string]SingleObject `json:"regions,omitempty"` } -// RegionObject represents an IBMCloud/PowerVS cloud image -type RegionObject struct { +// SingleObject represents a globally-accessible cloud storage object, or +// an object in a single region of an IBMCloud-like cloud +type SingleObject struct { Release string `json:"release"` Object string `json:"object"` Bucket string `json:"bucket"` Url string `json:"url"` } + +// RegionObject is a typedef for backwards compatibility. +type RegionObject = SingleObject diff --git a/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream_utils.go b/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream_utils.go index 081572c7da..b1ca955641 100644 --- a/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream_utils.go +++ b/mantle/vendor/github.com/coreos/stream-metadata-go/stream/stream_utils.go @@ -19,7 +19,7 @@ func (st *Stream) GetArchitecture(archname string) (*Arch, error) { // GetAliyunRegionImage returns the release data (Image ID and release ID) for a particular // architecture and region. -func (st *Stream) GetAliyunRegionImage(archname, region string) (*RegionImage, error) { +func (st *Stream) GetAliyunRegionImage(archname, region string) (*SingleImage, error) { starch, err := st.GetArchitecture(archname) if err != nil { return nil, err @@ -28,7 +28,7 @@ func (st *Stream) GetAliyunRegionImage(archname, region string) (*RegionImage, e if aliyunimages == nil { return nil, fmt.Errorf("%s: No Aliyun images", st.FormatPrefix(archname)) } - var regionVal RegionImage + var regionVal SingleImage var ok bool if regionVal, ok = aliyunimages.Regions[region]; !ok { return nil, fmt.Errorf("%s: No Aliyun images in region %s", st.FormatPrefix(archname), region) @@ -48,7 +48,7 @@ func (st *Stream) GetAliyunImage(archname, region string) (string, error) { // GetAwsRegionImage returns the release data (AMI and release ID) for a particular // architecture and region. -func (st *Stream) GetAwsRegionImage(archname, region string) (*AwsRegionImage, error) { +func (st *Stream) GetAwsRegionImage(archname, region string) (*SingleImage, error) { starch, err := st.GetArchitecture(archname) if err != nil { return nil, err @@ -57,7 +57,7 @@ func (st *Stream) GetAwsRegionImage(archname, region string) (*AwsRegionImage, e if awsimages == nil { return nil, fmt.Errorf("%s: No AWS images", st.FormatPrefix(archname)) } - var regionVal AwsRegionImage + var regionVal SingleImage var ok bool if regionVal, ok = awsimages.Regions[region]; !ok { return nil, fmt.Errorf("%s: No AWS images in region %s", st.FormatPrefix(archname), region) diff --git a/mantle/vendor/modules.txt b/mantle/vendor/modules.txt index 318f0b79a8..4163f60016 100644 --- a/mantle/vendor/modules.txt +++ b/mantle/vendor/modules.txt @@ -219,7 +219,7 @@ github.com/coreos/ignition/v2/config/validate # github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f github.com/coreos/pkg/capnslog github.com/coreos/pkg/multierror -# github.com/coreos/stream-metadata-go v0.1.8 +# github.com/coreos/stream-metadata-go v0.3.0 github.com/coreos/stream-metadata-go/arch github.com/coreos/stream-metadata-go/fedoracoreos github.com/coreos/stream-metadata-go/fedoracoreos/internals