builds

package
v0.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CosaBuildsJSON is the COSA build.json file name
	CosaBuildsJSON = "builds.json"
)
View Source
const (
	// CosaMetaJSON is the meta.json file
	CosaMetaJSON = "meta.json"
)

Variables

View Source
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")
)
View Source
var (
	// ErrNoBuildsFound is thrown when a build is missing
	ErrNoBuildsFound = errors.New("no COSA builds found")
)
View Source
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

func CanArtifact(artifact string) bool

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

func IsMetaJSON(path string) bool

IsMetaJSON is a helper for identifying if a file is meta.json

func SetArch

func SetArch(a string)

SetArch overrides the build arch

func SetSchemaFromFile

func SetSchemaFromFile(r io.Reader) error

SetSchemaFromFile sets the validation JSON Schema

Types

type AdvisoryDiff

type AdvisoryDiff []AdvisoryDiffItems

type AdvisoryDiffItems

type AdvisoryDiffItems interface{}

type AliyunImage

type AliyunImage struct {
	ImageID string `json:"id"`
	Region  string `json:"name"`
}

type Amis

type Amis struct {
	Hvm      string `json:"hvm"`
	Region   string `json:"name"`
	Snapshot string `json:"snapshot"`
}

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 FetchAndParseBuild(url string) (*Build, error)

func ParseBuild

func ParseBuild(path string) (*Build, error)

ParseBuild parses the meta.json and reutrns a build

func ReadBuild

func ReadBuild(dir, buildID, arch string) (*Build, string, error)

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) FindAMI

func (build *Build) FindAMI(region string) (string, error)

func (*Build) FindGCPImage

func (build *Build) FindGCPImage() (string, error)

func (*Build) GetArtifact

func (build *Build) GetArtifact(artifact string) (*Artifact, error)

GetArtifact returns an artifact by JSON tag

func (*Build) IsArtifact

func (build *Build) IsArtifact(path string) (string, bool)

IsArtifact takes a path and returns the artifact type and a bool if the artifact is described in the build.

func (*Build) Validate

func (build *Build) Validate() []error

Validate checks the build against the schema.

func (*Build) WriteMeta

func (build *Build) WriteMeta(path string, validate bool) error

WriteMeta records the meta-data. Writes are local only.

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 Cloudartifact struct {
	Bucket string `json:"bucket,omitempty"`
	Image  string `json:"image,omitempty"`
	Object string `json:"object,omitempty"`
	Region string `json:"region,omitempty"`
	URL    string `json:"url"`
}

type Extensions

type Extensions struct {
	Manifest       map[string]interface{} `json:"manifest"`
	Path           string                 `json:"path"`
	RpmOstreeState string                 `json:"rpm-ostree-state"`
	Sha256         string                 `json:"sha256"`
}

type Gcp

type Gcp struct {
	ImageFamily  string `json:"family,omitempty"`
	ImageName    string `json:"image"`
	ImageProject string `json:"project,omitempty"`
	URL          string `json:"url"`
}

type Git

type Git struct {
	Branch string `json:"branch,omitempty"`
	Commit string `json:"commit"`
	Dirty  string `json:"dirty,omitempty"`
	Origin string `json:"origin"`
}

type Image

type Image struct {
	Comment string `json:"comment,omitempty"`
	Digest  string `json:"digest,omitempty"`
	Image   string `json:"image"`
	Tags    []Tag  `json:"tags,omitempty"`
}

type Koji

type Koji struct {
	BuildRelease string  `json:"release,omitempty"`
	KojiBuildID  float64 `json:"build_id,omitempty"`
	KojiToken    string  `json:"token,omitempty"`
}

type PackageSetDifferences

type PackageSetDifferences []PackageSetDifferencesItems

type PackageSetDifferencesItems

type PackageSetDifferencesItems interface{}

type S3

type S3 struct {
	Bucket    string `json:"bucket,omitempty"`
	Key       string `json:"key,omitempty"`
	PublicURL string `json:"public-url,omitempty"`
}

type Tag

type Tag string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL