releaseloader

package
v0.0.0-...-2356e84 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChangeLog

type ChangeLog struct {
	Components    []ChangeLogComponent `json:"components"`
	From          ChangeLogRelease     `json:"from"`
	To            ChangeLogRelease     `json:"to"`
	UpdatedImages []UpdatedImage       `json:"updatedImages"`
}

type ChangeLogComponent

type ChangeLogComponent struct {
	Name       string `json:"name"`
	Version    string `json:"version"`
	VersionURL string `json:"versionUrl"`
	From       string `json:"from"`
	FromURL    string `json:"fromUrl"`
	DiffURL    string `json:"diffUrl"`
}

type ChangeLogRelease

type ChangeLogRelease struct {
	Name    string `json:"name"`
	Created string `json:"created"`
	Digest  string `json:"digest"`
}

type Changelog

type Changelog struct {
	// contains filtered or unexported fields
}

Changelog scrapes the release controller's generated HTML for a release, and converts it into a more structured form. The release controller is currently only capable of delivering this data to us in rendered HTML, as it passes through several asynchronous systems before the release controller even sees it.

func NewChangelog

func NewChangelog(releaseTag, html string) *Changelog

func (*Changelog) CoreOSVersion

func (c *Changelog) CoreOSVersion() (currentURL, currentVersion, previousURL, previousVersion, diffURL string)

func (*Changelog) KubernetesVersion

func (c *Changelog) KubernetesVersion() string

func (*Changelog) PreviousReleaseTag

func (c *Changelog) PreviousReleaseTag() string

func (*Changelog) PullRequests

func (c *Changelog) PullRequests() []models.ReleasePullRequest

func (*Changelog) Repositories

func (c *Changelog) Repositories() []models.ReleaseRepository

type JobRunResult

type JobRunResult struct {
	State          string    `json:"state"`
	URL            string    `json:"url"`
	Retries        int       `json:"retries"`
	TransitionTime time.Time `json:"transitionTime"`
}

JobRunResult represents a job run returned from the release controller.

type OCPProject

type OCPProject struct{}

OCPProject implements PayloadProject for OpenShift Container Platform

func (*OCPProject) FullReleaseStream

func (ocp *OCPProject) FullReleaseStream(release, stream, architecture string) string

func (*OCPProject) GetName

func (ocp *OCPProject) GetName() string

func (*OCPProject) GetRcDomain

func (ocp *OCPProject) GetRcDomain(architecture string) (domain string)

func (*OCPProject) GetStreams

func (ocp *OCPProject) GetStreams() []string

func (*OCPProject) IsProjectRelease

func (ocp *OCPProject) IsProjectRelease(release v1.Release) bool

type OKDProject

type OKDProject struct{}

OKDProject implements PayloadProject for Origin Kubernetes Distribution

func (*OKDProject) FullReleaseStream

func (okd *OKDProject) FullReleaseStream(release, stream, architecture string) string

func (*OKDProject) GetName

func (okd *OKDProject) GetName() string

func (*OKDProject) GetRcDomain

func (okd *OKDProject) GetRcDomain(architecture string) (domain string)

func (*OKDProject) GetStreams

func (okd *OKDProject) GetStreams() []string

func (*OKDProject) IsProjectRelease

func (okd *OKDProject) IsProjectRelease(release v1.Release) bool

type PayloadProject

type PayloadProject interface {
	GetName() string

	// GetStreams returns the available stream types for this project (e.g. nightly, ci)
	GetStreams() []string

	// GetRcDomain returns the release-controller domain for the specified architecture.
	GetRcDomain(architecture string) (domain string)

	// IsProjectRelease returns true if the release (from Releases table) belongs to this project
	IsProjectRelease(release v1.Release) bool

	// FullReleaseStream builds a full releaseStream name to look for on the release-controller, or empty string if n/a
	FullReleaseStream(release, stream, architecture string) string
}

PayloadProject defines an interface for projects (such as OCP, OKD, etc.), providing methods to look up payloads from the release-controller of a project retrieve stream information, resolve release names, and construct URLs for fetching release tags and details.

type ReleaseDetails

type ReleaseDetails struct {
	Name          string                             `json:"name"`
	Results       map[string]map[string]JobRunResult `json:"results"`
	UpgradesTo    []UpgradeResult                    `json:"upgradesTo"`
	UpgradesFrom  []UpgradeResult                    `json:"upgradesFrom"`
	ChangeLog     []byte                             `json:"changeLog"`
	ChangeLogJSON ChangeLog                          `json:"changeLogJson"`
}

ReleaseDetails represents the details of a release from the release controller.

type ReleaseLoader

type ReleaseLoader struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, dbc *db.DB, bqClient *bqcachedclient.Client, releases, architectures []string, releaseConfigs []v1.Release) *ReleaseLoader

func (*ReleaseLoader) Errors

func (r *ReleaseLoader) Errors() []error

func (*ReleaseLoader) Load

func (r *ReleaseLoader) Load()

func (*ReleaseLoader) Name

func (r *ReleaseLoader) Name() string

type ReleaseStream

type ReleaseStream struct {
	Name         string
	Release      v1.Release
	Stream       string
	Architecture string
	Domain       string
}

type ReleaseTag

type ReleaseTag struct {
	Name        string `json:"name"`
	Phase       string `json:"phase"`
	PullSpec    string `json:"pullSpec"`
	DownloadURL string `json:"downloadURL"`
}

ReleaseTag is an individual release tag.

type ReleaseTags

type ReleaseTags struct {
	Name         string       `json:"name"`
	Tags         []ReleaseTag `json:"tags"`
	Architecture string       `json:"architecture"`
}

ReleaseTags represents the type returned from a release controller endpoint like https://amd64.ocp.releases.ci.openshift.org/api/v1/releasestream/4.9.0-0.nightly/tags

type UpdatedImage

type UpdatedImage struct {
	Name          string                `json:"name"`
	Path          string                `json:"path"`
	Commits       []UpdatedImageCommits `json:"commits"`
	FullChangeLog string                `json:"fullChangeLog"`
}

type UpdatedImageCommits

type UpdatedImageCommits struct {
	Issues  map[string]string `json:"issues"`
	Bugs    map[string]string `json:"bugs"`
	Subject string            `json:"subject"`
	PullID  int               `json:"pullID"`
	PullURL string            `json:"pullURL"`
}

type UpgradeResult

type UpgradeResult struct {
	From    string                  `json:"From"`
	To      string                  `json:"To"`
	Success int                     `json:"Success"`
	Failure int                     `json:"Failure"`
	Total   int                     `json:"Total"`
	History map[string]JobRunResult `json:"History"`
}

UpgradeResult represents an upgradesTo or upgradesFrom report generated by the release controller.

Jump to

Keyboard shortcuts

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