Documentation
¶
Index ¶
- Constants
- Variables
- func BuilderArch() string
- func CanArtifact(artifact string) bool
- func GetCommandBuildableArtifacts() []string
- func IsMetaJSON(path string) bool
- func SetArch(a string)
- func SetSchemaFromFile(r io.Reader) error
- type AdvisoryDiff
- type AdvisoryDiffItems
- type AliyunImage
- type Amis
- type Artifact
- type Build
- func (build *Build) FindAMI(region string) (string, error)
- func (build *Build) FindGCPImage() (string, error)
- func (build *Build) GetArtifact(artifact string) (*Artifact, error)
- func (build *Build) IsArtifact(path string) (string, bool)
- func (build *Build) Validate() []error
- func (build *Build) WriteMeta(path string, validate bool) error
- type BuildArtifacts
- type Cloudartifact
- type Extensions
- type Gcp
- type Git
- type Image
- type Koji
- type PackageSetDifferences
- type PackageSetDifferencesItems
- type S3
- type Tag
Constants ¶
const (
// CosaBuildsJSON is the COSA build.json file name
CosaBuildsJSON = "builds.json"
)
const (
// CosaMetaJSON is the meta.json file
CosaMetaJSON = "meta.json"
)
Variables ¶
var ( // ErrMetaFailsValidation is thrown on reading and invalid meta.json ErrMetaFailsValidation = errors.New("meta.json failed schema validation") // ErrMetaNotFound is thrown when a meta.json cannot be found ErrMetaNotFound = errors.New("meta.json was not found") )
var ( // ErrNoBuildsFound is thrown when a build is missing ErrNoBuildsFound = errors.New("no COSA builds found") )
var (
// SchemaJSON Schema document. Default the generated Schema.
SchemaJSON = generatedSchemaJSON
)
Functions ¶
func BuilderArch ¶
func BuilderArch() string
BuilderArch converts the GOARCH to the build arch. In other words, it translates amd64 to x86_64.
func CanArtifact ¶
CanArtifact reports whether an artifact name is buildable by COSA based on the meta.json name. CanArtifact is used to signal if the artifact is a known artifact type.
func GetCommandBuildableArtifacts ¶
func GetCommandBuildableArtifacts() []string
GetCommandBuildableArtifacts returns the string name of buildable artifacts through the `cosa build-*` CLI.
func IsMetaJSON ¶
IsMetaJSON is a helper for identifying if a file is meta.json
func SetSchemaFromFile ¶
SetSchemaFromFile sets the validation JSON Schema
Types ¶
type AdvisoryDiff ¶
type AdvisoryDiff []AdvisoryDiffItems
type AdvisoryDiffItems ¶
type AdvisoryDiffItems interface{}
type AliyunImage ¶
type Artifact ¶
type Artifact struct { Path string `json:"path"` Sha256 string `json:"sha256"` SizeInBytes float64 `json:"size,omitempty"` SkipCompression bool `json:"skip-compression,omitempty"` UncompressedSha256 string `json:"uncompressed-sha256,omitempty"` UncompressedSize int `json:"uncompressed-size,omitempty"` }
type Build ¶
type Build struct { AdvisoryDiffAgainstParent AdvisoryDiff `json:"parent-advisories-diff,omitempty"` AdvisoryDiffBetweenBuilds AdvisoryDiff `json:"advisories-diff,omitempty"` AlibabaAliyunUploads []AliyunImage `json:"aliyun,omitempty"` Amis []Amis `json:"amis,omitempty"` Architecture string `json:"coreos-assembler.basearch,omitempty"` Azure *Cloudartifact `json:"azure,omitempty"` BaseOsContainer *Image `json:"base-oscontainer,omitempty"` BuildArtifacts *BuildArtifacts `json:"images,omitempty"` BuildID string `json:"buildid"` BuildRef string `json:"ref,omitempty"` BuildSummary string `json:"summary,omitempty"` BuildTimeStamp string `json:"coreos-assembler.build-timestamp,omitempty"` BuildURL string `json:"build-url,omitempty"` ConfigGitRev string `json:"coreos-assembler.config-gitrev,omitempty"` ConfigVariant string `json:"coreos-assembler.config-variant,omitempty"` ContainerConfigGit *Git `json:"coreos-assembler.container-config-git,omitempty"` CoreOsSource string `json:"coreos-assembler.code-source,omitempty"` CosaContainerImageGit *Git `json:"coreos-assembler.container-image-git,omitempty"` CosaDelayedMetaMerge bool `json:"coreos-assembler.delayed-meta-merge,omitempty"` CosaImageChecksum string `json:"coreos-assembler.image-config-checksum,omitempty"` CosaImageVersion int `json:"coreos-assembler.image-genver,omitempty"` Extensions *Extensions `json:"extensions,omitempty"` ExtensionsContainer *Image `json:"extensions-container,omitempty"` FedoraCoreOsParentCommit string `json:"fedora-coreos.parent-commit,omitempty"` FedoraCoreOsParentVersion string `json:"fedora-coreos.parent-version,omitempty"` Gcp *Gcp `json:"gcp,omitempty"` GitDirty string `json:"coreos-assembler.config-dirty,omitempty"` IbmCloud []Cloudartifact `json:"ibmcloud,omitempty"` ImageInputChecksum string `json:"coreos-assembler.image-input-checksum,omitempty"` InputHashOfTheRpmOstree string `json:"rpm-ostree-inputhash"` Koji *Koji `json:"koji,omitempty"` KubevirtContainer *Image `json:"kubevirt,omitempty"` MetaStamp float64 `json:"coreos-assembler.meta-stamp,omitempty"` Name string `json:"name"` Oscontainer *Image `json:"oscontainer,omitempty"` OstreeCommit string `json:"ostree-commit"` OstreeContentBytesWritten int `json:"ostree-content-bytes-written,omitempty"` OstreeContentChecksum string `json:"ostree-content-checksum"` OstreeNCacheHits int `json:"ostree-n-cache-hits,omitempty"` OstreeNContentTotal int `json:"ostree-n-content-total,omitempty"` OstreeNContentWritten int `json:"ostree-n-content-written,omitempty"` OstreeNMetadataTotal int `json:"ostree-n-metadata-total,omitempty"` OstreeNMetadataWritten int `json:"ostree-n-metadata-written,omitempty"` OstreeTimestamp string `json:"ostree-timestamp"` OstreeVersion string `json:"ostree-version"` OverridesActive bool `json:"coreos-assembler.overrides-active,omitempty"` PkgdiffAgainstParent PackageSetDifferences `json:"parent-pkgdiff,omitempty"` PkgdiffBetweenBuilds PackageSetDifferences `json:"pkgdiff,omitempty"` PowerVirtualServer []Cloudartifact `json:"powervs,omitempty"` ReleasePayload *Image `json:"release-payload,omitempty"` S3 *S3 `json:"s3,omitempty"` YumReposGit *Git `json:"coreos-assembler.yumrepos-git,omitempty"` }
func FetchAndParseBuild ¶
func ParseBuild ¶
ParseBuild parses the meta.json and reutrns a build
func ReadBuild ¶
ReadBuild returns a build upon finding a meta.json. Returns a Build, the path string to the build, and an error (if any). If the buildID is not set, "latest" is assumed.
func (*Build) FindGCPImage ¶
func (*Build) GetArtifact ¶
GetArtifact returns an artifact by JSON tag
func (*Build) IsArtifact ¶
IsArtifact takes a path and returns the artifact type and a bool if the artifact is described in the build.
type BuildArtifacts ¶
type BuildArtifacts struct { Aliyun *Artifact `json:"aliyun,omitempty"` AppleHv *Artifact `json:"applehv,omitempty"` Aws *Artifact `json:"aws,omitempty"` Azure *Artifact `json:"azure,omitempty"` AzureStack *Artifact `json:"azurestack,omitempty"` Dasd *Artifact `json:"dasd,omitempty"` DigitalOcean *Artifact `json:"digitalocean,omitempty"` Exoscale *Artifact `json:"exoscale,omitempty"` ExtensionsContainer *Artifact `json:"extensions-container,omitempty"` Gcp *Artifact `json:"gcp,omitempty"` HyperV *Artifact `json:"hyperv,omitempty"` IbmCloud *Artifact `json:"ibmcloud,omitempty"` Initramfs *Artifact `json:"initramfs,omitempty"` Iso *Artifact `json:"iso,omitempty"` Kernel *Artifact `json:"kernel,omitempty"` KubeVirt *Artifact `json:"kubevirt,omitempty"` LegacyOscontainer *Artifact `json:"legacy-oscontainer,omitempty"` LiveInitramfs *Artifact `json:"live-initramfs,omitempty"` LiveIso *Artifact `json:"live-iso,omitempty"` LiveKernel *Artifact `json:"live-kernel,omitempty"` LiveRootfs *Artifact `json:"live-rootfs,omitempty"` Metal *Artifact `json:"metal,omitempty"` Metal4KNative *Artifact `json:"metal4k,omitempty"` Nutanix *Artifact `json:"nutanix,omitempty"` OciManifest *Artifact `json:"oci-manifest,omitempty"` OpenStack *Artifact `json:"openstack,omitempty"` Ostree Artifact `json:"ostree"` PowerVirtualServer *Artifact `json:"powervs,omitempty"` Qemu *Artifact `json:"qemu,omitempty"` SecureExecutionIgnitionPubKey *Artifact `json:"ignition-gpg-key,omitempty"` SecureExecutionQemu *Artifact `json:"qemu-secex,omitempty"` VirtualBox *Artifact `json:"virtualbox,omitempty"` Vmware *Artifact `json:"vmware,omitempty"` Vultr *Artifact `json:"vultr,omitempty"` }
type Cloudartifact ¶
type Extensions ¶
type PackageSetDifferences ¶
type PackageSetDifferences []PackageSetDifferencesItems
type PackageSetDifferencesItems ¶
type PackageSetDifferencesItems interface{}