v1alpha1

package
v0.0.0-...-8979ce9 Latest Latest
Warning

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

Go to latest
Published: May 17, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the rollouts v1alpha1 API group +kubebuilder:object:generate=true +groupName=rollouts.example.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "rollouts.example.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AnalysisPhase

type AnalysisPhase string

AnalysisPhase is the overall phase of an AnalysisRun, MetricResult, or Measurement

const (
	AnalysisPhasePending      AnalysisPhase = "Pending"
	AnalysisPhaseRunning      AnalysisPhase = "Running"
	AnalysisPhaseSuccessful   AnalysisPhase = "Successful"
	AnalysisPhaseFailed       AnalysisPhase = "Failed"
	AnalysisPhaseError        AnalysisPhase = "Error"
	AnalysisPhaseInconclusive AnalysisPhase = "Inconclusive"
)

Possible AnalysisPhase values

func (AnalysisPhase) Completed

func (as AnalysisPhase) Completed() bool

Completed returns whether or not the analysis status is considered completed

type AnalysisRun

type AnalysisRun struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AnalysisRunSpec   `json:"spec,omitempty"`
	Status AnalysisRunStatus `json:"status,omitempty"`
}

AnalysisRun is the Schema for the analysisruns API

func (*AnalysisRun) DeepCopy

func (in *AnalysisRun) DeepCopy() *AnalysisRun

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRun.

func (*AnalysisRun) DeepCopyInto

func (in *AnalysisRun) DeepCopyInto(out *AnalysisRun)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnalysisRun) DeepCopyObject

func (in *AnalysisRun) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AnalysisRunList

type AnalysisRunList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AnalysisRun `json:"items"`
}

AnalysisRunList contains a list of AnalysisRun

func (*AnalysisRunList) DeepCopy

func (in *AnalysisRunList) DeepCopy() *AnalysisRunList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunList.

func (*AnalysisRunList) DeepCopyInto

func (in *AnalysisRunList) DeepCopyInto(out *AnalysisRunList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnalysisRunList) DeepCopyObject

func (in *AnalysisRunList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AnalysisRunSpec

type AnalysisRunSpec struct {

	// Definition of a metric to analyse
	Metric Metric `json:"metric,omitempty"`
}

AnalysisRunSpec defines the desired state of AnalysisRun

func (*AnalysisRunSpec) DeepCopy

func (in *AnalysisRunSpec) DeepCopy() *AnalysisRunSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunSpec.

func (*AnalysisRunSpec) DeepCopyInto

func (in *AnalysisRunSpec) DeepCopyInto(out *AnalysisRunSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnalysisRunStatus

type AnalysisRunStatus struct {
	// Phase is the status of the analysis run
	Phase AnalysisPhase `json:"phase"`
	// Message is a message explaining current status
	Message string `json:"message,omitempty"`
	// MetricResults contains the metrics collected during the run
	MetricResults []MetricResult `json:"metricResults,omitempty"`
	// StartedAt indicates when the analysisRun first started
	StartedAt *metav1.Time `json:"startedAt,omitempty"`
	// RunSummary contains the final results from the metric executions
	RunSummary RunSummary `json:"runSummary,omitempty"`
	// DryRunSummary contains the final results from the metric executions in the dry-run mode
	DryRunSummary *RunSummary `json:"dryRunSummary,omitempty"`
}

AnalysisRunStatus is the status for a AnalysisRun resource

func (*AnalysisRunStatus) DeepCopy

func (in *AnalysisRunStatus) DeepCopy() *AnalysisRunStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunStatus.

func (*AnalysisRunStatus) DeepCopyInto

func (in *AnalysisRunStatus) DeepCopyInto(out *AnalysisRunStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnalysisTemplate

type AnalysisTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AnalysisTemplateSpec   `json:"spec,omitempty"`
	Status AnalysisTemplateStatus `json:"status,omitempty"`
}

AnalysisTemplate is the Schema for the analysistemplates API

func (*AnalysisTemplate) DeepCopy

func (in *AnalysisTemplate) DeepCopy() *AnalysisTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplate.

func (*AnalysisTemplate) DeepCopyInto

func (in *AnalysisTemplate) DeepCopyInto(out *AnalysisTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnalysisTemplate) DeepCopyObject

func (in *AnalysisTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AnalysisTemplateList

type AnalysisTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AnalysisTemplate `json:"items"`
}

AnalysisTemplateList contains a list of AnalysisTemplate

func (*AnalysisTemplateList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplateList.

func (*AnalysisTemplateList) DeepCopyInto

func (in *AnalysisTemplateList) DeepCopyInto(out *AnalysisTemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AnalysisTemplateList) DeepCopyObject

func (in *AnalysisTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AnalysisTemplateSpec

type AnalysisTemplateSpec struct {

	// Definition of a metric to analyse
	Metric Metric `json:"metric,omitempty"`
}

AnalysisTemplateSpec defines the desired state of AnalysisTemplate

func (*AnalysisTemplateSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplateSpec.

func (*AnalysisTemplateSpec) DeepCopyInto

func (in *AnalysisTemplateSpec) DeepCopyInto(out *AnalysisTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnalysisTemplateStatus

type AnalysisTemplateStatus struct {
}

AnalysisTemplateStatus defines the observed state of AnalysisTemplate

func (*AnalysisTemplateStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplateStatus.

func (*AnalysisTemplateStatus) DeepCopyInto

func (in *AnalysisTemplateStatus) DeepCopyInto(out *AnalysisTemplateStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterDecision

type ClusterDecision struct {
	// ClusterName is the name of the ArgoCD cluster.
	// +kubebuilder:validation:Required
	// +required
	ClusterName string `json:"clusterName"`

	// Name of AnalysisRun that should be successful
	// before removing this cluster decision
	PendingRemoval string `json:"pendingRemoval,omitempty"`

	// Name of AnalysisRun that should be successful
	// before this cluster decision is deemed 'ready'
	PendingReady string `json:"pendingReady,omitempty"`
}

ClusterDecision represents a decision from a placement An empty ClusterDecision indicates it is not scheduled yet.

func (*ClusterDecision) DeepCopy

func (in *ClusterDecision) DeepCopy() *ClusterDecision

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDecision.

func (*ClusterDecision) DeepCopyInto

func (in *ClusterDecision) DeepCopyInto(out *ClusterDecision)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Measurement

type Measurement struct {
	// Phase is the status of this single measurement
	Phase AnalysisPhase `json:"phase" protobuf:"bytes,1,opt,name=phase,casttype=AnalysisPhase"`
	// Message contains a message describing current condition (e.g. error messages)
	Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"`
	// StartedAt is the timestamp in which this measurement started to be measured
	StartedAt *metav1.Time `json:"startedAt,omitempty" protobuf:"bytes,3,opt,name=startedAt"`
	// FinishedAt is the timestamp in which this measurement completed and value was collected
	FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,4,opt,name=finishedAt"`
	// Value is the measured value of the metric
	Value string `json:"value,omitempty" protobuf:"bytes,5,opt,name=value"`
	// Metadata stores additional metadata about this metric result, used by the different providers
	// (e.g. kayenta run ID, job name)
	Metadata map[string]string `json:"metadata,omitempty" protobuf:"bytes,6,rep,name=metadata"`
	// ResumeAt is the  timestamp when the analysisRun should try to resume the measurement
	ResumeAt *metav1.Time `json:"resumeAt,omitempty" protobuf:"bytes,7,opt,name=resumeAt"`
}

Measurement is a point in time result value of a single metric, and the time it was measured

func (*Measurement) DeepCopy

func (in *Measurement) DeepCopy() *Measurement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Measurement.

func (*Measurement) DeepCopyInto

func (in *Measurement) DeepCopyInto(out *Measurement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metric

type Metric struct {
	// Condition to satisfy when executing a query
	SuccessCondition string `json:"successCondition"`

	// Metric provider configuration
	Provider MetricProvider `json:"provider"`
}

func (*Metric) DeepCopy

func (in *Metric) DeepCopy() *Metric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.

func (*Metric) DeepCopyInto

func (in *Metric) DeepCopyInto(out *Metric)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricProvider

type MetricProvider struct {
	// Prometheus specifies the prometheus metric to query
	Prometheus *PrometheusMetric `json:"prometheus,omitempty"`
}

MetricProvider which external system to use to verify the analysis Must use prometheus at this time.

func (*MetricProvider) DeepCopy

func (in *MetricProvider) DeepCopy() *MetricProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricProvider.

func (*MetricProvider) DeepCopyInto

func (in *MetricProvider) DeepCopyInto(out *MetricProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricResult

type MetricResult struct {
	// Name is the name of the metric
	Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
	// Phase is the overall aggregate status of the metric
	Phase AnalysisPhase `json:"phase" protobuf:"bytes,2,opt,name=phase,casttype=AnalysisPhase"`
	// Measurements holds the most recent measurements collected for the metric
	Measurements []Measurement `json:"measurements,omitempty" protobuf:"bytes,3,rep,name=measurements"`
	// Message contains a message describing current condition (e.g. error messages)
	Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"`
	// Count is the number of times the metric was measured without Error
	// This is equal to the sum of Successful, Failed, Inconclusive
	Count int32 `json:"count,omitempty" protobuf:"varint,5,opt,name=count"`
	// Successful is the number of times the metric was measured Successful
	Successful int32 `json:"successful,omitempty" protobuf:"varint,6,opt,name=successful"`
	// Failed is the number of times the metric was measured Failed
	Failed int32 `json:"failed,omitempty" protobuf:"varint,7,opt,name=failed"`
	// Inconclusive is the number of times the metric was measured Inconclusive
	Inconclusive int32 `json:"inconclusive,omitempty" protobuf:"varint,8,opt,name=inconclusive"`
	// Error is the number of times an error was encountered during measurement
	Error int32 `json:"error,omitempty" protobuf:"varint,9,opt,name=error"`
	// ConsecutiveError is the number of times an error was encountered during measurement in succession
	// Resets to zero when non-errors are encountered
	ConsecutiveError int32 `json:"consecutiveError,omitempty" protobuf:"varint,10,opt,name=consecutiveError"`
	// DryRun indicates whether this metric is running in a dry-run mode or not
	DryRun bool `json:"dryRun,omitempty" protobuf:"varint,11,opt,name=dryRun"`
	// Metadata stores additional metadata about this metric. It is used by different providers to store
	// the final state which gets used while taking measurements. For example, Prometheus uses this field
	// to store the final resolved query after substituting the template arguments.
	Metadata map[string]string `json:"metadata,omitempty" protobuf:"bytes,12,rep,name=metadata"`
}

MetricResult contain a list of the most recent measurements for a single metric along with counters on how often the measurement

func (*MetricResult) DeepCopy

func (in *MetricResult) DeepCopy() *MetricResult

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricResult.

func (*MetricResult) DeepCopyInto

func (in *MetricResult) DeepCopyInto(out *MetricResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Placement

type Placement struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PlacementSpec   `json:"spec,omitempty"`
	Status PlacementStatus `json:"status,omitempty"`
}

Placement is the Schema for the placements API

func (*Placement) DeepCopy

func (in *Placement) DeepCopy() *Placement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Placement.

func (*Placement) DeepCopyInto

func (in *Placement) DeepCopyInto(out *Placement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Placement) DeepCopyObject

func (in *Placement) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlacementList

type PlacementList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Placement `json:"items"`
}

PlacementList contains a list of Placement

func (*PlacementList) DeepCopy

func (in *PlacementList) DeepCopy() *PlacementList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementList.

func (*PlacementList) DeepCopyInto

func (in *PlacementList) DeepCopyInto(out *PlacementList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlacementList) DeepCopyObject

func (in *PlacementList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlacementSpec

type PlacementSpec struct {

	// Static list of ArgoCD clusters
	Clusters []string `json:"clusters,omitempty"`

	// TODO: reference to object intead of object name?
	// Name of AnalysisTemplate for analysing if the placement of an Application is ready
	RemoveAnalysis string `json:"removeAnalysis,omitempty"`

	// Name of AnalysisTemplate for analysing if the placement of an Application is ready
	ReadyAnalysis string `json:"readyAnalysis,omitempty"`
}

PlacementSpec defines the desired state of Placement

func (*PlacementSpec) DeepCopy

func (in *PlacementSpec) DeepCopy() *PlacementSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementSpec.

func (*PlacementSpec) DeepCopyInto

func (in *PlacementSpec) DeepCopyInto(out *PlacementSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlacementStatus

type PlacementStatus struct {

	// Decisions is a slice of decisions according to a placement
	// +kubebuilder:validation:Required
	// +required
	Decisions []ClusterDecision `json:"decisions"`
}

PlacementStatus defines the observed state of Placement

func (*PlacementStatus) DeepCopy

func (in *PlacementStatus) DeepCopy() *PlacementStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementStatus.

func (*PlacementStatus) DeepCopyInto

func (in *PlacementStatus) DeepCopyInto(out *PlacementStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrometheusMetric

type PrometheusMetric struct {
	// Address is the HTTP address and port of the prometheus server
	Address string `json:"address,omitempty"`
	// Query is a raw prometheus query to perform
	Query string `json:"query,omitempty"`
}

PrometheusMetric defines the prometheus query to perform canary analysis

func (*PrometheusMetric) DeepCopy

func (in *PrometheusMetric) DeepCopy() *PrometheusMetric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusMetric.

func (*PrometheusMetric) DeepCopyInto

func (in *PrometheusMetric) DeepCopyInto(out *PrometheusMetric)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RunSummary

type RunSummary struct {
	// This is equal to the sum of Successful, Failed, Inconclusive
	Count int32 `json:"count,omitempty" protobuf:"varint,1,opt,name=count"`
	// Successful is the number of times the metric was measured Successful
	Successful int32 `json:"successful,omitempty" protobuf:"varint,2,opt,name=successful"`
	// Failed is the number of times the metric was measured Failed
	Failed int32 `json:"failed,omitempty" protobuf:"varint,3,opt,name=failed"`
	// Inconclusive is the number of times the metric was measured Inconclusive
	Inconclusive int32 `json:"inconclusive,omitempty" protobuf:"varint,4,opt,name=inconclusive"`
	// Error is the number of times an error was encountered during measurement
	Error int32 `json:"error,omitempty" protobuf:"varint,5,opt,name=error"`
}

RunSummary contains the final results from the metric executions

func (*RunSummary) DeepCopy

func (in *RunSummary) DeepCopy() *RunSummary

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunSummary.

func (*RunSummary) DeepCopyInto

func (in *RunSummary) DeepCopyInto(out *RunSummary)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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