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{}