metadata

package
v0.0.0-...-7d92a45 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dimension

type Dimension struct {
	Description       string `json:"description,omitempty"`
	Cloudprovider     string `json:"cloudprovider,omitempty"`
	KubernetesVersion string `json:"k8sVersion,omitempty"`
	OperatingSystem   string `json:"operating_system,omitempty"`
}

Dimension describes the basic dimension of a test

type Metadata

type Metadata struct {
	// Short description of the flavor
	FlavorDescription string `json:"flavor_description,omitempty"`

	// Landscape describes the current dev,staging,canary,office or live.
	Landscape         string `json:"landscape,omitempty"`
	CloudProvider     string `json:"cloudprovider,omitempty"`
	KubernetesVersion string `json:"k8s_version,omitempty"`
	Region            string `json:"region,omitempty"`

	// todo: schrodit - add support to better persist multiple worker pools with multiple oss, versions and zones
	OperatingSystem        string            `json:"operating_system,omitempty"`
	OperatingSystemVersion string            `json:"operating_system_version,omitempty"`
	ContainerRuntime       string            `json:"container_runtime,omitempty"`
	Zone                   string            `json:"zone,omitempty"`
	ShootAnnotations       map[string]string `json:"shoot_annotations,omitempty"`

	// ComponentDescriptor describes the current component_descriptor of the direct landscape-setup components.
	// It is formatted as an array of components: { name: "my_component", version: "0.0.1" }
	ComponentDescriptor interface{} `json:"bom,omitempty"`

	// Name of the testrun crd object.
	Testrun TestrunMetadata `json:"tr"`

	// all environment configuration values
	Configuration map[string]string `json:"config,omitempty"`

	// Additional annotations form the testrun or steps
	Annotations map[string]string `json:"annotations,omitempty"`

	// Represents how many retries the testrun had
	Retries int `json:"retries,omitempty"`

	// Contains the measured telemetry data
	// Is only used for internal sharing.
	TelemetryData *TelemetryData `json:"-"`
}

Metadata is the common metadata of all outputs and summaries.

func FromTestrun

func FromTestrun(tr *tmv1beta1.Testrun) *Metadata

FromTestrun reads metadata from a testrun

func (*Metadata) CreateAnnotations

func (m *Metadata) CreateAnnotations() map[string]string

CreateAnnotations creates annotations of the metadata to be set on the respective workflow

func (*Metadata) DeepCopy

func (m *Metadata) DeepCopy() *Metadata

DeepCopy creates a copy of the metadata struct todo: deep copy annotations and components if set

func (*Metadata) GetDimensionFromMetadata

func (m *Metadata) GetDimensionFromMetadata(sep string) string

GetDimensionFromMetadata returns a string describing the dimension of the metadata

type StepExportMetadata

type StepExportMetadata struct {
	StepSummaryMetadata
	Phase     v1alpha1.NodePhase `json:"phase,omitempty"`
	StartTime *v1.Time           `json:"startTime,omitempty"`
	Duration  int64              `json:"duration,omitempty"`
	PodName   string             `json:"podName"`
}

StepExportMetadata is the metadata of one step of a testrun.

type StepPreComputed

type StepPreComputed struct {
	// same as StepSummary.Phase but mapping states to ints (Failed&Timeout -> 0, Succeeded -> 100); allows to do averages on success rate in dashboards
	PhaseNum *int `json:"phaseNum,omitempty"`
	// A K8S Version without the patch suffix, e.g. "1.16"
	K8SMajorMinorVersion string `json:"k8sMajMinVer,omitempty"`
	// Dummy field for grafana/log links
	LogsDisplayName string `json:"logsText,omitempty"`
	// Dummy field for argoui/workflow links
	ArgoDisplayName string `json:"argoText,omitempty"`
	// the cluster domain of the testmachinery (useful to build other URLs in dashboards)
	ClusterDomain string `json:"clusterDomain,omitempty"`
	// a provider field enriched with some dimension aspects (i.e. azure_multizone(NoPrivCtrs)
	ProviderEnhanced string `json:"providerEnhanced,omitempty"`
}

StepPreComputed contains fields that could be created at runtime via scripted fields, but are created statically for better performance and better support of grafana

type StepSummary

type StepSummary struct {
	Metadata    *StepSummaryMetadata `json:"tm,omitempty"`
	Type        SummaryType          `json:"type,omitempty"`
	Name        string               `json:"name,omitempty"`
	StepName    string               `json:"stepName,omitempty"`
	Labels      []string             `json:"labels,omitempty"`
	Phase       v1alpha1.NodePhase   `json:"phase,omitempty"`
	StartTime   *v1.Time             `json:"startTime,omitempty"`
	Duration    int64                `json:"duration,omitempty"`
	PreComputed *StepPreComputed     `json:"pre,omitempty"`
}

StepSummary is the result of a specific step.

type StepSummaryMetadata

type StepSummaryMetadata struct {
	Metadata
	StepName    string `json:"stepName,omitempty"`
	TestDefName string `json:"testdefinition,omitempty"`
}

StepSummaryMetadata is the metadata for a specific step result.

type SummaryType

type SummaryType string

SummaryType defines the type of a test result or summary

const (
	SummaryTypeTestrun  SummaryType = "testrun"
	SummaryTypeTeststep SummaryType = "teststep"
)

Summary types can be testrun or teststep

type TelemetryData

type TelemetryData struct {
	ResponseTime    *TelemetryResponseTimeDuration `json:"response_time,omitempty"`
	DowntimePeriods *TelemetryDowntimePeriods      `json:"downtime,omitempty"`
}

TelemetryData describes the measured telemetry data for the tested shoot

type TelemetryDowntimePeriods

type TelemetryDowntimePeriods struct {
	Min    int64 `json:"min"`
	Max    int64 `json:"max"`
	Avg    int64 `json:"avg"`
	Median int64 `json:"median"`
	Std    int64 `json:"std"`
}

TelemetryResponseTimeDuration describes the measured downtimes

type TelemetryResponseTimeDuration

type TelemetryResponseTimeDuration struct {
	Min    int   `json:"min"`
	Max    int   `json:"max"`
	Avg    int64 `json:"avg"`
	Median int64 `json:"median"`
	Std    int64 `json:"std"`
}

TelemetryResponseTimeDuration describes the response data of the telemetry measurement

type TestrunMetadata

type TestrunMetadata struct {
	// Name of the testrun crd object.
	ID string `json:"id"`

	// ID of the execution group this test belongs to
	ExecutionGroup string `json:"executionGroup,omitempty"`

	// StartTime of the testrun.
	StartTime *v1.Time `json:"startTime"`
}

TestrunMetadata represents the metadata of a testrun

type TestrunSummary

type TestrunSummary struct {
	Metadata      *Metadata              `json:"tm,omitempty"`
	Type          SummaryType            `json:"type,omitempty"`
	Phase         v1alpha1.WorkflowPhase `json:"phase,omitempty"`
	StartTime     *v1.Time               `json:"startTime,omitempty"`
	Duration      int64                  `json:"duration,omitempty"`
	TestsRun      int                    `json:"testsRun,omitempty"`
	TelemetryData *TelemetryData         `json:"telemetry,omitempty"`
}

TestrunSummary is the result of the overall testrun.

Jump to

Keyboard shortcuts

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