Documentation
¶
Index ¶
- type ChangeLog
- type ChangeLogComponent
- type ChangeLogRelease
- type Changelog
- func (c *Changelog) CoreOSVersion() (currentURL, currentVersion, previousURL, previousVersion, diffURL string)
- func (c *Changelog) KubernetesVersion() string
- func (c *Changelog) PreviousReleaseTag() string
- func (c *Changelog) PullRequests() []models.ReleasePullRequest
- func (c *Changelog) Repositories() []models.ReleaseRepository
- type JobRunResult
- type OCPProject
- func (ocp *OCPProject) FullReleaseStream(release, stream, architecture string) string
- func (ocp *OCPProject) GetName() string
- func (ocp *OCPProject) GetRcDomain(architecture string) (domain string)
- func (ocp *OCPProject) GetStreams() []string
- func (ocp *OCPProject) IsProjectRelease(release v1.Release) bool
- type OKDProject
- func (okd *OKDProject) FullReleaseStream(release, stream, architecture string) string
- func (okd *OKDProject) GetName() string
- func (okd *OKDProject) GetRcDomain(architecture string) (domain string)
- func (okd *OKDProject) GetStreams() []string
- func (okd *OKDProject) IsProjectRelease(release v1.Release) bool
- type PayloadProject
- type ReleaseDetails
- type ReleaseLoader
- type ReleaseStream
- type ReleaseTag
- type ReleaseTags
- type UpdatedImage
- type UpdatedImageCommits
- type UpgradeResult
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 ChangeLogRelease ¶
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 (*Changelog) CoreOSVersion ¶
func (*Changelog) KubernetesVersion ¶
func (*Changelog) PreviousReleaseTag ¶
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 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 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.