v1alpha1

package
v1.0.35 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2023 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev

Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev +k8s:deepcopy-gen=package,register

Index

Constants

View Source
const (
	// ComponentSys is a Frisbee component that is necessary for the execution of a test (e.g, Chaos, Grafana, ...)
	ComponentSys = Component("SYS")

	// ComponentSUT is a component that belongs to the system under testing.
	ComponentSUT = Component("SUT")
)
View Source
const (
	// LabelScenario points to the scenario.
	LabelScenario = "scenario.frisbee.dev/name"

	// LabelAction points to the action this resource is part of.
	LabelAction = "scenario.frisbee.dev/action"

	// LabelCreatedBy points to the controller who created this resource. It is used for listing children resources.
	LabelCreatedBy = "scenario.frisbee.dev/created-by"

	// LabelComponent describes the role of the component within the architecture (e.g, SUT or SYS).
	// It is used to handle differently the SUT resources from the SYS resources (e.g, delete the actions but not grafana).
	LabelComponent = "scenario.frisbee.dev/component"
)

https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/

View Source
const (
	// PrometheusDiscoverablePort is a prefix that all telemetry sidecars should use in the naming of
	// the exposed ports in order to be discoverable by Prometheus.
	PrometheusDiscoverablePort = "tel-"

	// MainContainerName  is the main application that run the service. A service can be either "Main" or "Sidecar".
	MainContainerName = "main"
)
View Source
const (
	// DrawMethod hints how to mark points on the Grafana dashboard.
	DrawMethod string = "grafana.frisbee.dev/draw"
	// DrawAsPoint will mark the creation and deletion of a service as distinct events.
	DrawAsPoint string = "point"
	// DrawAsRegion will draw a region starting from the creation of a service and ending to the deletion of the service.
	DrawAsRegion string = "range"
)
View Source
const (
	// ConditionCRInitialized indicates whether the workflow has been initialized.
	ConditionCRInitialized = ConditionType("Initialized")

	// ConditionAllJobsAreScheduled indicates that all jobs have been successfully scheduled.
	// Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc.
	ConditionAllJobsAreScheduled = ConditionType("AllJobsAreScheduled")

	// ConditionAllJobsAreCompleted indicates that all jobs have been successfully completed.
	// Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc.
	ConditionAllJobsAreCompleted = ConditionType("AllJobsAreCompleted")

	// ConditionJobUnexpectedTermination is used for a job that has been unexpectedly terminated.
	// The termination refers to both Success and Fail.
	ConditionJobUnexpectedTermination = ConditionType("UnexpectedTermination")

	// ConditionAssertionError indicate that an assertion condition is false.
	ConditionAssertionError = ConditionType("AssertError")

	// ConditionInvalidStateTransition indicates the transition of a resource into another state.
	// This is used for debugging.
	ConditionInvalidStateTransition = ConditionType("InvalidStateTransition")
)

These are valid conditions of pod.

View Source
const (
	// PhaseUninitialized means that request is not yet accepted by the controller.
	PhaseUninitialized = Phase("")

	// PhasePending means that the CR has been accepted by the Kubernetes cluster, but one of the child
	// jobs has not been created. This includes the time waiting for logical dependencies, Ports discovery,
	// data rewiring, and placement of Pods.
	PhasePending = Phase("Pending")

	// PhaseRunning means that all the child jobs of a CR have been created, and at least one job
	// is still running.
	PhaseRunning = Phase("Running")

	// PhaseSuccess means that all jobs in a CR have voluntarily exited, and the system is not going
	// to restart any of these Jobs.
	PhaseSuccess = Phase("Success")

	// PhaseFailed means that at least one job of the CR has terminated in a failure (exited with a
	// non-zero exit code or was stopped by the system).
	PhaseFailed = Phase("Failed")
)

These are the valid statuses of services. The following lifecycles are valid: PhaseUninitialized -> PhaseFailed PhaseUninitialized -> PhaseRunning* -> Completed PhaseUninitialized -> PhaseRunning* -> PhaseFailed PhaseUninitialized -> PhaseChaos* -> Completed PhaseUninitialized -> PhaseRunning* -> PhaseChaos -> Completed The asterix (*) Indicate that the same phase may appear recursively.

View Source
const (
	// ResourceDiscoveryLabel is used to discover Frisbee resources across different namespaces.
	ResourceDiscoveryLabel = "discover.frisbee.dev/name"
)
View Source
const (
	// SidecarTelemetry is an annotation's value indicating the annotation's key is a telemetry agent.
	SidecarTelemetry = "sidecar.frisbee.dev/telemetry"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "frisbee.dev", 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
)
View Source
var DefaultStartingDeadlineSeconds = int64(60)

DefaultStartingDeadlineSeconds hints to abort the experiment if the schedule is skewed more than 1 minuted.

View Source
var ExprMetricsValidator = regexp.MustCompile(`(?m)^(?P<reducer>\w+)\(\)\s+of\s+query\((?P<dashboardUID>\w+)\/(?P<panelID>\d+)\/(?P<metric>.+),\s+(?P<from>\w+),\s+(?P<to>\w+)\)\s+is\s+(?P<evaluator>\w+)\((?P<params>-*\d*[\.,\s]*\d*)\)\s*(for\s+\((?P<for>\w+)\))*\s*(every\((?P<every>\w+)\))*\s*$`)

ExprMetricsValidator expressions evaluated with https://regex101.com/r/8JrgyI/1

Functions

func BuildDependencyGraph added in v1.0.24

func BuildDependencyGraph(scenario *Scenario) (map[string]*Action, error)

BuildDependencyGraph validates the execution workflow. 1. Ensures that action names are qualified (since they are used as generators to jobs) 2. Ensures that there are no two actions with the same name. 3. Ensure that dependencies point to a valid action. 4. Ensure that macros point to a valid action.

func CheckAction added in v1.0.24

func CheckAction(action *Action, references map[string]*Action) error

func CheckForBoundedExecution added in v1.0.30

func CheckForBoundedExecution(callIndex map[string]*Action) error

func DrawPoint added in v1.0.24

func DrawPoint(obj metav1.Object) bool

func DrawRegion added in v1.0.24

func DrawRegion(obj metav1.Object) bool

func GetCreatedByLabel added in v1.0.24

func GetCreatedByLabel(obj metav1.Object) map[string]string

GetCreatedByLabel returns the creator of the resource.

func GetScenarioLabel added in v1.0.24

func GetScenarioLabel(obj metav1.Object) string

func HasScenarioLabel added in v1.0.24

func HasScenarioLabel(obj metav1.Object) bool

func ParameterValue added in v1.0.28

func ParameterValue(v interface{}) *apiextensionsv1.JSON

func PropagateLabels added in v1.0.24

func PropagateLabels(child metav1.Object, parent metav1.Object)

func SetActionLabel added in v1.0.29

func SetActionLabel(obj *metav1.ObjectMeta, actionName string)

func SetComponentLabel added in v1.0.24

func SetComponentLabel(obj *metav1.ObjectMeta, componentType Component)

func SetCreatedByLabel added in v1.0.24

func SetCreatedByLabel(child client.Object, parent client.Object)

func SetScenarioLabel added in v1.0.24

func SetScenarioLabel(obj *metav1.ObjectMeta, scenario string)

func ValidateDistribution added in v1.0.28

func ValidateDistribution(dist *DistributionSpec) error

func ValidateExpr added in v1.0.24

func ValidateExpr(expr *ConditionalExpr) error

func ValidatePlacement added in v1.0.24

func ValidatePlacement(policy *PlacementSpec, callIndex map[string]*Action) error

ValidatePlacement validates the placement policy. However, because it may involve references to other services, the validation requires a list of the defined actions.

func ValidateScheduler added in v1.0.24

func ValidateScheduler(instances int, sch *SchedulerSpec) error

func ValidateTolerate added in v1.0.24

func ValidateTolerate(_ *TolerateSpec) error

Types

type Action

type Action struct {
	// ActionType refers to a category of actions that can be associated with a specific controller.
	// +kubebuilder:validation:Enum=Service;Cluster;Chaos;Cascade;Delete;Call
	ActionType ActionType `json:"action"`

	// Name is a unique identifier of the action
	Name string `json:"name"`

	// DependsOn defines the conditions for the execution of this action
	// +optional
	DependsOn *WaitSpec `json:"depends,omitempty"`

	// Assert defines the conditions that must be maintained after the action has been started.
	// If the evaluation of the condition is false, the Scenario will abort immediately.
	// +optional
	Assert *ConditionalExpr `json:"assert,omitempty"`

	*EmbedActions `json:",inline"`
}

Action is a step in a workflow that defines a particular part of a testing process.

func (*Action) DeepCopy

func (in *Action) DeepCopy() *Action

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

func (*Action) DeepCopyInto

func (in *Action) DeepCopyInto(out *Action)

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

type ActionType added in v1.0.20

type ActionType string
const (
	// ActionService creates a new service.
	ActionService ActionType = "Service"
	// ActionCluster creates multiple services running in a shared context.
	ActionCluster ActionType = "Cluster"
	// ActionChaos injects failures into the running system.
	ActionChaos ActionType = "Chaos"
	// ActionCascade injects multiple failures into the running system.
	ActionCascade ActionType = "Cascade"
	// ActionDelete deletes a created Frisbee resource (i.e services, clusters,).
	ActionDelete ActionType = "Delete"
	// ActionCall starts a remote process execution, from the controller to the targeted services.
	ActionCall ActionType = "Call"
)

type Call added in v1.0.20

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

	Spec   CallSpec   `json:"spec,omitempty"`
	Status CallStatus `json:"status,omitempty"`
}

Call is the Schema for the Call API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Call) DeepCopy added in v1.0.20

func (in *Call) DeepCopy() *Call

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

func (*Call) DeepCopyInto added in v1.0.20

func (in *Call) DeepCopyInto(out *Call)

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

func (*Call) DeepCopyObject added in v1.0.20

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

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

func (*Call) Default added in v1.0.24

func (in *Call) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Call) GetReconcileStatus added in v1.0.20

func (in *Call) GetReconcileStatus() Lifecycle

func (*Call) SetReconcileStatus added in v1.0.20

func (in *Call) SetReconcileStatus(lifecycle Lifecycle)

func (*Call) SetupWebhookWithManager added in v1.0.24

func (in *Call) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Call) ValidateCreate added in v1.0.24

func (in *Call) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Call) ValidateDelete added in v1.0.24

func (in *Call) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Call) ValidateUpdate added in v1.0.24

func (in *Call) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type CallList added in v1.0.20

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

CallList contains a list of Call jobs.

func (*CallList) DeepCopy added in v1.0.20

func (in *CallList) DeepCopy() *CallList

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

func (*CallList) DeepCopyInto added in v1.0.20

func (in *CallList) DeepCopyInto(out *CallList)

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

func (*CallList) DeepCopyObject added in v1.0.20

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

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

type CallSpec added in v1.0.20

type CallSpec struct {
	// Callable is the name of the endpoint that will be called
	// +kubebuilder:validation:minlength=1
	Callable string `json:"callable,omitempty"`

	// Services is a list of services that will be stopped.
	// +kubebuilder:validation:minimum=1
	Services []string `json:"services"`

	// Expect declares a list of expected outputs. The number of expected outputs must be the same
	// as the number of defined services.
	// +optional
	Expect []MatchOutputs `json:"expect,omitempty"`

	// Tolerate specifies the conditions under which the call will fail. If undefined, the call fails
	// immediately when a call to service has failed.
	// +optional
	Tolerate *TolerateSpec `json:"tolerate,omitempty"`

	// Until defines the conditions under which the CR will stop spawning new jobs.
	// If used in conjunction with inputs, it will loop over inputs until the conditions are met.
	// +optional
	Until *ConditionalExpr `json:"until,omitempty"`

	// Schedule defines the interval between the invocations of the callable.
	// +optional
	Schedule *SchedulerSpec `json:"schedule,omitempty"`

	// Suspend flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`
}

CallSpec defines the desired state of Call.

func (*CallSpec) DeepCopy added in v1.0.20

func (in *CallSpec) DeepCopy() *CallSpec

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

func (*CallSpec) DeepCopyInto added in v1.0.20

func (in *CallSpec) DeepCopyInto(out *CallSpec)

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

type CallStatus added in v1.0.20

type CallStatus struct {
	Lifecycle `json:",inline"`

	// QueuedJobs is a list of services scheduled for stopping.
	// +optional
	QueuedJobs []Callable `json:"queuedJobs,omitempty"`

	// Timeline is the result of evaluating a timeline distribution.
	// +optional
	Timeline []metav1.Time `json:"timeline,omitempty"`

	// ScheduledJobs points to the next QueuedJobs.
	ScheduledJobs int `json:"scheduledJobs,omitempty"`

	// LastScheduleTime provide information about  the last time a Service was successfully scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
}

CallStatus defines the observed state of Call.

func (*CallStatus) DeepCopy added in v1.0.20

func (in *CallStatus) DeepCopy() *CallStatus

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

func (*CallStatus) DeepCopyInto added in v1.0.20

func (in *CallStatus) DeepCopyInto(out *CallStatus)

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

type Callable added in v1.0.20

type Callable struct {
	// Container specific the name of the container to which we will run the command
	Container string `json:"container"`

	// Container specifies a command and arguments to stop the targeted container in an application-specific manner.
	Command []string `json:"command"`
}

Callable is a script that is executed within the service container, and returns a value. For example, a callable can be a command for stopping the containers that run in the Pod.

func (*Callable) DeepCopy added in v1.0.20

func (in *Callable) DeepCopy() *Callable

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

func (*Callable) DeepCopyInto added in v1.0.20

func (in *Callable) DeepCopyInto(out *Callable)

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

type Cascade added in v1.0.16

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

	Spec   CascadeSpec   `json:"spec,omitempty"`
	Status CascadeStatus `json:"status,omitempty"`
}

Cascade is the Schema for the clusters API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Cascade) DeepCopy added in v1.0.16

func (in *Cascade) DeepCopy() *Cascade

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

func (*Cascade) DeepCopyInto added in v1.0.16

func (in *Cascade) DeepCopyInto(out *Cascade)

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

func (*Cascade) DeepCopyObject added in v1.0.16

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

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

func (*Cascade) Default added in v1.0.24

func (in *Cascade) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Cascade) GetReconcileStatus added in v1.0.16

func (in *Cascade) GetReconcileStatus() Lifecycle

func (*Cascade) SetReconcileStatus added in v1.0.16

func (in *Cascade) SetReconcileStatus(lifecycle Lifecycle)

func (*Cascade) SetupWebhookWithManager added in v1.0.24

func (in *Cascade) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Cascade) ValidateCreate added in v1.0.24

func (in *Cascade) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Cascade) ValidateDelete added in v1.0.24

func (in *Cascade) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Cascade) ValidateUpdate added in v1.0.24

func (in *Cascade) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type CascadeList added in v1.0.16

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

CascadeList contains a list of Cascades.

func (*CascadeList) DeepCopy added in v1.0.16

func (in *CascadeList) DeepCopy() *CascadeList

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

func (*CascadeList) DeepCopyInto added in v1.0.16

func (in *CascadeList) DeepCopyInto(out *CascadeList)

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

func (*CascadeList) DeepCopyObject added in v1.0.16

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

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

type CascadeSpec added in v1.0.16

type CascadeSpec struct {
	GenerateObjectFromTemplate `json:",inline"`

	// Schedule defines the interval between the creation of services within the group.
	// +optional
	Schedule *SchedulerSpec `json:"schedule,omitempty"`

	// Suspend flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`
}

CascadeSpec defines the desired state of Cascade.

func (*CascadeSpec) DeepCopy added in v1.0.16

func (in *CascadeSpec) DeepCopy() *CascadeSpec

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

func (*CascadeSpec) DeepCopyInto added in v1.0.16

func (in *CascadeSpec) DeepCopyInto(out *CascadeSpec)

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

type CascadeStatus added in v1.0.16

type CascadeStatus struct {
	Lifecycle `json:",inline"`

	// QueuedJobs is a list of Chaos jobs scheduled for creation by the cascade.
	// +optional
	QueuedJobs []ChaosSpec `json:"queuedJobs,omitempty"`

	// Timeline is the result of evaluating a timeline distribution.
	// +optional
	Timeline []metav1.Time `json:"timeline,omitempty"`

	// ScheduledJobs points to the next QueuedJobs.
	ScheduledJobs int `json:"scheduledJobs,omitempty"`

	// LastScheduleTime provide information about  the last time a Chaos job was successfully scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
}

CascadeStatus defines the observed state of Cascade.

func (*CascadeStatus) DeepCopy added in v1.0.16

func (in *CascadeStatus) DeepCopy() *CascadeStatus

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

func (*CascadeStatus) DeepCopyInto added in v1.0.16

func (in *CascadeStatus) DeepCopyInto(out *CascadeStatus)

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

type Chaos

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

	Spec   ChaosSpec   `json:"spec,omitempty"`
	Status ChaosStatus `json:"status,omitempty"`
}

Chaos is the Schema for the chaos API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Chaos) DeepCopy

func (in *Chaos) DeepCopy() *Chaos

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

func (*Chaos) DeepCopyInto

func (in *Chaos) DeepCopyInto(out *Chaos)

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

func (*Chaos) DeepCopyObject

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

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

func (*Chaos) Default

func (in *Chaos) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Chaos) GetReconcileStatus

func (in *Chaos) GetReconcileStatus() Lifecycle

func (*Chaos) SetReconcileStatus

func (in *Chaos) SetReconcileStatus(lifecycle Lifecycle)

func (*Chaos) SetupWebhookWithManager

func (in *Chaos) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Chaos) ValidateCreate

func (in *Chaos) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Chaos) ValidateDelete

func (in *Chaos) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Chaos) ValidateUpdate

func (in *Chaos) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type ChaosList

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

ChaosList contains a list of Chaos.

func (*ChaosList) DeepCopy

func (in *ChaosList) DeepCopy() *ChaosList

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

func (*ChaosList) DeepCopyInto

func (in *ChaosList) DeepCopyInto(out *ChaosList)

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

func (*ChaosList) DeepCopyObject

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

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

type ChaosSpec

type ChaosSpec struct {
	Raw string `json:"raw,omitempty"`
}

ChaosSpec defines the desired state of Chaos.

func (*ChaosSpec) DeepCopy

func (in *ChaosSpec) DeepCopy() *ChaosSpec

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

func (*ChaosSpec) DeepCopyInto

func (in *ChaosSpec) DeepCopyInto(out *ChaosSpec)

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

type ChaosStatus

type ChaosStatus struct {
	Lifecycle `json:",inline"`

	// LastScheduleTime provide information about  the last time a Pod was scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
}

ChaosStatus defines the observed state of Chaos.

func (*ChaosStatus) DeepCopy

func (in *ChaosStatus) DeepCopy() *ChaosStatus

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

func (*ChaosStatus) DeepCopyInto

func (in *ChaosStatus) DeepCopyInto(out *ChaosStatus)

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

type Cluster

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

	Spec   ClusterSpec   `json:"spec,omitempty"`
	Status ClusterStatus `json:"status,omitempty"`
}

Cluster is the Schema for the clusters API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

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

func (*Cluster) DeepCopyObject

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

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

func (*Cluster) Default

func (in *Cluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Cluster) GetReconcileStatus

func (in *Cluster) GetReconcileStatus() Lifecycle

func (*Cluster) SetReconcileStatus

func (in *Cluster) SetReconcileStatus(lifecycle Lifecycle)

func (*Cluster) SetupWebhookWithManager

func (in *Cluster) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Cluster) ValidateCreate

func (in *Cluster) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Cluster) ValidateDelete

func (in *Cluster) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Cluster) ValidateUpdate

func (in *Cluster) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type ClusterList

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

ClusterList contains a list of Cluster.

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

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

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

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

func (*ClusterList) DeepCopyObject

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

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

type ClusterSpec

type ClusterSpec struct {
	GenerateObjectFromTemplate `json:",inline"`

	// TestData defines a volume that will be mounted across the Scenario's Services.
	// +optional
	TestData *TestdataVolume `json:"testData,omitempty"`

	// DefaultDistributionSpec pre-calculates a scoped distribution that can be accessed by other entities
	// using  "distribution.name : default". This default distribution allows us to describe complex relations
	// across features managed by different entities  (e.g, place the largest dataset on the largest node).
	// +optional
	DefaultDistributionSpec *DistributionSpec `json:"defaultDistribution,omitempty"`

	// Resources defines how a set of resources will be distributed among the cluster's services.
	// +optional
	Resources *ResourceDistributionSpec `json:"resources,omitempty"`

	// Schedule defines the interval between the creation of services in the group.
	// +optional
	Schedule *SchedulerSpec `json:"schedule,omitempty"`

	// Placement defines rules for placing the containers across the available nodes.
	// +optional
	Placement *PlacementSpec `json:"placement,omitempty"`

	// Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started
	// executions.  Defaults to false.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`

	// Tolerate specifies the conditions under which the cluster will fail. If undefined, the cluster fails
	// immediately when a service has failed.
	// +optional
	Tolerate *TolerateSpec `json:"tolerate,omitempty"`
}

ClusterSpec defines the desired state of Cluster.

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

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

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

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

type ClusterStatus

type ClusterStatus struct {
	Lifecycle `json:",inline"`

	// DefaultDistribution keeps the evaluated expression of GenerateObjectFromTemplate.DefaultDistributionSpec.
	// +optional
	DefaultDistribution []float64 `json:"defaultDistribution,omitempty"`

	// QueuedJobs is a list of services scheduled for creation by the cluster.
	// +optional
	QueuedJobs []ServiceSpec `json:"queuedJobs,omitempty"`

	// Timeline is the result of evaluating a timeline distribution.
	// +optional
	Timeline []metav1.Time `json:"timeline,omitempty"`

	// ScheduledJobs points to the next QueuedJobs.
	ScheduledJobs int `json:"scheduledJobs,omitempty"`

	// LastScheduleTime provide information about  the last time a Service was successfully scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
}

ClusterStatus defines the observed state of Cluster.

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type Component added in v1.0.24

type Component string

func GetComponentLabel added in v1.0.24

func GetComponentLabel(obj metav1.Object) Component

type ConditionType

type ConditionType string

ConditionType is a valid value for WorkflowCondition.Type.

func (ConditionType) String

func (t ConditionType) String() string

type ConditionalExpr added in v1.0.16

type ConditionalExpr struct {
	// Metrics set a Grafana alert that will be triggered once the condition is met.
	// Parsing:
	// Grafana URL: http://grafana/d/A2EjFbsMk/ycsb-services?editPanel=86
	// metrics: A2EjFbsMk/86/Average (Panel/Dashboard/Metric)
	//
	// +optional
	// +nullable
	Metrics ExprMetrics `json:"metrics,omitempty"`

	// State describe the runtime condition that should be met after the action has been executed
	// Shall be defined using .Lifecycle() methods. The methods account only jobs that are managed by the object.
	// +optional
	// +nullable
	State ExprState `json:"state,omitempty"`
}

ConditionalExpr is a source of information about whether the state of the workflow after a given time is correct or not. This is needed because some scenarios may run in infinite-horizons.

func (*ConditionalExpr) DeepCopy added in v1.0.16

func (in *ConditionalExpr) DeepCopy() *ConditionalExpr

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

func (*ConditionalExpr) DeepCopyInto added in v1.0.16

func (in *ConditionalExpr) DeepCopyInto(out *ConditionalExpr)

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

func (*ConditionalExpr) HasMetricsExpr added in v1.0.16

func (in *ConditionalExpr) HasMetricsExpr() bool

func (*ConditionalExpr) HasStateExpr added in v1.0.16

func (in *ConditionalExpr) HasStateExpr() bool

func (*ConditionalExpr) IsZero added in v1.0.17

func (in *ConditionalExpr) IsZero() bool

type Decorators added in v1.0.10

type Decorators struct {
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// SetFields is used to populate fields. Used for dynamic assignment based templated inputs.
	// +optional
	SetFields []SetField `json:"setFields,omitempty"`

	// Telemetry is a list of referenced agents responsible to monitor the Service.
	// Agents are sidecar services will be deployed in the same Pod as the Service container.
	// +optional
	Telemetry []string `json:"telemetry,omitempty"`

	// IngressPort builds an ingress for making the service's port accessible outside the Kubernetes cluster.
	// +optional
	IngressPort *netv1.ServiceBackendPort `json:"ingressPort,omitempty"`
}

Decorators takes-in a PodSpec, add some functionality and returns it.

func (*Decorators) DeepCopy added in v1.0.10

func (in *Decorators) DeepCopy() *Decorators

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

func (*Decorators) DeepCopyInto added in v1.0.10

func (in *Decorators) DeepCopyInto(out *Decorators)

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

type DefaultClassifier added in v1.0.24

type DefaultClassifier struct{}

func (*DefaultClassifier) DeepCopy added in v1.0.24

func (in *DefaultClassifier) DeepCopy() *DefaultClassifier

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

func (*DefaultClassifier) DeepCopyInto added in v1.0.24

func (in *DefaultClassifier) DeepCopyInto(out *DefaultClassifier)

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

func (DefaultClassifier) IsFailed added in v1.0.24

func (DefaultClassifier) IsFailed(_ ...string) bool

func (DefaultClassifier) IsPending added in v1.0.24

func (DefaultClassifier) IsPending(_ ...string) bool

func (DefaultClassifier) IsRunning added in v1.0.24

func (DefaultClassifier) IsRunning(_ ...string) bool

func (DefaultClassifier) IsSuccessful added in v1.0.24

func (DefaultClassifier) IsSuccessful(_ ...string) bool

func (DefaultClassifier) IsTerminating added in v1.0.24

func (DefaultClassifier) IsTerminating(_ ...string) bool

func (DefaultClassifier) ListFailedJobs added in v1.0.24

func (DefaultClassifier) ListFailedJobs() []string

func (DefaultClassifier) ListPendingJobs added in v1.0.24

func (DefaultClassifier) ListPendingJobs() []string

func (DefaultClassifier) ListRunningJobs added in v1.0.24

func (DefaultClassifier) ListRunningJobs() []string

func (DefaultClassifier) ListSuccessfulJobs added in v1.0.24

func (DefaultClassifier) ListSuccessfulJobs() []string

func (DefaultClassifier) ListTerminatingJobs added in v1.0.24

func (DefaultClassifier) ListTerminatingJobs() []string

func (DefaultClassifier) NumFailedJobs added in v1.0.24

func (DefaultClassifier) NumFailedJobs() int

func (DefaultClassifier) NumPendingJobs added in v1.0.24

func (DefaultClassifier) NumPendingJobs() int

func (DefaultClassifier) NumRunningJobs added in v1.0.24

func (DefaultClassifier) NumRunningJobs() int

func (DefaultClassifier) NumSuccessfulJobs added in v1.0.24

func (DefaultClassifier) NumSuccessfulJobs() int

func (DefaultClassifier) NumTerminatingJobs added in v1.0.24

func (DefaultClassifier) NumTerminatingJobs() int

type DeleteSpec added in v1.0.17

type DeleteSpec struct {
	// Jobs is a list of jobs to be deleted. The format is {"kind":"name"}, e.g, {"service","client"}
	Jobs []string `json:"jobs"`
}

func (*DeleteSpec) DeepCopy added in v1.0.17

func (in *DeleteSpec) DeepCopy() *DeleteSpec

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

func (*DeleteSpec) DeepCopyInto added in v1.0.17

func (in *DeleteSpec) DeepCopyInto(out *DeleteSpec)

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

type Disk

type Disk struct {
	// ReadBPS limits read rate (bytes per second)
	ReadBPS string `json:"readbps,omitempty"`

	// ReadIOPS limits read rate (IO per second)
	ReadIOPS string `json:"readiops,omitempty"`

	// WriteBPS limits write rate (bytes per second)
	WriteBPS string `json:"writebps,omitempty"`

	// WriteIOPS limits write rate (IO per second)
	WriteIOPS string `json:"writeiops,omitempty"`
}

Disk specifies the capabilities of the emulated storage device.

func (*Disk) DeepCopy

func (in *Disk) DeepCopy() *Disk

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

func (*Disk) DeepCopyInto

func (in *Disk) DeepCopyInto(out *Disk)

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

type DistParamsHistogram added in v1.0.28

type DistParamsHistogram struct {
	Buckets []int64 `json:"buckets"`

	BlockSize int64 `json:"blockSize"`
}

DistParamsHistogram are parameters for the constant distribution.

func (*DistParamsHistogram) DeepCopy added in v1.0.28

func (in *DistParamsHistogram) DeepCopy() *DistParamsHistogram

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

func (*DistParamsHistogram) DeepCopyInto added in v1.0.28

func (in *DistParamsHistogram) DeepCopyInto(out *DistParamsHistogram)

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

type DistributionName added in v1.0.32

type DistributionName string
const (
	DistributionConstant  DistributionName = "constant"
	DistributionUniform   DistributionName = "uniform"
	DistributionZipfian   DistributionName = "zipfian"
	DistributionHistogram DistributionName = "histogram"

	// DistributionDefault instructs the controller to use an already evaluated distribution.
	DistributionDefault DistributionName = "default"
)

type DistributionSpec added in v1.0.28

type DistributionSpec struct {
	// +kubebuilder:validation:Enum=constant;uniform;zipfian;histogram;default
	Name DistributionName `json:"name"`

	// +optional
	*DistParamsHistogram `json:"histogram,omitempty"`
}

func (*DistributionSpec) DeepCopy added in v1.0.28

func (in *DistributionSpec) DeepCopy() *DistributionSpec

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

func (*DistributionSpec) DeepCopyInto added in v1.0.28

func (in *DistributionSpec) DeepCopyInto(out *DistributionSpec)

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

type EmbedActions

type EmbedActions struct {
	// +optional
	Service *GenerateObjectFromTemplate `json:"service,omitempty"`

	// +optional
	Cluster *ClusterSpec `json:"cluster,omitempty"`

	// +optional
	Chaos *GenerateObjectFromTemplate `json:"chaos,omitempty"`

	// +optional
	Cascade *CascadeSpec `json:"cascade,omitempty"`

	// +optional
	Delete *DeleteSpec `json:"delete,omitempty"`

	// +optional
	Call *CallSpec `json:"call,omitempty"`
}

func (*EmbedActions) DeepCopy

func (in *EmbedActions) DeepCopy() *EmbedActions

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

func (*EmbedActions) DeepCopyInto

func (in *EmbedActions) DeepCopyInto(out *EmbedActions)

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

type EmbedSpecs added in v1.0.10

type EmbedSpecs struct {
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

	// +optional
	Chaos *ChaosSpec `json:"chaos,omitempty"`
}

func (*EmbedSpecs) DeepCopy added in v1.0.10

func (in *EmbedSpecs) DeepCopy() *EmbedSpecs

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

func (*EmbedSpecs) DeepCopyInto added in v1.0.10

func (in *EmbedSpecs) DeepCopyInto(out *EmbedSpecs)

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

type ExprMetrics added in v1.0.16

type ExprMetrics string

func (ExprMetrics) Parse added in v1.0.24

func (query ExprMetrics) Parse() ([]string, error)

type ExprState added in v1.0.16

type ExprState string

func (ExprState) Evaluate added in v1.0.24

func (expr ExprState) Evaluate(state interface{}) (string, error)

Evaluate will evaluate the expression using the golang's templates enriched with the spring func map.

func (ExprState) GoValuate added in v1.0.24

func (expr ExprState) GoValuate(state interface{}) (bool, error)

GoValuate wraps the Evaluate function to the GoValuate expressions.

type GenerateObjectFromTemplate added in v1.0.28

type GenerateObjectFromTemplate struct {
	// TemplateRef refers to a  template (e.g, iperf-server).
	TemplateRef string `json:"templateRef"`

	// Until defines the conditions under which the CR will stop spawning new jobs.
	// If used in conjunction with inputs, it will loop over inputs until the conditions are met.
	// +optional
	Until *ConditionalExpr `json:"until,omitempty"`

	// MaxInstances dictate the number of objects to be created for the CR.
	// If no inputs are defined, then all instances will be initiated using the default parameters of the template.
	// Event used in conjunction with Until, MaxInstances as a max bound.
	// +optional
	MaxInstances int `json:"instances"`

	// UserParameters is a map of parameters passed to the objects.
	// Event used in conjunction with instances, if the number of instances is larger that the number of inputs,
	// then inputs are recursively iteration.
	// +optional
	Inputs []UserInputs `json:"inputs,omitempty"`
}

GenerateObjectFromTemplate generates a spec by parameterizing the templateRef with the given inputs.

func (*GenerateObjectFromTemplate) DeepCopy added in v1.0.28

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

func (*GenerateObjectFromTemplate) DeepCopyInto added in v1.0.28

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

func (*GenerateObjectFromTemplate) Generate added in v1.0.28

func (in *GenerateObjectFromTemplate) Generate(spec interface{}, userInputsSet uint, tSpec TemplateSpec, templateBody []byte) error

func (*GenerateObjectFromTemplate) GetInputs added in v1.0.28

func (in *GenerateObjectFromTemplate) GetInputs(inputIndex uint) UserInputs

func (*GenerateObjectFromTemplate) IterateInputs added in v1.0.28

func (in *GenerateObjectFromTemplate) IterateInputs(callBack func(nextInputSet uint) error) error

func (*GenerateObjectFromTemplate) Prepare added in v1.0.28

func (in *GenerateObjectFromTemplate) Prepare(allowMultipleInputs bool) error

Prepare automatically fills missing values from the template, according to the following rules: * Without inputs and without instances, there is 1 instance with default values. * Without instances, the number of instances is inferred by the number of inputs.

type JobStatus added in v1.0.28

type JobStatus interface {
	// IsPending returns true if the given jobs are Pending phase.
	IsPending(job ...string) bool
	// IsRunning returns true if the given jobs are Running phase.
	IsRunning(job ...string) bool
	// IsSuccessful returns true if the given jobs are Successful phase.
	IsSuccessful(job ...string) bool
	// IsFailed returns true if the given jobs are in the Failed phase.
	IsFailed(job ...string) bool
	// IsTerminating returns true if the given jobs are being deleted.
	IsTerminating(job ...string) bool
}

type Lifecycle

type Lifecycle struct {
	// Phase is a simple, high-level summary of where the Object is in its lifecycle.
	// The conditions array, the reason and message fields, and the individual container status
	// arrays contain more detail about the pod's status.
	Phase Phase `json:"phase,omitempty"`

	// Reason is A brief CamelCase message indicating details about why the service is in this Phase.
	// e.g. 'Evicted'
	// +optional
	Reason string `json:"reason,omitempty"`

	// Message provides more details for understanding the Reason.
	Message string `json:"message,omitempty"`

	// Conditions describe sequences of events that warrant the present Phase.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

func (*Lifecycle) DeepCopy

func (in *Lifecycle) DeepCopy() *Lifecycle

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

func (*Lifecycle) DeepCopyInto

func (in *Lifecycle) DeepCopyInto(out *Lifecycle)

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

type ListJobs added in v1.0.28

type ListJobs interface {
	// ListPendingJobs returns the name of jobs in Pending Phase.
	ListPendingJobs() []string
	// ListRunningJobs returns the name of jobs in Running Phase.
	ListRunningJobs() []string
	// ListSuccessfulJobs returns the name of jobs in Successful Phase.
	ListSuccessfulJobs() []string
	// ListFailedJobs returns the name of jobs in Failed Phase.
	ListFailedJobs() []string
	// ListTerminatingJobs returns the name of jobs that are being deleted.
	ListTerminatingJobs() []string
}

type MatchBy

type MatchBy struct {
	// ByName is a map of string keys and a set values that used to select services.
	// The key defines the namespace which services belong, and the values is a set of service names.
	// +optional
	ByName map[string][]string `json:"byName,omitempty"`

	// ByCluster defines the service group where services belong.
	// +optional
	ByCluster map[string]string `json:"byCluster,omitempty"`
}

MatchBy defines the selectors for services. If the all selectors are empty, all services will be selected.

func (*MatchBy) DeepCopy

func (in *MatchBy) DeepCopy() *MatchBy

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

func (*MatchBy) DeepCopyInto

func (in *MatchBy) DeepCopyInto(out *MatchBy)

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

type MatchOutputs added in v1.0.24

type MatchOutputs struct {
	// Stdout is a regex that describes the expected output from stdout. It cannot be longer than 1024 characters.
	// +optional
	// +kubebuilder:validation:MaxLength=1024
	Stdout *string `json:"stdout,omitempty"`

	// Stderr is a regex that describes the expected output from stderr. It cannot be longer than 1024 characters.
	// +optional
	// +kubebuilder:validation:MaxLength=1024
	Stderr *string `json:"stderr,omitempty"`
}

MatchOutputs defined a set of remote command outputs that must be matched. The limit for both Stdout and Stderr is 1024 characters.

func (*MatchOutputs) DeepCopy added in v1.0.24

func (in *MatchOutputs) DeepCopy() *MatchOutputs

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

func (*MatchOutputs) DeepCopyInto added in v1.0.24

func (in *MatchOutputs) DeepCopyInto(out *MatchOutputs)

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

type Mode

type Mode string

Mode represents the filter for selecting on of many.

const (
	// OneMode represents that the system will select one object randomly.
	OneMode Mode = "one"
	// AllMode represents that the system will select all objects  regardless of status
	// (not ready or not running pods includes).
	// Use this label carefully.
	AllMode Mode = "all"
	// FixedMode represents that the system will select a specific number of running objects.
	FixedMode Mode = "fixed"
	// FixedPercentMode to specify a fixed % of a cluster.
	FixedPercentMode Mode = "fixed-percent"
	// RandomMaxPercentMode to specify a maximum % of a cluster.
	RandomMaxPercentMode Mode = "random-max-percent"
)

func Convert

func Convert(mode string) Mode

type NIC

type NIC struct {
	Rate string `json:"rate,omitempty"`

	Latency string `json:"latency,omitempty"`
}

NIC specifies the capabilities of the emulated network interface.

func (*NIC) DeepCopy

func (in *NIC) DeepCopy() *NIC

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

func (*NIC) DeepCopyInto

func (in *NIC) DeepCopyInto(out *NIC)

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

type NumberOfJobs added in v1.0.28

type NumberOfJobs interface {
	// NumPendingJobs returns the number of jobs in Pending Phase.
	NumPendingJobs() int
	// NumRunningJobs returns the number of jobs in Running Phase.
	NumRunningJobs() int
	// NumSuccessfulJobs returns the number of jobs in Successful Phase.
	NumSuccessfulJobs() int
	// NumFailedJobs returns the number of jobs in Failed Phase.
	NumFailedJobs() int
	// NumTerminatingJobs returns the number of jobs that are being deleted.
	NumTerminatingJobs() int
}

type Parameters added in v1.0.28

type Parameters map[string]*apiextensionsv1.JSON

func (Parameters) DeepCopy added in v1.0.28

func (in Parameters) DeepCopy() Parameters

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

func (Parameters) DeepCopyInto added in v1.0.28

func (in Parameters) DeepCopyInto(out *Parameters)

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

func (Parameters) Unmarshal added in v1.0.28

func (in Parameters) Unmarshal() (map[string]interface{}, error)

type Phase

type Phase string

Phase is a simple, high-level summary of where the Object is in its lifecycle.

func (Phase) Is

func (p Phase) Is(refs ...Phase) bool

func (Phase) String added in v1.0.24

func (p Phase) String() string

type PlacementSpec added in v1.0.18

type PlacementSpec struct {
	// Collocate will place all the Services of this Cluster within the same node.
	// +optional
	Collocate bool `json:"collocate"`

	// ConflictsWith points to another Cluster whose Services cannot be located with this one.
	// For example, this is needed for placing the master nodes on a different failure domain than the slave nodes.
	ConflictsWith []string `json:"conflictsWith,omitempty"`

	// Nodes will place all the Services of this Cluster within the specific set of nodes.
	// +optional
	Nodes []string `json:"nodes,omitempty"`
}

PlacementSpec defines rules for placing the containers across the available nodes.

func (*PlacementSpec) DeepCopy added in v1.0.18

func (in *PlacementSpec) DeepCopy() *PlacementSpec

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

func (*PlacementSpec) DeepCopyInto added in v1.0.18

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

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

type ReconcileStatusAware added in v1.0.24

type ReconcileStatusAware interface {
	metav1.Object

	GetReconcileStatus() Lifecycle
	SetReconcileStatus(Lifecycle)
}

type ResourceDistribution added in v1.0.28

type ResourceDistribution []corev1.ResourceList

func (ResourceDistribution) DeepCopy added in v1.0.28

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

func (ResourceDistribution) DeepCopyInto added in v1.0.28

func (in ResourceDistribution) DeepCopyInto(out *ResourceDistribution)

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

func (ResourceDistribution) String added in v1.0.28

func (in ResourceDistribution) String() string

func (ResourceDistribution) Table added in v1.0.28

func (in ResourceDistribution) Table() (header []string, data [][]string)

type ResourceDistributionSpec added in v1.0.28

type ResourceDistributionSpec struct {
	// DistributionSpec defines how the TotalResources will be assigned to resources.
	DistributionSpec *DistributionSpec `json:"distribution"`

	// TotalResources defines the total resources that will be distributed among the cluster's services.
	TotalResources corev1.ResourceList `json:"total"`
}

func (*ResourceDistributionSpec) DeepCopy added in v1.0.28

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

func (*ResourceDistributionSpec) DeepCopyInto added in v1.0.28

func (in *ResourceDistributionSpec) DeepCopyInto(out *ResourceDistributionSpec)

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

type Resources

type Resources struct {
	// +optional
	Memory string `json:"memory,omitempty"`
	// +optional
	CPU string `json:"cpu,omitempty"`
	// +optional
	NIC *NIC `json:"nic,omitempty"`
	// +optional
	Disk *Disk `json:"disk,omitempty"`
}

Resources specifies limitations as to how the container will access host resources.

func (*Resources) DeepCopy

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto

func (in *Resources) DeepCopyInto(out *Resources)

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

type Scenario added in v1.0.23

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

	Spec   ScenarioSpec   `json:"spec,omitempty"`
	Status ScenarioStatus `json:"status,omitempty"`
}

Scenario is the Schema for the Scenarios API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Scenario) DeepCopy added in v1.0.23

func (in *Scenario) DeepCopy() *Scenario

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

func (*Scenario) DeepCopyInto added in v1.0.23

func (in *Scenario) DeepCopyInto(out *Scenario)

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

func (*Scenario) DeepCopyObject added in v1.0.23

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

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

func (*Scenario) Default added in v1.0.23

func (in *Scenario) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Scenario) GetReconcileStatus added in v1.0.23

func (in *Scenario) GetReconcileStatus() Lifecycle

func (*Scenario) SetReconcileStatus added in v1.0.23

func (in *Scenario) SetReconcileStatus(lifecycle Lifecycle)

func (*Scenario) SetupWebhookWithManager added in v1.0.23

func (in *Scenario) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Scenario) Table added in v1.0.24

func (in *Scenario) Table() (header []string, data [][]string)

func (*Scenario) ValidateCreate added in v1.0.23

func (in *Scenario) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Scenario) ValidateDelete added in v1.0.23

func (in *Scenario) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Scenario) ValidateUpdate added in v1.0.23

func (in *Scenario) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type ScenarioList added in v1.0.23

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

ScenarioList contains a list of Scenario.

func (*ScenarioList) DeepCopy added in v1.0.23

func (in *ScenarioList) DeepCopy() *ScenarioList

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

func (*ScenarioList) DeepCopyInto added in v1.0.23

func (in *ScenarioList) DeepCopyInto(out *ScenarioList)

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

func (*ScenarioList) DeepCopyObject added in v1.0.23

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

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

func (*ScenarioList) Table added in v1.0.24

func (in *ScenarioList) Table() (header []string, data [][]string)

Table returns a tabular form of the structure for pretty printing.

type ScenarioSpec added in v1.0.23

type ScenarioSpec struct {
	// TestData defines a volume that will be mounted across the Scenario's Services.
	TestData *TestdataVolume `json:"testData,omitempty"`

	// Actions are the tasks that will be taken.
	Actions []Action `json:"actions"`

	// Suspend flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`
}

ScenarioSpec defines the desired state of Scenario.

func (*ScenarioSpec) DeepCopy added in v1.0.23

func (in *ScenarioSpec) DeepCopy() *ScenarioSpec

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

func (*ScenarioSpec) DeepCopyInto added in v1.0.23

func (in *ScenarioSpec) DeepCopyInto(out *ScenarioSpec)

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

type ScenarioStatus added in v1.0.23

type ScenarioStatus struct {
	Lifecycle `json:",inline"`

	// ScheduledJobs is a list of references to the names of executed actions.
	// +optional
	ScheduledJobs []string `json:"scheduledJobs,omitempty"`

	// GrafanaEndpoint points to the local Grafana instance
	GrafanaEndpoint string `json:"grafanaEndpoint,omitempty"`

	// PrometheusEndpoint points to the local Prometheus instance
	PrometheusEndpoint string `json:"prometheusEndpoint,omitempty"`

	// Dataviewer points to the local Dataviewer instance
	DataviewerEndpoint string `json:"dataviewerEndpoint,omitempty"`
}

ScenarioStatus defines the observed state of Scenario.

func (*ScenarioStatus) DeepCopy added in v1.0.23

func (in *ScenarioStatus) DeepCopy() *ScenarioStatus

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

func (*ScenarioStatus) DeepCopyInto added in v1.0.23

func (in *ScenarioStatus) DeepCopyInto(out *ScenarioStatus)

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

func (*ScenarioStatus) Table added in v1.0.24

func (in *ScenarioStatus) Table() (header []string, data [][]string)

type SchedulerSpec

type SchedulerSpec struct {
	// Cron defines a cron job rule.
	//
	// Some rule examples:
	// "0 30 * * * *" means to "Every hour on the half hour"
	// "@hourly"      means to "Every hour"
	// "@every 1h30m" means to "Every hour thirty"
	//
	// More rule info: https://godoc.org/github.com/robfig/cron
	//
	// +optional
	Cron *string `json:"cron,omitempty"`

	// Timeline creates a timeline that honors the underlying distribution.
	// +optional
	Timeline *TimelineDistributionSpec `json:"timeline,omitempty"`

	// Event schedules a new every when an event has happened.
	// +optional
	Event *ConditionalExpr `json:"event,omitempty"`

	// StartingDeadlineSeconds is an optional deadline in seconds for starting the job if it misses scheduled
	// time for any reason. if we miss this deadline, we'll just wait till the next scheduled time
	//
	// +optional
	StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty"`
}

SchedulerSpec defines information about schedule of the chaos experiment. The scheduler will schedule up to spec.GenerateObjectFromTemplate.Instances or spec.GenerateObjectFromTemplate.Until.

func (*SchedulerSpec) DeepCopy

func (in *SchedulerSpec) DeepCopy() *SchedulerSpec

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

func (*SchedulerSpec) DeepCopyInto

func (in *SchedulerSpec) DeepCopyInto(out *SchedulerSpec)

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

type Service

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

	Spec   ServiceSpec   `json:"spec,omitempty"`
	Status ServiceStatus `json:"status,omitempty"`
}

Service is the Schema for the services API. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Service) AttachTestDataVolume added in v1.0.24

func (in *Service) AttachTestDataVolume(source *TestdataVolume, useSubPath bool)

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

func (*Service) DeepCopyObject

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

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

func (*Service) Default

func (in *Service) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Service) GetReconcileStatus

func (in *Service) GetReconcileStatus() Lifecycle

func (*Service) SetReconcileStatus

func (in *Service) SetReconcileStatus(lifecycle Lifecycle)

func (*Service) SetupWebhookWithManager

func (in *Service) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Service) ValidateCreate

func (in *Service) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Service) ValidateDelete

func (in *Service) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Service) ValidateUpdate

func (in *Service) ValidateUpdate(_ runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type ServiceList

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

ServiceList contains a list of Service.

func (*ServiceList) DeepCopy

func (in *ServiceList) DeepCopy() *ServiceList

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

func (*ServiceList) DeepCopyInto

func (in *ServiceList) DeepCopyInto(out *ServiceList)

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

func (*ServiceList) DeepCopyObject

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

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

type ServiceSelector

type ServiceSelector struct {
	// Match contains the rules to select target
	// +optional
	Match MatchBy `json:"match,omitempty"`

	// Mode defines which of the selected services to use. If undefined, all() is used
	// Supported mode: one / all / fixed / fixed-percent / random-max-percent
	// +optional
	Mode Mode `json:"mode"`

	// Value is required when the mode is set to `FixedPodMode` / `FixedPercentPodMod` / `RandomMaxPercentPodMod`.
	// If `FixedPodMode`, provide an integer of pods to do chaos action.
	// If `FixedPercentPodMod`, provide a number from 0-100 to specify the percent of pods the server can do chaos action.
	// IF `RandomMaxPercentPodMod`,  provide a number from 0-100 to specify the max percent of pods to do chaos action
	// +optional
	// +kubebuilder:validation:Enum=one;all;fixed;fixed-percent;random-max-percent
	Value string `json:"value,omitempty"`

	// Macro abstract selector parameters into a structured string (e.g, .cluster.master.all). Every parsed field is
	// represents an inner structure of the selector.
	// In case of invalid macro, the selector will return empty results.
	// Macro conflicts with any other parameter.
	// +optional
	Macro *string `json:"macro,omitempty"`
}

func (*ServiceSelector) DeepCopy

func (in *ServiceSelector) DeepCopy() *ServiceSelector

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

func (*ServiceSelector) DeepCopyInto

func (in *ServiceSelector) DeepCopyInto(out *ServiceSelector)

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

type ServiceSpec

type ServiceSpec struct {
	// +optional
	Decorators Decorators `json:"decorators,omitempty"`

	// +optional
	Callables map[string]Callable `json:"callables,omitempty"`

	corev1.PodSpec `json:",inline"`
}

ServiceSpec defines the desired state of Service.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

type ServiceStatus

type ServiceStatus struct {
	Lifecycle `json:",inline"`

	// LastScheduleTime provide information about  the last time a Pod was scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
}

ServiceStatus defines the observed state of Service.

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

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

type SetField added in v1.0.14

type SetField struct {
	// Field is the path to the field whose value will be replaced.
	// Examples: Containers.0.Ports.0
	Field string `json:"field"`
	Value string `json:"value"`
}

func (*SetField) DeepCopy added in v1.0.14

func (in *SetField) DeepCopy() *SetField

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

func (*SetField) DeepCopyInto added in v1.0.14

func (in *SetField) DeepCopyInto(out *SetField)

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

type StateAggregationFunctions added in v1.0.24

type StateAggregationFunctions interface {
	JobStatus
	NumberOfJobs
	ListJobs
}

StateAggregationFunctions is a set of aggregation functions for managing the lifecycle of different resources.

type Template

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

	Spec   TemplateSpec   `json:"spec,omitempty"`
	Status TemplateStatus `json:"status,omitempty"`
}

Template is the Schema for the templates API +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*Template) DeepCopy

func (in *Template) DeepCopy() *Template

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

func (*Template) DeepCopyInto

func (in *Template) DeepCopyInto(out *Template)

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

func (*Template) DeepCopyObject

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

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

func (*Template) Default

func (in *Template) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*Template) GetReconcileStatus

func (in *Template) GetReconcileStatus() Lifecycle

func (*Template) SetReconcileStatus

func (in *Template) SetReconcileStatus(lifecycle Lifecycle)

func (*Template) SetupWebhookWithManager

func (in *Template) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Template) ValidateCreate

func (in *Template) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Template) ValidateDelete

func (in *Template) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Template) ValidateUpdate

func (in *Template) ValidateUpdate(runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type TemplateInputs added in v1.0.28

type TemplateInputs struct {
	// Parameters are user-set values that are dynamically evaluated
	// +optional
	Parameters Parameters `json:"parameters,omitempty"`

	// Namespace returns the namespace from which the template is called from.
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Scenario returns the scenario from which the template is called from.
	// +optional
	Scenario string `json:"scenario,omitempty"`
}

func (*TemplateInputs) DeepCopy added in v1.0.28

func (in *TemplateInputs) DeepCopy() *TemplateInputs

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

func (*TemplateInputs) DeepCopyInto added in v1.0.28

func (in *TemplateInputs) DeepCopyInto(out *TemplateInputs)

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

type TemplateList

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

TemplateList contains a list of Template.

func (*TemplateList) DeepCopy

func (in *TemplateList) DeepCopy() *TemplateList

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

func (*TemplateList) DeepCopyInto

func (in *TemplateList) DeepCopyInto(out *TemplateList)

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

func (*TemplateList) DeepCopyObject

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

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

type TemplateSpec

type TemplateSpec struct {
	// Inputs are dynamic fields that populate the spec.
	// +optional
	Inputs *TemplateInputs `json:"inputs,omitempty"`

	// EmbedSpecs point to the Frisbee specs that can be templated.
	*EmbedSpecs `json:",inline"`
}

TemplateSpec defines the desired state of Template.

func (*TemplateSpec) DeepCopy

func (in *TemplateSpec) DeepCopy() *TemplateSpec

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

func (*TemplateSpec) DeepCopyInto

func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec)

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

type TemplateStatus

type TemplateStatus struct {
	Lifecycle `json:",inline"`
}

TemplateStatus defines the observed state of Template.

func (*TemplateStatus) DeepCopy

func (in *TemplateStatus) DeepCopy() *TemplateStatus

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

func (*TemplateStatus) DeepCopyInto

func (in *TemplateStatus) DeepCopyInto(out *TemplateStatus)

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

type TestdataVolume added in v1.0.27

type TestdataVolume struct {
	Claim v1.PersistentVolumeClaimVolumeSource `json:"volume,omitempty"`

	// GlobalNamespace if disabled, all containers see the name root directory. If enabled, each container
	// sees its own namespace.
	// +optional
	GlobalNamespace bool `json:"globalNamespace,omitempty"`
}

func (*TestdataVolume) DeepCopy added in v1.0.27

func (in *TestdataVolume) DeepCopy() *TestdataVolume

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

func (*TestdataVolume) DeepCopyInto added in v1.0.27

func (in *TestdataVolume) DeepCopyInto(out *TestdataVolume)

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

type Timeline added in v1.0.28

type Timeline []metav1.Time

func (Timeline) DeepCopy added in v1.0.28

func (in Timeline) DeepCopy() Timeline

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

func (Timeline) DeepCopyInto added in v1.0.28

func (in Timeline) DeepCopyInto(out *Timeline)

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

func (Timeline) Next added in v1.0.28

func (in Timeline) Next(ref time.Time) time.Time

Next returns the next activation time, later than the given time.

func (Timeline) String added in v1.0.28

func (in Timeline) String() string

type TimelineDistributionSpec added in v1.0.28

type TimelineDistributionSpec struct {
	// DistributionSpec defines how the TotalDuration will be divided into time-based events.
	DistributionSpec *DistributionSpec `json:"distribution"`

	// TotalDuration defines the total duration within which events will happen.
	TotalDuration *metav1.Duration `json:"total"`
}

func (*TimelineDistributionSpec) DeepCopy added in v1.0.28

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

func (*TimelineDistributionSpec) DeepCopyInto added in v1.0.28

func (in *TimelineDistributionSpec) DeepCopyInto(out *TimelineDistributionSpec)

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

type TolerateSpec

type TolerateSpec struct {
	// FailedJobs indicate the number of services that may fail before the cluster fails itself.
	// +optional
	// +kubebuilder:validation:Minimum=1
	FailedJobs int `json:"failedJobs"`
}

TolerateSpec specifies the system's ability to continue operating despite failures or malfunctions. If tolerate is enable, the cluster will remain "alive" even if some services have failed. Such failures are likely to happen as part of a Chaos experiment.

func (*TolerateSpec) DeepCopy

func (in *TolerateSpec) DeepCopy() *TolerateSpec

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

func (*TolerateSpec) DeepCopyInto

func (in *TolerateSpec) DeepCopyInto(out *TolerateSpec)

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

func (*TolerateSpec) String

func (in *TolerateSpec) String() string

type UserInputs added in v1.0.28

type UserInputs map[string]*apiextensionsv1.JSON

func (UserInputs) Unmarshal added in v1.0.28

func (u UserInputs) Unmarshal() (map[string]interface{}, error)

type VirtualObject added in v1.0.17

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

	Spec   VirtualObjectSpec   `json:"spec,omitempty"`
	Status VirtualObjectStatus `json:"status,omitempty"`
}

VirtualObject is a CRD without a dedicated controller. Practically, it is just an entry in the Kubernetes API that is used as placeholder for action like Delete and Call.

func (*VirtualObject) DeepCopy added in v1.0.17

func (in *VirtualObject) DeepCopy() *VirtualObject

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

func (*VirtualObject) DeepCopyInto added in v1.0.17

func (in *VirtualObject) DeepCopyInto(out *VirtualObject)

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

func (*VirtualObject) DeepCopyObject added in v1.0.17

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

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

func (*VirtualObject) GetReconcileStatus added in v1.0.17

func (in *VirtualObject) GetReconcileStatus() Lifecycle

func (*VirtualObject) SetReconcileStatus added in v1.0.17

func (in *VirtualObject) SetReconcileStatus(lifecycle Lifecycle)

func (*VirtualObject) Table added in v1.0.24

func (in *VirtualObject) Table() (header []string, data [][]string)

type VirtualObjectList added in v1.0.17

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

VirtualObjectList contains a list of Virtual Objects.

func (*VirtualObjectList) DeepCopy added in v1.0.17

func (in *VirtualObjectList) DeepCopy() *VirtualObjectList

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

func (*VirtualObjectList) DeepCopyInto added in v1.0.17

func (in *VirtualObjectList) DeepCopyInto(out *VirtualObjectList)

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

func (*VirtualObjectList) DeepCopyObject added in v1.0.17

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

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

func (*VirtualObjectList) Table added in v1.0.28

func (in *VirtualObjectList) Table() (header []string, data [][]string)

type VirtualObjectSpec added in v1.0.17

type VirtualObjectSpec struct{}

func (*VirtualObjectSpec) DeepCopy added in v1.0.17

func (in *VirtualObjectSpec) DeepCopy() *VirtualObjectSpec

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

func (*VirtualObjectSpec) DeepCopyInto added in v1.0.17

func (in *VirtualObjectSpec) DeepCopyInto(out *VirtualObjectSpec)

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

type VirtualObjectStatus added in v1.0.17

type VirtualObjectStatus struct {
	Lifecycle `json:",inline"`

	// Data contains the configuration data.
	// Each key must consist of alphanumeric characters, '-', '_' or '.'.
	// Values with non-UTF-8 byte sequences must use the BinaryData field.
	// The keys stored in Data must not overlap with the keys in
	// the BinaryData field, this is enforced during validation process.
	// +optional
	Data map[string]string `json:"data,omitempty"`
}

func (*VirtualObjectStatus) DeepCopy added in v1.0.17

func (in *VirtualObjectStatus) DeepCopy() *VirtualObjectStatus

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

func (*VirtualObjectStatus) DeepCopyInto added in v1.0.17

func (in *VirtualObjectStatus) DeepCopyInto(out *VirtualObjectStatus)

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

func (*VirtualObjectStatus) Table added in v1.0.24

func (in *VirtualObjectStatus) Table() (header []string, data [][]string)

type WaitSpec

type WaitSpec struct {
	// Running waits for the given groups to be running
	// +optional
	Running []string `json:"running,omitempty"`

	// Success waits for the given groups to be succeeded
	// +optional
	Success []string `json:"success,omitempty"`

	// After is the time offset since the beginning of this action.
	// +optional
	After *metav1.Duration `json:"after,omitempty"`
}

func (*WaitSpec) DeepCopy

func (in *WaitSpec) DeepCopy() *WaitSpec

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

func (*WaitSpec) DeepCopyInto

func (in *WaitSpec) DeepCopyInto(out *WaitSpec)

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