v1alpha1

package
v2.16.0 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the chaosmesh v1alpha1 API group +groupName=chaos-mesh.org

Index

Constants

View Source
const (
	// PauseAnnotationKey defines the annotation used to pause a chaos
	PauseAnnotationKey = "experiment.chaos-mesh.org/pause"
	LabelManagedBy     = "managed-by"
)
View Source
const (
	MethodGet  = "GET"
	MethodPost = "POST"
)
View Source
const (
	// TemplateTypeLabelKey is a label that represents the template type.
	TemplateTypeLabelKey = "template.chaos-mesh.org/type"
	// ManagedByLabelKey is a label that represents the tool being used
	// to manage the operation of the object.
	ManagedByLabelKey = "app.kubernetes.io/managed-by"
	// ManagedByLabelValue is the value that represents the object is
	// managed by Chaos Mesh.
	ManagedByLabelValue = "chaos-mesh"

	// TemplateNameAnnotationKey is an annotation that represents
	// the real name of the template.
	TemplateNameAnnotationKey = "template.chaos-mesh.org/name"
	// TemplateDescriptionAnnotationKey is an annotation that represents
	// the description of the template.
	TemplateDescriptionAnnotationKey = "template.chaos-mesh.org/description"

	// PrefixStatusCheckTemplate is the prefix of the name of a StatusCheckTemplate.
	PrefixStatusCheckTemplate = "template-status-check"
	// StatusCheckTemplateKey is the key that status check spec
	// saved in the template ConfigMap.
	StatusCheckTemplateKey = "spec"
)
View Source
const (
	LabelControlledBy       = "chaos-mesh.org/controlled-by"
	LabelWorkflow           = "chaos-mesh.org/workflow"
	WorkflowAnnotationAbort = "workflow.chaos-mesh.org/abort"
)
View Source
const (
	EntryCreated                         string = "EntryCreated"
	InvalidEntry                         string = "InvalidEntry"
	WorkflowAccomplished                 string = "WorkflowAccomplished"
	NodeAccomplished                     string = "NodeAccomplished"
	NodesCreated                         string = "NodesCreated"
	NodeDeadlineExceed                   string = "NodeDeadlineExceed"
	NodeDeadlineNotExceed                string = "NodeDeadlineNotExceed"
	NodeDeadlineOmitted                  string = "NodeDeadlineOmitted"
	ParentNodeDeadlineExceed             string = "ParentNodeDeadlineExceed"
	ChaosCRCreated                       string = "ChaosCRCreated"
	ChaosCRCreateFailed                  string = "ChaosCRCreateFailed"
	ChaosCRDeleted                       string = "ChaosCRDeleted"
	ChaosCRDeleteFailed                  string = "ChaosCRDeleteFailed"
	ChaosCRNotExists                     string = "ChaosCRNotExists"
	TaskPodSpawned                       string = "TaskPodSpawned"
	TaskPodSpawnFailed                   string = "TaskPodSpawnFailed"
	TaskPodPodCompleted                  string = "TaskPodPodCompleted"
	ConditionalBranchesSelected          string = "ConditionalBranchesSelected"
	RerunBySpecChanged                   string = "RerunBySpecChanged"
	StatusCheckCreated                   string = "StatusCheckCreated"
	StatusCheckCreatedFailed             string = "StatusCheckCreatedFailed"
	StatusCheckDeleted                   string = "StatusCheckDeleted"
	StatusCheckDeletedFailed             string = "StatusCheckDeletedFailed"
	StatusCheckCompleted                 string = "StatusCheckCompleted"
	StatusCheckNotExceedSuccessThreshold string = "StatusCheckNotExceedSuccessThreshold"
	ParentNodeAborted                    string = "ParentNodeAborted"
	WorkflowAborted                      string = "WorkflowAborted"
)

Reasons

View Source
const KindAWSChaos = "AWSChaos"
View Source
const KindAzureChaos = "AzureChaos"
View Source
const KindBlockChaos = "BlockChaos"
View Source
const KindDNSChaos = "DNSChaos"
View Source
const KindGCPChaos = "GCPChaos"
View Source
const KindHTTPChaos = "HTTPChaos"
View Source
const KindIOChaos = "IOChaos"
View Source
const KindJVMChaos = "JVMChaos"
View Source
const KindKernelChaos = "KernelChaos"
View Source
const KindNetworkChaos = "NetworkChaos"
View Source
const KindPhysicalMachine = "PhysicalMachine"
View Source
const KindPhysicalMachineChaos = "PhysicalMachineChaos"
View Source
const KindPodChaos = "PodChaos"
View Source
const KindPodHttpChaos = "PodHttpChaos"
View Source
const KindPodIOChaos = "PodIOChaos"
View Source
const KindPodNetworkChaos = "PodNetworkChaos"
View Source
const KindRemoteCluster = "RemoteCluster"
View Source
const KindSchedule = "Schedule"
View Source
const KindStatusCheck = "StatusCheck"
View Source
const KindStressChaos = "StressChaos"
View Source
const KindTimeChaos = "TimeChaos"
View Source
const KindWorkflow = "Workflow"
View Source
const KindWorkflowNode = "WorkflowNode"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "chaos-mesh.org", 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 ErrCanNotUpdateChaos = errors.New("Cannot update chaos spec")

updating spec of a chaos will have no effect, we'd better reject it

View Source
var StandardCronParser = cron.NewParser(
	cron.SecondOptional | cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor,
)

Functions

func AllKinds

func AllKinds() map[string]*ChaosKind

AllKinds returns all chaos kinds, key is name of Kind, value is an accessor for spawning Object and List

func AllKindsIncludeScheduleAndWorkflow

func AllKindsIncludeScheduleAndWorkflow() map[string]*ChaosKind

func AllScheduleItemKinds

func AllScheduleItemKinds() map[string]*ChaosKind

AllKinds returns all chaos kinds.

func FetchChaosByTemplateType

func FetchChaosByTemplateType(templateType TemplateType) (runtime.Object, error)

func GenerateTemplateName

func GenerateTemplateName(name string) string

func GetTemplateDescription

func GetTemplateDescription(cm v1.ConfigMap) string

func GetTemplateName

func GetTemplateName(cm v1.ConfigMap) string

func IsChaosTemplateType

func IsChaosTemplateType(target TemplateType) bool

func IsStatusCheckTemplate

func IsStatusCheckTemplate(cm v1.ConfigMap) bool

Types

type AWSChaos

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

	Spec   AWSChaosSpec   `json:"spec"`
	Status AWSChaosStatus `json:"status,omitempty"`
}

AWSChaos is the Schema for the awschaos API

func (*AWSChaos) DeepCopy

func (in *AWSChaos) DeepCopy() *AWSChaos

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

func (*AWSChaos) DeepCopyInto

func (in *AWSChaos) DeepCopyInto(out *AWSChaos)

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

func (*AWSChaos) DeepCopyObject

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

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

func (*AWSChaos) DurationExceeded

func (in *AWSChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*AWSChaos) GetObjectMeta

func (in *AWSChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*AWSChaos) GetRemoteCluster

func (in *AWSChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*AWSChaos) GetSelectorSpecs

func (obj *AWSChaos) GetSelectorSpecs() map[string]interface{}

func (*AWSChaos) GetSpecAndMetaString

func (in *AWSChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*AWSChaos) GetStatus

func (in *AWSChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*AWSChaos) IsDeleted

func (in *AWSChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*AWSChaos) IsOneShot

func (in *AWSChaos) IsOneShot() bool

func (*AWSChaos) IsPaused

func (in *AWSChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type AWSChaosAction

type AWSChaosAction string

AWSChaosAction represents the chaos action about aws.

const (
	// Ec2Stop represents the chaos action of stopping ec2.
	Ec2Stop AWSChaosAction = "ec2-stop"
	// Ec2Restart represents the chaos action of restarting ec2.
	Ec2Restart AWSChaosAction = "ec2-restart"
	// DetachVolume represents the chaos action of detaching the volume of ec2.
	DetachVolume AWSChaosAction = "detach-volume"
)

type AWSChaosList

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

AWSChaosList contains a list of AWSChaos

func (*AWSChaosList) DeepCopy

func (in *AWSChaosList) DeepCopy() *AWSChaosList

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

func (*AWSChaosList) DeepCopyInto

func (in *AWSChaosList) DeepCopyInto(out *AWSChaosList)

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

func (*AWSChaosList) DeepCopyList

func (in *AWSChaosList) DeepCopyList() GenericChaosList

func (*AWSChaosList) DeepCopyObject

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

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

func (*AWSChaosList) GetItems

func (in *AWSChaosList) GetItems() []GenericChaos

func (*AWSChaosList) ListChaos

func (in *AWSChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type AWSChaosSpec

type AWSChaosSpec struct {
	// Action defines the specific aws chaos action.
	// Supported action: ec2-stop / ec2-restart / detach-volume
	// Default action: ec2-stop
	Action AWSChaosAction `json:"action"`

	// Duration represents the duration of the chaos action.
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// SecretName defines the name of kubernetes secret.
	SecretName *string `json:"secretName,omitempty" webhook:",nilable"`

	AWSSelector `json:",inline"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

AWSChaosSpec is the content of the specification for an AWSChaos

func (*AWSChaosSpec) DeepCopy

func (in *AWSChaosSpec) DeepCopy() *AWSChaosSpec

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

func (*AWSChaosSpec) DeepCopyInto

func (in *AWSChaosSpec) DeepCopyInto(out *AWSChaosSpec)

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

func (*AWSChaosSpec) GetDuration

func (in *AWSChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type AWSChaosStatus

type AWSChaosStatus struct {
	ChaosStatus `json:",inline"`
}

AWSChaosStatus represents the status of an AWSChaos

func (*AWSChaosStatus) DeepCopy

func (in *AWSChaosStatus) DeepCopy() *AWSChaosStatus

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

func (*AWSChaosStatus) DeepCopyInto

func (in *AWSChaosStatus) DeepCopyInto(out *AWSChaosStatus)

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

type AWSSelector

type AWSSelector struct {

	// Endpoint indicates the endpoint of the aws server. Just used it in test now.
	// +ui:form:ignore
	Endpoint *string `json:"endpoint,omitempty"`

	// AWSRegion defines the region of aws.
	AWSRegion string `json:"awsRegion"`

	// Ec2Instance indicates the ID of the ec2 instance.
	Ec2Instance string `json:"ec2Instance"`

	// EbsVolume indicates the ID of the EBS volume.
	// Needed in detach-volume.
	// +ui:form:when=action=='detach-volume'
	EbsVolume *string `json:"volumeID,omitempty" webhook:"EbsVolume,nilable"`

	// DeviceName indicates the name of the device.
	// Needed in detach-volume.
	// +ui:form:when=action=='detach-volume'
	DeviceName *string `json:"deviceName,omitempty" webhook:"AWSDeviceName,nilable"`
}

func (*AWSSelector) DeepCopy

func (in *AWSSelector) DeepCopy() *AWSSelector

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

func (*AWSSelector) DeepCopyInto

func (in *AWSSelector) DeepCopyInto(out *AWSSelector)

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

func (*AWSSelector) Id

func (selector *AWSSelector) Id() string

type AttrOverrideSpec

type AttrOverrideSpec struct {
	Ino    *uint64   `json:"ino,omitempty"`
	Size   *uint64   `json:"size,omitempty"`
	Blocks *uint64   `json:"blocks,omitempty"`
	Atime  *Timespec `json:"atime,omitempty"`
	Mtime  *Timespec `json:"mtime,omitempty"`
	Ctime  *Timespec `json:"ctime,omitempty"`
	Kind   *FileType `json:"kind,omitempty"`
	Perm   *uint16   `json:"perm,omitempty"`
	Nlink  *uint32   `json:"nlink,omitempty"`
	UID    *uint32   `json:"uid,omitempty"`
	GID    *uint32   `json:"gid,omitempty"`
	Rdev   *uint32   `json:"rdev,omitempty"`
}

AttrOverrideSpec represents an override of attribution

func (*AttrOverrideSpec) DeepCopy

func (in *AttrOverrideSpec) DeepCopy() *AttrOverrideSpec

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

func (*AttrOverrideSpec) DeepCopyInto

func (in *AttrOverrideSpec) DeepCopyInto(out *AttrOverrideSpec)

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

type AzureChaos

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

	Spec   AzureChaosSpec   `json:"spec"`
	Status AzureChaosStatus `json:"status,omitempty"`
}

AzureChaos is the Schema for the azurechaos API

func (*AzureChaos) DeepCopy

func (in *AzureChaos) DeepCopy() *AzureChaos

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

func (*AzureChaos) DeepCopyInto

func (in *AzureChaos) DeepCopyInto(out *AzureChaos)

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

func (*AzureChaos) DeepCopyObject

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

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

func (*AzureChaos) DurationExceeded

func (in *AzureChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*AzureChaos) GetObjectMeta

func (in *AzureChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*AzureChaos) GetRemoteCluster

func (in *AzureChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*AzureChaos) GetSelectorSpecs

func (obj *AzureChaos) GetSelectorSpecs() map[string]interface{}

func (*AzureChaos) GetSpecAndMetaString

func (in *AzureChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*AzureChaos) GetStatus

func (in *AzureChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*AzureChaos) IsDeleted

func (in *AzureChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*AzureChaos) IsOneShot

func (in *AzureChaos) IsOneShot() bool

func (*AzureChaos) IsPaused

func (in *AzureChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type AzureChaosAction

type AzureChaosAction string

AzureChaosAction represents the chaos action about azure.

const (
	// AzureVmStop represents the chaos action of stopping vm.
	AzureVmStop AzureChaosAction = "vm-stop"
	// AzureVmRestart represents the chaos action of restarting vm.
	AzureVmRestart AzureChaosAction = "vm-restart"
	// AzureDiskDetach represents the chaos action of detaching the disk from vm.
	AzureDiskDetach AzureChaosAction = "disk-detach"
)

type AzureChaosList

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

AzureChaosList contains a list of AzureChaos

func (*AzureChaosList) DeepCopy

func (in *AzureChaosList) DeepCopy() *AzureChaosList

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

func (*AzureChaosList) DeepCopyInto

func (in *AzureChaosList) DeepCopyInto(out *AzureChaosList)

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

func (*AzureChaosList) DeepCopyList

func (in *AzureChaosList) DeepCopyList() GenericChaosList

func (*AzureChaosList) DeepCopyObject

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

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

func (*AzureChaosList) GetItems

func (in *AzureChaosList) GetItems() []GenericChaos

func (*AzureChaosList) ListChaos

func (in *AzureChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type AzureChaosSpec

type AzureChaosSpec struct {
	// Action defines the specific azure chaos action.
	// Supported action: vm-stop / vm-restart / disk-detach
	// Default action: vm-stop
	Action AzureChaosAction `json:"action"`

	// Duration represents the duration of the chaos action.
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	AzureSelector `json:",inline"`
}

AzureChaosSpec is the content of the specification for an AzureChaos

func (*AzureChaosSpec) DeepCopy

func (in *AzureChaosSpec) DeepCopy() *AzureChaosSpec

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

func (*AzureChaosSpec) DeepCopyInto

func (in *AzureChaosSpec) DeepCopyInto(out *AzureChaosSpec)

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

func (*AzureChaosSpec) GetDuration

func (in *AzureChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type AzureChaosStatus

type AzureChaosStatus struct {
	ChaosStatus `json:",inline"`
}

AzureChaosStatus represents the status of an AzureChaos

func (*AzureChaosStatus) DeepCopy

func (in *AzureChaosStatus) DeepCopy() *AzureChaosStatus

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

func (*AzureChaosStatus) DeepCopyInto

func (in *AzureChaosStatus) DeepCopyInto(out *AzureChaosStatus)

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

type AzureSelector

type AzureSelector struct {
	// SubscriptionID defines the id of Azure subscription.
	SubscriptionID string `json:"subscriptionID"`

	// ResourceGroupName defines the name of ResourceGroup
	ResourceGroupName string `json:"resourceGroupName"`

	// VMName defines the name of Virtual Machine
	VMName string `json:"vmName"`

	// DiskName indicates the name of the disk.
	// Needed in disk-detach.
	DiskName *string `json:"diskName,omitempty" webhook:"DiskName,nilable"`

	// LUN indicates the Logical Unit Number of the data disk.
	// Needed in disk-detach.
	LUN *int `json:"lun,omitempty" webhook:"LUN,nilable"`

	// SecretName defines the name of kubernetes secret. It is used for Azure credentials.
	SecretName *string `json:"secretName,omitempty"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

func (*AzureSelector) DeepCopy

func (in *AzureSelector) DeepCopy() *AzureSelector

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

func (*AzureSelector) DeepCopyInto

func (in *AzureSelector) DeepCopyInto(out *AzureSelector)

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

func (*AzureSelector) Id

func (selector *AzureSelector) Id() string

type BandwidthSpec

type BandwidthSpec struct {
	// Rate is the speed knob. Allows bps, kbps, mbps, gbps, tbps unit. bps means bytes per second.
	Rate string `json:"rate"               webhook:"Rate"`
	// Limit is the number of bytes that can be queued waiting for tokens to become available.
	Limit uint32 `json:"limit"`
	// Buffer is the maximum amount of bytes that tokens can be available for instantaneously.
	Buffer uint32 `json:"buffer"`
	// Peakrate is the maximum depletion rate of the bucket.
	// The peakrate does not need to be set, it is only necessary
	// if perfect millisecond timescale shaping is required.
	Peakrate *uint64 `json:"peakrate,omitempty"`
	// Minburst specifies the size of the peakrate bucket. For perfect
	// accuracy, should be set to the MTU of the interface.  If a
	// peakrate is needed, but some burstiness is acceptable, this
	// size can be raised. A 3000 byte minburst allows around 3mbit/s
	// of peakrate, given 1000 byte packets.
	Minburst *uint32 `json:"minburst,omitempty"`
}

BandwidthSpec defines detail of bandwidth limit.

func (*BandwidthSpec) DeepCopy

func (in *BandwidthSpec) DeepCopy() *BandwidthSpec

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

func (*BandwidthSpec) DeepCopyInto

func (in *BandwidthSpec) DeepCopyInto(out *BandwidthSpec)

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

type BlockChaos

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

	Spec   BlockChaosSpec   `json:"spec"`
	Status BlockChaosStatus `json:"status,omitempty"`
}

BlockChaos is the Schema for the blockchaos API

func (*BlockChaos) DeepCopy

func (in *BlockChaos) DeepCopy() *BlockChaos

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

func (*BlockChaos) DeepCopyInto

func (in *BlockChaos) DeepCopyInto(out *BlockChaos)

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

func (*BlockChaos) DeepCopyObject

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

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

func (*BlockChaos) DurationExceeded

func (in *BlockChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*BlockChaos) GetCustomStatus

func (obj *BlockChaos) GetCustomStatus() interface{}

func (*BlockChaos) GetObjectMeta

func (in *BlockChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*BlockChaos) GetRemoteCluster

func (in *BlockChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*BlockChaos) GetSelectorSpecs

func (obj *BlockChaos) GetSelectorSpecs() map[string]interface{}

func (*BlockChaos) GetSpecAndMetaString

func (in *BlockChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*BlockChaos) GetStatus

func (in *BlockChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*BlockChaos) IsDeleted

func (in *BlockChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*BlockChaos) IsOneShot

func (in *BlockChaos) IsOneShot() bool

func (*BlockChaos) IsPaused

func (in *BlockChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type BlockChaosAction

type BlockChaosAction string
const (
	BlockDelay BlockChaosAction = "delay"
)

type BlockChaosList

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

BlockChaosList contains a list of BlockChaos

func (*BlockChaosList) DeepCopy

func (in *BlockChaosList) DeepCopy() *BlockChaosList

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

func (*BlockChaosList) DeepCopyInto

func (in *BlockChaosList) DeepCopyInto(out *BlockChaosList)

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

func (*BlockChaosList) DeepCopyList

func (in *BlockChaosList) DeepCopyList() GenericChaosList

func (*BlockChaosList) DeepCopyObject

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

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

func (*BlockChaosList) GetItems

func (in *BlockChaosList) GetItems() []GenericChaos

func (*BlockChaosList) ListChaos

func (in *BlockChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type BlockChaosSpec

type BlockChaosSpec struct {
	// Action defines the specific block chaos action.
	// Supported action: delay
	Action BlockChaosAction `json:"action"`

	// Delay defines the delay distribution.
	Delay *BlockDelaySpec `json:"delay,omitempty"`

	ContainerNodeVolumePathSelector `json:",inline"`

	// Duration represents the duration of the chaos action.
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

BlockChaosSpec is the content of the specification for a BlockChaos

func (*BlockChaosSpec) DeepCopy

func (in *BlockChaosSpec) DeepCopy() *BlockChaosSpec

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

func (*BlockChaosSpec) DeepCopyInto

func (in *BlockChaosSpec) DeepCopyInto(out *BlockChaosSpec)

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

func (*BlockChaosSpec) GetDuration

func (in *BlockChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type BlockChaosStatus

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

	// InjectionIds always specifies the number of injected chaos action
	InjectionIds map[string]int `json:"ids,omitempty"`
}

BlockChaosStatus represents the status of a BlockChaos

func (*BlockChaosStatus) DeepCopy

func (in *BlockChaosStatus) DeepCopy() *BlockChaosStatus

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

func (*BlockChaosStatus) DeepCopyInto

func (in *BlockChaosStatus) DeepCopyInto(out *BlockChaosStatus)

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

type BlockDelaySpec

type BlockDelaySpec struct {
	// Latency defines the latency of every io request.
	Latency string `json:"latency,omitempty" webhook:"Duration"`

	Correlation string `json:"correlation,omitempty" default:"0" webhook:"FloatStr"`

	Jitter string `json:"jitter,omitempty" default:"0ms" webhook:"Duration"`
}

BlockDelaySpec describes the block delay specification

func (*BlockDelaySpec) DeepCopy

func (in *BlockDelaySpec) DeepCopy() *BlockDelaySpec

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

func (*BlockDelaySpec) DeepCopyInto

func (in *BlockDelaySpec) DeepCopyInto(out *BlockDelaySpec)

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

type CPUStressor

type CPUStressor struct {
	Stressor `     json:",inline"`
	// Load specifies P percent loading per CPU worker. 0 is effectively a sleep (no load) and 100
	// is full loading.
	Load *int `json:"load,omitempty"`

	// extend stress-ng options
	Options []string `json:"options,omitempty"`
}

CPUStressor defines how to stress CPU out

func (*CPUStressor) DeepCopy

func (in *CPUStressor) DeepCopy() *CPUStressor

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

func (*CPUStressor) DeepCopyInto

func (in *CPUStressor) DeepCopyInto(out *CPUStressor)

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

type ChainDirection

type ChainDirection string

ChainDirection represents the direction of chain

const (
	// Input means this chain is linked with INPUT chain
	Input ChainDirection = "input"

	// Output means this chain is linked with OUTPUT chain
	Output ChainDirection = "output"
)

type ChaosCondition

type ChaosCondition struct {
	Type   ChaosConditionType     `json:"type"`
	Status corev1.ConditionStatus `json:"status"`
	Reason string                 `json:"reason,omitempty"`
}

func (*ChaosCondition) DeepCopy

func (in *ChaosCondition) DeepCopy() *ChaosCondition

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

func (*ChaosCondition) DeepCopyInto

func (in *ChaosCondition) DeepCopyInto(out *ChaosCondition)

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

type ChaosConditionType

type ChaosConditionType string
const (
	ConditionSelected     ChaosConditionType = "Selected"
	ConditionAllInjected  ChaosConditionType = "AllInjected"
	ConditionAllRecovered ChaosConditionType = "AllRecovered"
	ConditionPaused       ChaosConditionType = "Paused"
)

type ChaosKind

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

ChaosKind includes one kind of chaos and its list type

func (*ChaosKind) SpawnList

func (it *ChaosKind) SpawnList() GenericChaosList

SpawnList will deepcopy a clean list for the acquired kind of chaos as placeholder

func (*ChaosKind) SpawnObject

func (it *ChaosKind) SpawnObject() client.Object

SpawnObject will deepcopy a clean struct for the acquired kind as placeholder

type ChaosOnlyScheduleSpec

type ChaosOnlyScheduleSpec struct {
	Schedule string `json:"schedule"`

	// +nullable
	StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds"`

	ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy"`

	HistoryLimit int `json:"historyLimit,omitempty"`

	// TODO: use a custom type, as `TemplateType` contains other possible values
	Type ScheduleTemplateType `json:"type"`

	EmbedChaos `json:",inline"`
}

ChaosOnlyScheduleSpec is very similar with ScheduleSpec, but it could not schedule Workflow because we could not resolve nested CRD now

func (*ChaosOnlyScheduleSpec) DeepCopy

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

func (*ChaosOnlyScheduleSpec) DeepCopyInto

func (in *ChaosOnlyScheduleSpec) DeepCopyInto(out *ChaosOnlyScheduleSpec)

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

type ChaosStatus

type ChaosStatus struct {
	// Conditions represents the current global condition of the chaos
	Conditions []ChaosCondition `json:"conditions,omitempty"`

	// Experiment records the last experiment state.
	Experiment ExperimentStatus `json:"experiment"`
}

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 CidrAndPort

type CidrAndPort struct {
	Cidr string `json:"cidr"`

	Port uint16 `json:"port"`
}

CidrAndPort represents CIDR and port pair

func (*CidrAndPort) DeepCopy

func (in *CidrAndPort) DeepCopy() *CidrAndPort

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

func (*CidrAndPort) DeepCopyInto

func (in *CidrAndPort) DeepCopyInto(out *CidrAndPort)

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

type ClockSpec

type ClockSpec struct {
	// the pid of target program.
	Pid int `json:"pid,omitempty"`
	// specifies the length of time offset.
	TimeOffset string `json:"time-offset,omitempty"`
	// the identifier of the particular clock on which to act.
	// More clock description in linux kernel can be found in man page of clock_getres, clock_gettime, clock_settime.
	// Muti clock ids should be split with ","
	ClockIdsSlice string `json:"clock-ids-slice,omitempty"`
}

func (*ClockSpec) DeepCopy

func (in *ClockSpec) DeepCopy() *ClockSpec

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

func (*ClockSpec) DeepCopyInto

func (in *ClockSpec) DeepCopyInto(out *ClockSpec)

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

type ConcurrencyPolicy

type ConcurrencyPolicy string
var (
	ForbidConcurrent ConcurrencyPolicy = "Forbid"
	AllowConcurrent  ConcurrencyPolicy = "Allow"
)

func (ConcurrencyPolicy) IsAllow

func (c ConcurrencyPolicy) IsAllow() bool

func (ConcurrencyPolicy) IsForbid

func (c ConcurrencyPolicy) IsForbid() bool

type ConditionalBranch

type ConditionalBranch struct {
	// Target is the name of other template, if expression is evaluated as true, this template will be spawned.
	Target string `json:"target"`
	// Expression is the expression for this conditional branch, expected type of result is boolean. If expression is empty, this branch will always be selected/the template will be spawned.
	Expression string `json:"expression,omitempty"`
}

func (*ConditionalBranch) DeepCopy

func (in *ConditionalBranch) DeepCopy() *ConditionalBranch

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

func (*ConditionalBranch) DeepCopyInto

func (in *ConditionalBranch) DeepCopyInto(out *ConditionalBranch)

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

type ConditionalBranchStatus

type ConditionalBranchStatus struct {
	Target           string                 `json:"target"`
	EvaluationResult corev1.ConditionStatus `json:"evaluationResult"`
}

func (*ConditionalBranchStatus) DeepCopy

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

func (*ConditionalBranchStatus) DeepCopyInto

func (in *ConditionalBranchStatus) DeepCopyInto(out *ConditionalBranchStatus)

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

type ConditionalBranchesStatus

type ConditionalBranchesStatus struct {
	Branches []ConditionalBranchStatus `json:"branches"`
	Context  []string                  `json:"context"`
}

func (*ConditionalBranchesStatus) DeepCopy

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

func (*ConditionalBranchesStatus) DeepCopyInto

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

type ContainerNodeVolumePathSelector

type ContainerNodeVolumePathSelector struct {
	ContainerSelector `json:",inline"`

	VolumeName string `json:"volumeName"`
}

ContainerNodeVolumePathSelector is the selector to select a node and a PV on it

func (*ContainerNodeVolumePathSelector) DeepCopy

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

func (*ContainerNodeVolumePathSelector) DeepCopyInto

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

type ContainerSelector

type ContainerSelector struct {
	PodSelector `json:",inline"`

	// ContainerNames indicates list of the name of affected container.
	// If not set, the first container will be injected
	ContainerNames []string `json:"containerNames,omitempty"`
}

func (*ContainerSelector) DeepCopy

func (in *ContainerSelector) DeepCopy() *ContainerSelector

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

func (*ContainerSelector) DeepCopyInto

func (in *ContainerSelector) DeepCopyInto(out *ContainerSelector)

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

type CorruptSpec

type CorruptSpec struct {
	Corrupt     string `json:"corrupt"               webhook:"FloatStr"`
	Correlation string `json:"correlation,omitempty" webhook:"FloatStr" default:"0"`
}

CorruptSpec defines detail of a corrupt action

func (*CorruptSpec) DeepCopy

func (in *CorruptSpec) DeepCopy() *CorruptSpec

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

func (*CorruptSpec) DeepCopyInto

func (in *CorruptSpec) DeepCopyInto(out *CorruptSpec)

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

type DNSChaos

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

	// Spec defines the behavior of a pod chaos experiment
	Spec DNSChaosSpec `json:"spec"`

	// Most recently observed status of the chaos experiment about pods
	Status DNSChaosStatus `json:"status,omitempty"`
}

DNSChaos is the Schema for the networkchaos API

func (*DNSChaos) DeepCopy

func (in *DNSChaos) DeepCopy() *DNSChaos

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

func (*DNSChaos) DeepCopyInto

func (in *DNSChaos) DeepCopyInto(out *DNSChaos)

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

func (*DNSChaos) DeepCopyObject

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

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

func (*DNSChaos) DurationExceeded

func (in *DNSChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*DNSChaos) GetObjectMeta

func (in *DNSChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*DNSChaos) GetRemoteCluster

func (in *DNSChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*DNSChaos) GetSelectorSpecs

func (obj *DNSChaos) GetSelectorSpecs() map[string]interface{}

func (*DNSChaos) GetSpecAndMetaString

func (in *DNSChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*DNSChaos) GetStatus

func (in *DNSChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*DNSChaos) IsDeleted

func (in *DNSChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*DNSChaos) IsOneShot

func (in *DNSChaos) IsOneShot() bool

func (*DNSChaos) IsPaused

func (in *DNSChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type DNSChaosAction

type DNSChaosAction string

DNSChaosAction represents the chaos action about DNS.

const (
	// ErrorAction represents get error when send DNS request.
	ErrorAction DNSChaosAction = "error"

	// RandomAction represents get random IP when send DNS request.
	RandomAction DNSChaosAction = "random"
)

type DNSChaosList

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

DNSChaosList contains a list of DNSChaos

func (*DNSChaosList) DeepCopy

func (in *DNSChaosList) DeepCopy() *DNSChaosList

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

func (*DNSChaosList) DeepCopyInto

func (in *DNSChaosList) DeepCopyInto(out *DNSChaosList)

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

func (*DNSChaosList) DeepCopyList

func (in *DNSChaosList) DeepCopyList() GenericChaosList

func (*DNSChaosList) DeepCopyObject

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

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

func (*DNSChaosList) GetItems

func (in *DNSChaosList) GetItems() []GenericChaos

func (*DNSChaosList) ListChaos

func (in *DNSChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type DNSChaosSpec

type DNSChaosSpec struct {
	// Action defines the specific DNS chaos action.
	// Supported action: error, random
	// Default action: error
	Action DNSChaosAction `json:"action"`

	ContainerSelector `json:",inline"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// Choose which domain names to take effect, support the placeholder ? and wildcard *, or the Specified domain name.
	// Note:
	//      1. The wildcard * must be at the end of the string. For example, chaos-*.org is invalid.
	//      2. if the patterns is empty, will take effect on all the domain names.
	// For example:
	// 		The value is ["google.com", "github.*", "chaos-mes?.org"],
	// 		will take effect on "google.com", "github.com" and "chaos-mesh.org"
	DomainNamePatterns []string `json:"patterns,omitempty"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

DNSChaosSpec defines the desired state of DNSChaos

func (*DNSChaosSpec) DeepCopy

func (in *DNSChaosSpec) DeepCopy() *DNSChaosSpec

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

func (*DNSChaosSpec) DeepCopyInto

func (in *DNSChaosSpec) DeepCopyInto(out *DNSChaosSpec)

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

func (*DNSChaosSpec) GetDuration

func (in *DNSChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type DNSChaosStatus

type DNSChaosStatus struct {
	ChaosStatus `json:",inline"`
}

DNSChaosStatus defines the observed state of DNSChaos

func (*DNSChaosStatus) DeepCopy

func (in *DNSChaosStatus) DeepCopy() *DNSChaosStatus

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

func (*DNSChaosStatus) DeepCopyInto

func (in *DNSChaosStatus) DeepCopyInto(out *DNSChaosStatus)

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

type DelaySpec

type DelaySpec struct {
	Latency     string       `json:"latency"               webhook:"Duration"`
	Correlation string       `json:"correlation,omitempty" webhook:"FloatStr" default:"0"`
	Jitter      string       `json:"jitter,omitempty"      webhook:"Duration" default:"0ms"`
	Reorder     *ReorderSpec `json:"reorder,omitempty"`
}

DelaySpec defines detail of a delay action

func (*DelaySpec) DeepCopy

func (in *DelaySpec) DeepCopy() *DelaySpec

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

func (*DelaySpec) DeepCopyInto

func (in *DelaySpec) DeepCopyInto(out *DelaySpec)

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

type DesiredPhase

type DesiredPhase string
const (
	// The target of `RunningPhase` is to make all selected targets (container or pod) into "Injected" phase
	RunningPhase DesiredPhase = "Run"
	// The target of `StoppedPhase` is to make all selected targets (container or pod) into "NotInjected" phase
	StoppedPhase DesiredPhase = "Stop"
)

type Direction

type Direction string

Direction represents traffic direction from source to target, it could be netem, delay, loss, duplicate, corrupt or partition, check comments below for detail direction flow.

const (
	// To represents network packet from source to target
	To Direction = "to"

	// From represents network packet to source from target
	From Direction = "from"

	// Both represents both directions
	Both Direction = "both"
)

type DiskFileSpec

type DiskFileSpec struct {
	// specifies how many units of data will write into the file path. support unit: c=1, w=2, b=512, kB=1000,
	// K=1024, MB=1000*1000, M=1024*1024, GB=1000*1000*1000, G=1024*1024*1024 BYTES. example : 1M | 512kB
	Size string `json:"size,omitempty"`
	// specifies the location to fill data in. if path not provided,
	// payload will read/write from/into a temp file, temp file will be deleted after writing
	Path string `json:"path,omitempty"`
}

func (*DiskFileSpec) DeepCopy

func (in *DiskFileSpec) DeepCopy() *DiskFileSpec

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

func (*DiskFileSpec) DeepCopyInto

func (in *DiskFileSpec) DeepCopyInto(out *DiskFileSpec)

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

type DiskFillSpec

type DiskFillSpec struct {
	DiskFileSpec `json:",inline"`

	// fill disk by fallocate
	FillByFallocate bool `json:"fill-by-fallocate,omitempty"`
}

func (*DiskFillSpec) DeepCopy

func (in *DiskFillSpec) DeepCopy() *DiskFillSpec

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

func (*DiskFillSpec) DeepCopyInto

func (in *DiskFillSpec) DeepCopyInto(out *DiskFillSpec)

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

type DiskPayloadSpec

type DiskPayloadSpec struct {
	DiskFileSpec `json:",inline"`

	// specifies the number of process work on writing, default 1, only 1-255 is valid value
	PayloadProcessNum uint8 `json:"payload-process-num,omitempty"`
}

func (*DiskPayloadSpec) DeepCopy

func (in *DiskPayloadSpec) DeepCopy() *DiskPayloadSpec

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

func (*DiskPayloadSpec) DeepCopyInto

func (in *DiskPayloadSpec) DeepCopyInto(out *DiskPayloadSpec)

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

type DuplicateSpec

type DuplicateSpec struct {
	Duplicate   string `json:"duplicate"             webhook:"FloatStr"`
	Correlation string `json:"correlation,omitempty" webhook:"FloatStr" default:"0"`
}

DuplicateSpec defines detail of a duplicate action

func (*DuplicateSpec) DeepCopy

func (in *DuplicateSpec) DeepCopy() *DuplicateSpec

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

func (*DuplicateSpec) DeepCopyInto

func (in *DuplicateSpec) DeepCopyInto(out *DuplicateSpec)

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

type EmbedChaos

type EmbedChaos struct {
	AWSChaos             *AWSChaosSpec             `json:"awsChaos,omitempty"`
	AzureChaos           *AzureChaosSpec           `json:"azureChaos,omitempty"`
	BlockChaos           *BlockChaosSpec           `json:"blockChaos,omitempty"`
	DNSChaos             *DNSChaosSpec             `json:"dnsChaos,omitempty"`
	GCPChaos             *GCPChaosSpec             `json:"gcpChaos,omitempty"`
	HTTPChaos            *HTTPChaosSpec            `json:"httpChaos,omitempty"`
	IOChaos              *IOChaosSpec              `json:"ioChaos,omitempty"`
	JVMChaos             *JVMChaosSpec             `json:"jvmChaos,omitempty"`
	KernelChaos          *KernelChaosSpec          `json:"kernelChaos,omitempty"`
	NetworkChaos         *NetworkChaosSpec         `json:"networkChaos,omitempty"`
	PhysicalMachineChaos *PhysicalMachineChaosSpec `json:"physicalmachineChaos,omitempty"`
	PodChaos             *PodChaosSpec             `json:"podChaos,omitempty"`
	StressChaos          *StressChaosSpec          `json:"stressChaos,omitempty"`
	TimeChaos            *TimeChaosSpec            `json:"timeChaos,omitempty"`
}

func (*EmbedChaos) DeepCopy

func (in *EmbedChaos) DeepCopy() *EmbedChaos

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

func (*EmbedChaos) DeepCopyInto

func (in *EmbedChaos) DeepCopyInto(out *EmbedChaos)

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

func (*EmbedChaos) RestoreChaosSpec

func (it *EmbedChaos) RestoreChaosSpec(root interface{}) error

func (*EmbedChaos) SpawnNewList

func (it *EmbedChaos) SpawnNewList(templateType TemplateType) (GenericChaosList, error)

func (*EmbedChaos) SpawnNewObject

func (it *EmbedChaos) SpawnNewObject(templateType TemplateType) (GenericChaos, error)

type EmbedStatusCheck

type EmbedStatusCheck struct {
	HTTPStatusCheck *HTTPStatusCheck `json:"http,omitempty"`
}

func (*EmbedStatusCheck) DeepCopy

func (in *EmbedStatusCheck) DeepCopy() *EmbedStatusCheck

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

func (*EmbedStatusCheck) DeepCopyInto

func (in *EmbedStatusCheck) DeepCopyInto(out *EmbedStatusCheck)

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

type ExpInfo

type ExpInfo struct {
	// the experiment ID
	UID string `json:"uid,omitempty" swaggerignore:"true"`

	// the subAction, generate automatically
	Action string `json:"action,omitempty" swaggerignore:"true"`

	// +ui:form:when=action=='stress-cpu'
	StressCPU *StressCPUSpec `json:"stress-cpu,omitempty"`

	// +ui:form:when=action=='stress-mem'
	StressMemory *StressMemorySpec `json:"stress-mem,omitempty"`

	// +ui:form:when=action=='disk-read-payload'
	DiskReadPayload *DiskPayloadSpec `json:"disk-read-payload,omitempty"`

	// +ui:form:when=action=='disk-write-payload'
	DiskWritePayload *DiskPayloadSpec `json:"disk-write-payload,omitempty"`

	// +ui:form:when=action=='disk-fill'
	DiskFill *DiskFillSpec `json:"disk-fill,omitempty"`

	// +ui:form:when=action=='network-corrupt'
	NetworkCorrupt *NetworkCorruptSpec `json:"network-corrupt,omitempty"`

	// +ui:form:when=action=='network-duplicate'
	NetworkDuplicate *NetworkDuplicateSpec `json:"network-duplicate,omitempty"`

	// +ui:form:when=action=='network-loss'
	NetworkLoss *NetworkLossSpec `json:"network-loss,omitempty"`

	// +ui:form:when=action=='network-delay'
	NetworkDelay *NetworkDelaySpec `json:"network-delay,omitempty"`

	// +ui:form:when=action=='network-partition'
	NetworkPartition *NetworkPartitionSpec `json:"network-partition,omitempty"`

	// +ui:form:when=action=='network-dns'
	NetworkDNS *NetworkDNSSpec `json:"network-dns,omitempty"`

	// +ui:form:when=action=='network-bandwidth'
	NetworkBandwidth *NetworkBandwidthSpec `json:"network-bandwidth,omitempty"`

	// +ui:form:when=action=='network-flood'
	NetworkFlood *NetworkFloodSpec `json:"network-flood,omitempty"`

	// +ui:form:when=action=='network-down'
	NetworkDown *NetworkDownSpec `json:"network-down,omitempty"`

	// +ui:form:when=action=='process'
	Process *ProcessSpec `json:"process,omitempty"`

	// +ui:form:when=action=='jvm-exception'
	JVMException *JVMExceptionSpec `json:"jvm-exception,omitempty"`

	// +ui:form:when=action=='jvm-gc'
	JVMGC *JVMGCSpec `json:"jvm-gc,omitempty"`

	// +ui:form:when=action=='jvm-latency'
	JVMLatency *JVMLatencySpec `json:"jvm-latency,omitempty"`

	// +ui:form:when=action=='jvm-return'
	JVMReturn *JVMReturnSpec `json:"jvm-return,omitempty"`

	// +ui:form:when=action=='jvm-stress'
	JVMStress *JVMStressSpec `json:"jvm-stress,omitempty"`

	// +ui:form:when=action=='jvm-rule-data'
	JVMRuleData *JVMRuleDataSpec `json:"jvm-rule-data,omitempty"`

	// +ui:form:when=action=='jvm-mysql'
	JVMMySQL *PMJVMMySQLSpec `json:"jvm-mysql,omitempty"`

	// +ui:form:when=action=='clock'
	Clock *ClockSpec `json:"clock,omitempty"`

	// +ui:form:when=action=='redis-expiration'
	RedisExpiration *RedisExpirationSpec `json:"redis-expiration,omitempty"`

	// +ui:form:when=action=='redis-penetration'
	RedisPenetration *RedisPenetrationSpec `json:"redis-penetration,omitempty"`

	// +ui:form:when=action=='redis-cacheLimit'
	RedisCacheLimit *RedisCacheLimitSpec `json:"redis-cacheLimit,omitempty"`

	// +ui:form:when=action=='redis-restart'
	RedisSentinelRestart *RedisSentinelRestartSpec `json:"redis-restart,omitempty"`

	// +ui:form:when=action=='redis-stop'
	RedisSentinelStop *RedisSentinelStopSpec `json:"redis-stop,omitempty"`

	// +ui:form:when=action=='kafka-fill'
	KafkaFill *KafkaFillSpec `json:"kafka-fill,omitempty"`

	// +ui:form:when=action=='kafka-flood'
	KafkaFlood *KafkaFloodSpec `json:"kafka-flood,omitempty"`

	// +ui:form:when=action=='kafka-io'
	KafkaIO *KafkaIOSpec `json:"kafka-io,omitempty"`

	// +ui:form:when=action=='http-abort'
	HTTPAbort *HTTPAbortSpec `json:"http-abort,omitempty"`

	// +ui:form:when=action=='http-delay'
	HTTPDelay *HTTPDelaySpec `json:"http-delay,omitempty"`

	// +ui:form:when=action=='http-config'
	HTTPConfig *HTTPConfigSpec `json:"http-config,omitempty"`

	// +ui:form:when=action=='http-request'
	HTTPRequest *HTTPRequestSpec `json:"http-request,omitempty"`

	// +ui:form:when=action=='file-create'
	FileCreate *FileCreateSpec `json:"file-create,omitempty"`

	// +ui:form:when=action=='file-modify'
	FileModifyPrivilege *FileModifyPrivilegeSpec `json:"file-modify,omitempty"`

	// +ui:form:when=action=='file-delete'
	FileDelete *FileDeleteSpec `json:"file-delete,omitempty"`

	// +ui:form:when=action=='file-create'
	FileRename *FileRenameSpec `json:"file-rename,omitempty"`

	// +ui:form:when=action=='file-append'
	FileAppend *FileAppendSpec `json:"file-append,omitempty"`

	// +ui:form:when=action=='file-replace'
	FileReplace *FileReplaceSpec `json:"file-replace,omitempty"`

	// +ui:form:when=action=='vm'
	VM *VMSpec `json:"vm,omitempty"`

	// +ui:form:when=action=='user_defined'
	UserDefined *UserDefinedSpec `json:"user_defined,omitempty"`
}

func (*ExpInfo) DeepCopy

func (in *ExpInfo) DeepCopy() *ExpInfo

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

func (*ExpInfo) DeepCopyInto

func (in *ExpInfo) DeepCopyInto(out *ExpInfo)

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

type ExperimentStatus

type ExperimentStatus struct {
	DesiredPhase `json:"desiredPhase,omitempty"`
	// Records are used to track the running status
	Records []*Record `json:"containerRecords,omitempty"`
}

func (*ExperimentStatus) DeepCopy

func (in *ExperimentStatus) DeepCopy() *ExperimentStatus

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

func (*ExperimentStatus) DeepCopyInto

func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus)

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

type FailKernRequest

type FailKernRequest struct {
	// FailType indicates what to fail, can be set to '0' / '1' / '2'
	// If `0`, indicates slab to fail (should_failslab)
	// If `1`, indicates alloc_page to fail (should_fail_alloc_page)
	// If `2`, indicates bio to fail (should_fail_bio)
	// You can read:
	//   1. https://www.kernel.org/doc/html/latest/fault-injection/fault-injection.html
	//   2. http://github.com/iovisor/bcc/blob/master/tools/inject_example.txt
	// to learn more
	FailType int32 `json:"failtype"`

	// Headers indicates the appropriate kernel headers you need.
	// Eg: "linux/mmzone.h", "linux/blkdev.h" and so on
	Headers []string `json:"headers,omitempty"`

	// Callchain indicate a special call chain, such as:
	//     ext4_mount
	//       -> mount_subtree
	//          -> ...
	//             -> should_failslab
	// With an optional set of predicates and an optional set of
	// parameters, which used with predicates. You can read call chan
	// and predicate examples from https://github.com/chaos-mesh/bpfki/tree/develop/examples
	// to learn more.
	// If no special call chain, just keep Callchain empty, which means it will fail at any call chain
	// with slab alloc (eg: kmalloc).
	Callchain []Frame `json:"callchain,omitempty"`

	// Probability indicates the fails with probability.
	// If you want 1%, please set this field with 1.
	Probability uint32 `json:"probability,omitempty"`

	// Times indicates the max times of fails.
	Times uint32 `json:"times,omitempty"`
}

FailKernRequest defines the injection conditions

func (*FailKernRequest) DeepCopy

func (in *FailKernRequest) DeepCopy() *FailKernRequest

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

func (*FailKernRequest) DeepCopyInto

func (in *FailKernRequest) DeepCopyInto(out *FailKernRequest)

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

type FileAppendSpec

type FileAppendSpec struct {
	// FileName is the name of the file to be created, modified, deleted, renamed, or appended.
	FileName string `json:"file-name,omitempty"`
	// Data is the data for append.
	Data string `json:"data,omitempty"`
	// Count is the number of times to append the data.
	Count int `json:"count,omitempty"`
}

func (*FileAppendSpec) DeepCopy

func (in *FileAppendSpec) DeepCopy() *FileAppendSpec

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

func (*FileAppendSpec) DeepCopyInto

func (in *FileAppendSpec) DeepCopyInto(out *FileAppendSpec)

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

type FileCreateSpec

type FileCreateSpec struct {
	// FileName is the name of the file to be created, modified, deleted, renamed, or appended.
	FileName string `json:"file-name,omitempty"`
	// DirName is the directory name to create or delete.
	DirName string `json:"dir-name,omitempty"`
}

func (*FileCreateSpec) DeepCopy

func (in *FileCreateSpec) DeepCopy() *FileCreateSpec

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

func (*FileCreateSpec) DeepCopyInto

func (in *FileCreateSpec) DeepCopyInto(out *FileCreateSpec)

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

type FileDeleteSpec

type FileDeleteSpec struct {
	// FileName is the name of the file to be created, modified, deleted, renamed, or appended.
	FileName string `json:"file-name,omitempty"`
	// DirName is the directory name to create or delete.
	DirName string `json:"dir-name,omitempty"`
}

func (*FileDeleteSpec) DeepCopy

func (in *FileDeleteSpec) DeepCopy() *FileDeleteSpec

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

func (*FileDeleteSpec) DeepCopyInto

func (in *FileDeleteSpec) DeepCopyInto(out *FileDeleteSpec)

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

type FileModifyPrivilegeSpec

type FileModifyPrivilegeSpec struct {
	// FileName is the name of the file to be created, modified, deleted, renamed, or appended.
	FileName string `json:"file-name,omitempty"`
	// Privilege is the file privilege to be set.
	Privilege uint32 `json:"privilege,omitempty"`
}

func (*FileModifyPrivilegeSpec) DeepCopy

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

func (*FileModifyPrivilegeSpec) DeepCopyInto

func (in *FileModifyPrivilegeSpec) DeepCopyInto(out *FileModifyPrivilegeSpec)

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

type FileRenameSpec

type FileRenameSpec struct {
	// SourceFile is the name need to be renamed.
	SourceFile string `json:"source-file,omitempty"`
	// DestFile is the name to be renamed.
	DestFile string `json:"dest-file,omitempty"`
}

func (*FileRenameSpec) DeepCopy

func (in *FileRenameSpec) DeepCopy() *FileRenameSpec

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

func (*FileRenameSpec) DeepCopyInto

func (in *FileRenameSpec) DeepCopyInto(out *FileRenameSpec)

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

type FileReplaceSpec

type FileReplaceSpec struct {
	// FileName is the name of the file to be created, modified, deleted, renamed, or appended.
	FileName string `json:"file-name,omitempty"`
	// OriginStr is the origin string of the file.
	OriginStr string `json:"origin-string,omitempty"`
	// DestStr is the destination string of the file.
	DestStr string `json:"dest-string,omitempty"`
	// Line is the line number of the file to be replaced.
	Line int `json:"line,omitempty"`
}

func (*FileReplaceSpec) DeepCopy

func (in *FileReplaceSpec) DeepCopy() *FileReplaceSpec

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

func (*FileReplaceSpec) DeepCopyInto

func (in *FileReplaceSpec) DeepCopyInto(out *FileReplaceSpec)

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

type FileType

type FileType string

FileType represents type of file

const (
	NamedPipe   FileType = "namedPipe"
	CharDevice  FileType = "charDevice"
	BlockDevice FileType = "blockDevice"
	Directory   FileType = "directory"
	RegularFile FileType = "regularFile"
	TSymlink    FileType = "symlink"
	Socket      FileType = "socket"
)

type FillingType

type FillingType string

FillingType represents type of data is filled for incorrectness

const (
	// All zero
	Zero FillingType = "zero"

	// Random octets
	Random FillingType = "random"
)

type Filter

type Filter struct {
	// Path represents a glob of injecting path
	Path string `json:"path"`

	// Methods represents the method that the action will inject in
	Methods []IoMethod `json:"methods,omitempty"`

	// Percent represents the percent probability of injecting this action
	Percent int `json:"percent"`
}

Filter represents a filter of IOChaos action, which will define the scope of an IOChaosAction

func (*Filter) DeepCopy

func (in *Filter) DeepCopy() *Filter

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

func (*Filter) DeepCopyInto

func (in *Filter) DeepCopyInto(out *Filter)

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

type Frame

type Frame struct {
	// Funcname can be find from kernel source or `/proc/kallsyms`, such as `ext4_mount`
	Funcname string `json:"funcname,omitempty"`

	// Parameters is used with predicate, for example, if you want to inject slab error
	// in `d_alloc_parallel(struct dentry *parent, const struct qstr *name)` with a special
	// name `bananas`, you need to set it to `struct dentry *parent, const struct qstr *name`
	// otherwise omit it.
	Parameters string `json:"parameters,omitempty"`

	// Predicate will access the arguments of this Frame, example with Parameters's, you can
	// set it to `STRNCMP(name->name, "bananas", 8)` to make inject only with it, or omit it
	// to inject for all d_alloc_parallel call chain.
	Predicate string `json:"predicate,omitempty"`
}

Frame defines the function signature and predicate in function's body

func (*Frame) DeepCopy

func (in *Frame) DeepCopy() *Frame

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

func (*Frame) DeepCopyInto

func (in *Frame) DeepCopyInto(out *Frame)

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

type GCPChaos

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

	Spec   GCPChaosSpec   `json:"spec"`
	Status GCPChaosStatus `json:"status,omitempty"`
}

GCPChaos is the Schema for the gcpchaos API

func (*GCPChaos) DeepCopy

func (in *GCPChaos) DeepCopy() *GCPChaos

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

func (*GCPChaos) DeepCopyInto

func (in *GCPChaos) DeepCopyInto(out *GCPChaos)

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

func (*GCPChaos) DeepCopyObject

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

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

func (*GCPChaos) DurationExceeded

func (in *GCPChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*GCPChaos) GetCustomStatus

func (obj *GCPChaos) GetCustomStatus() interface{}

func (*GCPChaos) GetObjectMeta

func (in *GCPChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*GCPChaos) GetRemoteCluster

func (in *GCPChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*GCPChaos) GetSelectorSpecs

func (obj *GCPChaos) GetSelectorSpecs() map[string]interface{}

func (*GCPChaos) GetSpecAndMetaString

func (in *GCPChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*GCPChaos) GetStatus

func (in *GCPChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*GCPChaos) IsDeleted

func (in *GCPChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*GCPChaos) IsOneShot

func (in *GCPChaos) IsOneShot() bool

func (*GCPChaos) IsPaused

func (in *GCPChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type GCPChaosAction

type GCPChaosAction string

GCPChaosAction represents the chaos action about gcp.

const (
	// NodeStop represents the chaos action of stopping the node.
	NodeStop GCPChaosAction = "node-stop"
	// NodeReset represents the chaos action of resetting the node.
	NodeReset GCPChaosAction = "node-reset"
	// DiskLoss represents the chaos action of detaching the disk.
	DiskLoss GCPChaosAction = "disk-loss"
)

type GCPChaosList

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

GCPChaosList contains a list of GCPChaos

func (*GCPChaosList) DeepCopy

func (in *GCPChaosList) DeepCopy() *GCPChaosList

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

func (*GCPChaosList) DeepCopyInto

func (in *GCPChaosList) DeepCopyInto(out *GCPChaosList)

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

func (*GCPChaosList) DeepCopyList

func (in *GCPChaosList) DeepCopyList() GenericChaosList

func (*GCPChaosList) DeepCopyObject

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

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

func (*GCPChaosList) GetItems

func (in *GCPChaosList) GetItems() []GenericChaos

func (*GCPChaosList) ListChaos

func (in *GCPChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type GCPChaosSpec

type GCPChaosSpec struct {
	// Action defines the specific gcp chaos action.
	// Supported action: node-stop / node-reset / disk-loss
	// Default action: node-stop
	Action GCPChaosAction `json:"action"`

	// Duration represents the duration of the chaos action.
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// SecretName defines the name of kubernetes secret. It is used for GCP credentials.
	SecretName *string `json:"secretName,omitempty"`

	GCPSelector `json:",inline"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

GCPChaosSpec is the content of the specification for a GCPChaos

func (*GCPChaosSpec) DeepCopy

func (in *GCPChaosSpec) DeepCopy() *GCPChaosSpec

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

func (*GCPChaosSpec) DeepCopyInto

func (in *GCPChaosSpec) DeepCopyInto(out *GCPChaosSpec)

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

func (*GCPChaosSpec) GetDuration

func (in *GCPChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type GCPChaosStatus

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

	// The attached disk info strings.
	// Needed in disk-loss.
	AttachedDisksStrings []string `json:"attachedDiskStrings,omitempty"`
}

GCPChaosStatus represents the status of a GCPChaos

func (*GCPChaosStatus) DeepCopy

func (in *GCPChaosStatus) DeepCopy() *GCPChaosStatus

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

func (*GCPChaosStatus) DeepCopyInto

func (in *GCPChaosStatus) DeepCopyInto(out *GCPChaosStatus)

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

type GCPSelector

type GCPSelector struct {
	// Project defines the ID of gcp project.
	Project string `json:"project"`

	// Zone defines the zone of gcp project.
	Zone string `json:"zone"`

	// Instance defines the name of the instance
	Instance string `json:"instance"`

	// The device name of disks to detach.
	// Needed in disk-loss.
	// +ui:form:when=action=='disk-loss'
	DeviceNames []string `json:"deviceNames,omitempty" webhook:"GCPDeviceNames,nilable"`
}

func (*GCPSelector) DeepCopy

func (in *GCPSelector) DeepCopy() *GCPSelector

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

func (*GCPSelector) DeepCopyInto

func (in *GCPSelector) DeepCopyInto(out *GCPSelector)

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

func (*GCPSelector) Id

func (selector *GCPSelector) Id() string

type GenericChaos

type GenericChaos interface {
	runtime.Object
	metav1.Object
}

GenericChaos could be a place holder for any kubernetes Kind

type GenericChaosList

type GenericChaosList interface {
	runtime.Object
	metav1.ListInterface
	GetItems() []GenericChaos
	DeepCopyList() GenericChaosList
}

GenericChaosList only use to list GenericChaos by certain EmbedChaos

type GenericSelectorSpec

type GenericSelectorSpec struct {
	// Namespaces is a set of namespace to which objects belong.
	Namespaces []string `json:"namespaces,omitempty"`

	// Map of string keys and values that can be used to select objects.
	// A selector based on fields.
	FieldSelectors map[string]string `json:"fieldSelectors,omitempty"`

	// Map of string keys and values that can be used to select objects.
	// A selector based on labels.
	LabelSelectors map[string]string `json:"labelSelectors,omitempty"`

	// a slice of label selector expressions that can be used to select objects.
	// A list of selectors based on set-based label expressions.
	ExpressionSelectors LabelSelectorRequirements `json:"expressionSelectors,omitempty" swaggerignore:"true"`

	// Map of string keys and values that can be used to select objects.
	// A selector based on annotations.
	AnnotationSelectors map[string]string `json:"annotationSelectors,omitempty"`
}

GenericSelectorSpec defines some selectors to select objects.

func (*GenericSelectorSpec) DeepCopy

func (in *GenericSelectorSpec) DeepCopy() *GenericSelectorSpec

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

func (*GenericSelectorSpec) DeepCopyInto

func (in *GenericSelectorSpec) DeepCopyInto(out *GenericSelectorSpec)

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

type HTTPAbortSpec

type HTTPAbortSpec struct {
	HTTPCommonSpec `json:",inline"`
}

func (*HTTPAbortSpec) DeepCopy

func (in *HTTPAbortSpec) DeepCopy() *HTTPAbortSpec

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

func (*HTTPAbortSpec) DeepCopyInto

func (in *HTTPAbortSpec) DeepCopyInto(out *HTTPAbortSpec)

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

type HTTPChaos

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

	Spec   HTTPChaosSpec   `json:"spec,omitempty"`
	Status HTTPChaosStatus `json:"status,omitempty"`
}

HTTPChaos is the Schema for the HTTPchaos API

func (*HTTPChaos) DeepCopy

func (in *HTTPChaos) DeepCopy() *HTTPChaos

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

func (*HTTPChaos) DeepCopyInto

func (in *HTTPChaos) DeepCopyInto(out *HTTPChaos)

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

func (*HTTPChaos) DeepCopyObject

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

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

func (*HTTPChaos) DurationExceeded

func (in *HTTPChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*HTTPChaos) GetCustomStatus

func (obj *HTTPChaos) GetCustomStatus() interface{}

func (*HTTPChaos) GetObjectMeta

func (in *HTTPChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*HTTPChaos) GetRemoteCluster

func (in *HTTPChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*HTTPChaos) GetSelectorSpecs

func (obj *HTTPChaos) GetSelectorSpecs() map[string]interface{}

func (*HTTPChaos) GetSpecAndMetaString

func (in *HTTPChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*HTTPChaos) GetStatus

func (in *HTTPChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*HTTPChaos) IsDeleted

func (in *HTTPChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*HTTPChaos) IsOneShot

func (in *HTTPChaos) IsOneShot() bool

func (*HTTPChaos) IsPaused

func (in *HTTPChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type HTTPChaosList

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

HTTPChaosList contains a list of HTTPChaos

func (*HTTPChaosList) DeepCopy

func (in *HTTPChaosList) DeepCopy() *HTTPChaosList

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

func (*HTTPChaosList) DeepCopyInto

func (in *HTTPChaosList) DeepCopyInto(out *HTTPChaosList)

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

func (*HTTPChaosList) DeepCopyList

func (in *HTTPChaosList) DeepCopyList() GenericChaosList

func (*HTTPChaosList) DeepCopyObject

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

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

func (*HTTPChaosList) GetItems

func (in *HTTPChaosList) GetItems() []GenericChaos

func (*HTTPChaosList) ListChaos

func (in *HTTPChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type HTTPChaosSpec

type HTTPChaosSpec struct {
	PodSelector `json:",inline"`

	// Target is the object to be selected and injected.
	Target PodHttpChaosTarget `json:"target"`

	PodHttpChaosActions `json:",inline"`

	// Port represents the target port to be proxy of.
	Port int32 `json:"port,omitempty" webhook:"Port"`

	// Path is a rule to select target by uri path in http request.
	Path *string `json:"path,omitempty"`

	// Method is a rule to select target by http method in request.
	Method *string `json:"method,omitempty" webhook:"HTTPMethod"`

	// Code is a rule to select target by http status code in response.
	Code *int32 `json:"code,omitempty"`

	// RequestHeaders is a rule to select target by http headers in request.
	// The key-value pairs represent header name and header value pairs.
	RequestHeaders map[string]string `json:"request_headers,omitempty"`

	// ResponseHeaders is a rule to select target by http headers in response.
	// The key-value pairs represent header name and header value pairs.
	ResponseHeaders map[string]string `json:"response_headers,omitempty"`

	// TLS is the tls config,
	// will override PodHttpChaos if there are multiple HTTPChaos experiments are applied
	TLS *PodHttpChaosTLS `json:"tls,omitempty"`

	// Duration represents the duration of the chaos action.
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

func (*HTTPChaosSpec) DeepCopy

func (in *HTTPChaosSpec) DeepCopy() *HTTPChaosSpec

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

func (*HTTPChaosSpec) DeepCopyInto

func (in *HTTPChaosSpec) DeepCopyInto(out *HTTPChaosSpec)

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

func (*HTTPChaosSpec) GetDuration

func (in *HTTPChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type HTTPChaosStatus

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

	// Instances always specifies podhttpchaos generation or empty
	Instances map[string]int64 `json:"instances,omitempty"`
}

func (*HTTPChaosStatus) DeepCopy

func (in *HTTPChaosStatus) DeepCopy() *HTTPChaosStatus

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

func (*HTTPChaosStatus) DeepCopyInto

func (in *HTTPChaosStatus) DeepCopyInto(out *HTTPChaosStatus)

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

type HTTPCommonSpec

type HTTPCommonSpec struct {
	// Composed with one of the port of HTTP connection, we will only attack HTTP connection with port inside proxy_ports
	ProxyPorts []uint `json:"proxy_ports"`
	// HTTP target: Request or Response
	Target string `json:"target"`
	// The TCP port that the target service listens on
	Port int32 `json:"port,omitempty"`
	// Match path of Uri with wildcard matches
	Path string `json:"path,omitempty"`
	// HTTP method
	Method string `json:"method,omitempty"`
	// Code is a rule to select target by http status code in response
	Code string `json:"code,omitempty"`
}

func (*HTTPCommonSpec) DeepCopy

func (in *HTTPCommonSpec) DeepCopy() *HTTPCommonSpec

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

func (*HTTPCommonSpec) DeepCopyInto

func (in *HTTPCommonSpec) DeepCopyInto(out *HTTPCommonSpec)

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

type HTTPConfigSpec

type HTTPConfigSpec struct {
	// The config file path
	FilePath string `json:"file_path,omitempty"`
}

func (*HTTPConfigSpec) DeepCopy

func (in *HTTPConfigSpec) DeepCopy() *HTTPConfigSpec

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

func (*HTTPConfigSpec) DeepCopyInto

func (in *HTTPConfigSpec) DeepCopyInto(out *HTTPConfigSpec)

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

type HTTPCriteria

type HTTPCriteria struct {
	// StatusCode defines the expected http status code for the request.
	// A statusCode string could be a single code (e.g. 200), or
	// an inclusive range (e.g. 200-400, both `200` and `400` are included).
	StatusCode string `json:"statusCode" webhook:"StatusCode"`
}

func (*HTTPCriteria) DeepCopy

func (in *HTTPCriteria) DeepCopy() *HTTPCriteria

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

func (*HTTPCriteria) DeepCopyInto

func (in *HTTPCriteria) DeepCopyInto(out *HTTPCriteria)

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

type HTTPDelaySpec

type HTTPDelaySpec struct {
	HTTPCommonSpec `       json:",inline"`
	// Delay represents the delay of the target request/response
	Delay string `json:"delay"`
}

func (*HTTPDelaySpec) DeepCopy

func (in *HTTPDelaySpec) DeepCopy() *HTTPDelaySpec

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

func (*HTTPDelaySpec) DeepCopyInto

func (in *HTTPDelaySpec) DeepCopyInto(out *HTTPDelaySpec)

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

type HTTPRequestMethod

type HTTPRequestMethod string

type HTTPRequestSpec

type HTTPRequestSpec struct {
	// Request to send"
	URL string `json:"url,omitempty"`
	// Enable connection pool
	EnableConnPool bool `json:"enable-conn-pool,omitempty"`
	// The number of requests to send
	Count int `json:"count,omitempty"`
}

used for HTTP request, now only support GET

func (*HTTPRequestSpec) DeepCopy

func (in *HTTPRequestSpec) DeepCopy() *HTTPRequestSpec

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

func (*HTTPRequestSpec) DeepCopyInto

func (in *HTTPRequestSpec) DeepCopyInto(out *HTTPRequestSpec)

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

type HTTPStatusCheck

type HTTPStatusCheck struct {
	RequestUrl string `json:"url"`

	RequestMethod  HTTPRequestMethod `json:"method,omitempty"`
	RequestHeaders http.Header       `json:"headers,omitempty"`
	RequestBody    string            `json:"body,omitempty"`
	// Criteria defines how to determine the result of the status check.
	Criteria HTTPCriteria `json:"criteria"`
}

func (*HTTPStatusCheck) DeepCopy

func (in *HTTPStatusCheck) DeepCopy() *HTTPStatusCheck

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

func (*HTTPStatusCheck) DeepCopyInto

func (in *HTTPStatusCheck) DeepCopyInto(out *HTTPStatusCheck)

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

type IOChaos

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

	Spec   IOChaosSpec   `json:"spec,omitempty"`
	Status IOChaosStatus `json:"status,omitempty"`
}

IOChaos is the Schema for the iochaos API

func (*IOChaos) DeepCopy

func (in *IOChaos) DeepCopy() *IOChaos

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

func (*IOChaos) DeepCopyInto

func (in *IOChaos) DeepCopyInto(out *IOChaos)

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

func (*IOChaos) DeepCopyObject

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

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

func (*IOChaos) DurationExceeded

func (in *IOChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*IOChaos) GetCustomStatus

func (obj *IOChaos) GetCustomStatus() interface{}

func (*IOChaos) GetObjectMeta

func (in *IOChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*IOChaos) GetRemoteCluster

func (in *IOChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*IOChaos) GetSelectorSpecs

func (obj *IOChaos) GetSelectorSpecs() map[string]interface{}

func (*IOChaos) GetSpecAndMetaString

func (in *IOChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*IOChaos) GetStatus

func (in *IOChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*IOChaos) IsDeleted

func (in *IOChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*IOChaos) IsOneShot

func (in *IOChaos) IsOneShot() bool

func (*IOChaos) IsPaused

func (in *IOChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type IOChaosAction

type IOChaosAction struct {
	Type IOChaosType `json:"type"`

	Filter `json:",inline"`

	// Faults represents the fault to inject
	Faults []IoFault `json:"faults,omitempty"`

	// Latency represents the latency to inject
	Latency string `json:"latency,omitempty"`

	// AttrOverride represents the attribution to override
	*AttrOverrideSpec `json:",inline"`

	// MistakeSpec represents the mistake to inject
	*MistakeSpec `json:"mistake,omitempty"`

	// Source represents the source of current rules
	Source string `json:"source,omitempty"`
}

IOChaosAction defines a possible action of IOChaos

func (*IOChaosAction) DeepCopy

func (in *IOChaosAction) DeepCopy() *IOChaosAction

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

func (*IOChaosAction) DeepCopyInto

func (in *IOChaosAction) DeepCopyInto(out *IOChaosAction)

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

type IOChaosList

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

IOChaosList contains a list of IOChaos

func (*IOChaosList) DeepCopy

func (in *IOChaosList) DeepCopy() *IOChaosList

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

func (*IOChaosList) DeepCopyInto

func (in *IOChaosList) DeepCopyInto(out *IOChaosList)

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

func (*IOChaosList) DeepCopyList

func (in *IOChaosList) DeepCopyList() GenericChaosList

func (*IOChaosList) DeepCopyObject

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

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

func (*IOChaosList) GetItems

func (in *IOChaosList) GetItems() []GenericChaos

func (*IOChaosList) ListChaos

func (in *IOChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type IOChaosSpec

type IOChaosSpec struct {
	ContainerSelector `json:",inline"`

	// Action defines the specific pod chaos action.
	// Supported action: latency / fault / attrOverride / mistake
	Action IOChaosType `json:"action"`

	// Delay defines the value of I/O chaos action delay.
	// A delay string is a possibly signed sequence of
	// decimal numbers, each with optional fraction and a unit suffix,
	// such as "300ms".
	// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	// +ui:form:when=action=='latency'
	Delay string `json:"delay,omitempty" webhook:"Duration"`

	// Errno defines the error code that returned by I/O action.
	// refer to: https://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.html
	// +ui:form:when=action=='fault'
	Errno uint32 `json:"errno,omitempty" webhook:"IOErrno"`

	// Attr defines the overrided attribution
	// +ui:form:when=action=='attrOverride'
	Attr *AttrOverrideSpec `json:"attr,omitempty"`

	// Mistake defines what types of incorrectness are injected to IO operations
	// +ui:form:when=action=='mistake'
	Mistake *MistakeSpec `json:"mistake,omitempty"`

	// Path defines the path of files for injecting I/O chaos action.
	Path string `json:"path,omitempty"`

	// Methods defines the I/O methods for injecting I/O chaos action.
	// default: all I/O methods.
	Methods []IoMethod `json:"methods,omitempty" faker:"ioMethods"`

	// Percent defines the percentage of injection errors and provides a number from 0-100.
	// default: 100.
	Percent int `json:"percent,omitempty" webhook:"Percent"`

	// VolumePath represents the mount path of injected volume
	VolumePath string `json:"volumePath"`

	// Duration represents the duration of the chaos action.
	// It is required when the action is `PodFailureAction`.
	// A duration string is a possibly signed sequence of
	// decimal numbers, each with optional fraction and a unit suffix,
	// such as "300ms", "-1.5h" or "2h45m".
	// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

IOChaosSpec defines the desired state of IOChaos

func (*IOChaosSpec) DeepCopy

func (in *IOChaosSpec) DeepCopy() *IOChaosSpec

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

func (*IOChaosSpec) DeepCopyInto

func (in *IOChaosSpec) DeepCopyInto(out *IOChaosSpec)

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

func (*IOChaosSpec) GetDuration

func (in *IOChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type IOChaosStatus

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

	// Instances always specifies podiochaos generation or empty
	Instances map[string]int64 `json:"instances,omitempty"`
}

IOChaosStatus defines the observed state of IOChaos

func (*IOChaosStatus) DeepCopy

func (in *IOChaosStatus) DeepCopy() *IOChaosStatus

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

func (*IOChaosStatus) DeepCopyInto

func (in *IOChaosStatus) DeepCopyInto(out *IOChaosStatus)

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

type IOChaosType

type IOChaosType string

IOChaosType represents the type of IOChaos Action

const (
	// IoLatency represents injecting latency for io operation
	IoLatency IOChaosType = "latency"

	// IoFaults represents injecting faults for io operation
	IoFaults IOChaosType = "fault"

	// IoAttrOverride represents replacing attribution for io operation
	IoAttrOverride IOChaosType = "attrOverride"

	// IoMistake represents injecting incorrect read or write for io operation
	IoMistake IOChaosType = "mistake"
)

type IPSetType

type IPSetType string

IPSetType represents the type of IP set

const (
	SetIPSet     IPSetType = "list:set"
	NetPortIPSet IPSetType = "hash:net,port"
	NetIPSet     IPSetType = "hash:net"
)

type InnerObject

type InnerObject interface {
	StatefulObject
	IsDeleted() bool
	IsPaused() bool
	DurationExceeded(time.Time) (bool, time.Duration, error)
	IsOneShot() bool
}

InnerObject is basic Object for the Reconciler

type InnerObjectWithCustomStatus

type InnerObjectWithCustomStatus interface {
	InnerObject

	GetCustomStatus() interface{}
}

type InnerObjectWithSelector

type InnerObjectWithSelector interface {
	InnerObject

	GetSelectorSpecs() map[string]interface{}
}

type IoFault

type IoFault struct {
	Errno  uint32 `json:"errno"`
	Weight int32  `json:"weight"`
}

IoFault represents the fault to inject and their weight

func (*IoFault) DeepCopy

func (in *IoFault) DeepCopy() *IoFault

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

func (*IoFault) DeepCopyInto

func (in *IoFault) DeepCopyInto(out *IoFault)

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

type IoMethod

type IoMethod string
const (
	LookUp      IoMethod = "lookup"
	Forget      IoMethod = "forget"
	GetAttr     IoMethod = "getattr"
	SetAttr     IoMethod = "setattr"
	ReadLink    IoMethod = "readlink"
	Mknod       IoMethod = "mknod"
	Mkdir       IoMethod = "mkdir"
	UnLink      IoMethod = "unlink"
	Rmdir       IoMethod = "rmdir"
	MSymlink    IoMethod = "symlink"
	Rename      IoMethod = "rename"
	Link        IoMethod = "link"
	Open        IoMethod = "open"
	Read        IoMethod = "read"
	Write       IoMethod = "write"
	Flush       IoMethod = "flush"
	Release     IoMethod = "release"
	Fsync       IoMethod = "fsync"
	Opendir     IoMethod = "opendir"
	Readdir     IoMethod = "readdir"
	Releasedir  IoMethod = "releasedir"
	Fsyncdir    IoMethod = "fsyncdir"
	Statfs      IoMethod = "statfs"
	SetXAttr    IoMethod = "setxattr"
	GetXAttr    IoMethod = "getxattr"
	ListXAttr   IoMethod = "listxattr"
	RemoveXAttr IoMethod = "removexattr"
	Access      IoMethod = "access"
	Create      IoMethod = "create"
	GetLk       IoMethod = "getlk"
	SetLk       IoMethod = "setlk"
	Bmap        IoMethod = "bmap"
)

type JVMChaos

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

	Spec   JVMChaosSpec   `json:"spec,omitempty"`
	Status JVMChaosStatus `json:"status,omitempty"`
}

JVMChaos is the Schema for the jvmchaos API

func (*JVMChaos) DeepCopy

func (in *JVMChaos) DeepCopy() *JVMChaos

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

func (*JVMChaos) DeepCopyInto

func (in *JVMChaos) DeepCopyInto(out *JVMChaos)

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

func (*JVMChaos) DeepCopyObject

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

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

func (*JVMChaos) DurationExceeded

func (in *JVMChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*JVMChaos) GetObjectMeta

func (in *JVMChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*JVMChaos) GetRemoteCluster

func (in *JVMChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*JVMChaos) GetSelectorSpecs

func (obj *JVMChaos) GetSelectorSpecs() map[string]interface{}

func (*JVMChaos) GetSpecAndMetaString

func (in *JVMChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*JVMChaos) GetStatus

func (in *JVMChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*JVMChaos) IsDeleted

func (in *JVMChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*JVMChaos) IsOneShot

func (in *JVMChaos) IsOneShot() bool

func (*JVMChaos) IsPaused

func (in *JVMChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type JVMChaosAction

type JVMChaosAction string

JVMChaosAction represents the chaos action about jvm

const (
	// JVMLatencyAction represents the JVM chaos action of invoke latency
	JVMLatencyAction JVMChaosAction = "latency"

	// JVMReturnAction represents the JVM chaos action of return value
	JVMReturnAction JVMChaosAction = "return"

	// JVMExceptionAction represents the JVM chaos action of throwing custom exceptions
	JVMExceptionAction JVMChaosAction = "exception"

	// JVMStressAction represents the JVM chaos action of stress like CPU and memory
	JVMStressAction JVMChaosAction = "stress"

	// JVMGCAction represents the JVM chaos action of trigger garbage collection
	JVMGCAction JVMChaosAction = "gc"

	// JVMRuleDataAction represents inject fault with byteman's rule
	// refer to https://downloads.jboss.org/byteman/4.0.14/byteman-programmers-guide.html#the-byteman-rule-language
	JVMRuleDataAction JVMChaosAction = "ruleData"

	// JVMMySQLAction represents the JVM chaos action of mysql java client fault injection
	JVMMySQLAction JVMChaosAction = "mysql"
)

type JVMChaosList

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

JVMChaosList contains a list of JVMChaos

func (*JVMChaosList) DeepCopy

func (in *JVMChaosList) DeepCopy() *JVMChaosList

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

func (*JVMChaosList) DeepCopyInto

func (in *JVMChaosList) DeepCopyInto(out *JVMChaosList)

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

func (*JVMChaosList) DeepCopyList

func (in *JVMChaosList) DeepCopyList() GenericChaosList

func (*JVMChaosList) DeepCopyObject

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

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

func (*JVMChaosList) GetItems

func (in *JVMChaosList) GetItems() []GenericChaos

func (*JVMChaosList) ListChaos

func (in *JVMChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type JVMChaosSpec

type JVMChaosSpec struct {
	ContainerSelector `json:",inline"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// Action defines the specific jvm chaos action.
	// Supported action: latency;return;exception;stress;gc;ruleData
	Action JVMChaosAction `json:"action"`

	// JVMParameter represents the detail about jvm chaos action definition
	JVMParameter `json:",inline"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

JVMChaosSpec defines the desired state of JVMChaos

func (*JVMChaosSpec) DeepCopy

func (in *JVMChaosSpec) DeepCopy() *JVMChaosSpec

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

func (*JVMChaosSpec) DeepCopyInto

func (in *JVMChaosSpec) DeepCopyInto(out *JVMChaosSpec)

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

func (*JVMChaosSpec) GetDuration

func (in *JVMChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type JVMChaosStatus

type JVMChaosStatus struct {
	ChaosStatus `json:",inline"`
}

JVMChaosStatus defines the observed state of JVMChaos

func (*JVMChaosStatus) DeepCopy

func (in *JVMChaosStatus) DeepCopy() *JVMChaosStatus

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

func (*JVMChaosStatus) DeepCopyInto

func (in *JVMChaosStatus) DeepCopyInto(out *JVMChaosStatus)

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

type JVMClassMethodSpec

type JVMClassMethodSpec struct {
	// Java class
	Class string `json:"class,omitempty"`

	// the method in Java class
	Method string `json:"method,omitempty"`
}

JVMClassMethodSpec is the specification for class and method

func (*JVMClassMethodSpec) DeepCopy

func (in *JVMClassMethodSpec) DeepCopy() *JVMClassMethodSpec

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

func (*JVMClassMethodSpec) DeepCopyInto

func (in *JVMClassMethodSpec) DeepCopyInto(out *JVMClassMethodSpec)

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

type JVMCommonSpec

type JVMCommonSpec struct {
	// the port of agent server, default 9277
	Port int32 `json:"port,omitempty"`

	// the pid of Java process which needs to attach
	Pid int `json:"pid,omitempty"`
}

JVMCommonSpec is the common specification for JVMChaos

func (*JVMCommonSpec) DeepCopy

func (in *JVMCommonSpec) DeepCopy() *JVMCommonSpec

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

func (*JVMCommonSpec) DeepCopyInto

func (in *JVMCommonSpec) DeepCopyInto(out *JVMCommonSpec)

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

type JVMExceptionSpec

type JVMExceptionSpec struct {
	JVMCommonSpec      `json:",inline"`
	JVMClassMethodSpec `json:",inline"`

	// the exception which needs to throw for action `exception`
	ThrowException string `json:"exception,omitempty"`
}

func (*JVMExceptionSpec) DeepCopy

func (in *JVMExceptionSpec) DeepCopy() *JVMExceptionSpec

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

func (*JVMExceptionSpec) DeepCopyInto

func (in *JVMExceptionSpec) DeepCopyInto(out *JVMExceptionSpec)

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

type JVMGCSpec

type JVMGCSpec struct {
	JVMCommonSpec `json:",inline"`
}

func (*JVMGCSpec) DeepCopy

func (in *JVMGCSpec) DeepCopy() *JVMGCSpec

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

func (*JVMGCSpec) DeepCopyInto

func (in *JVMGCSpec) DeepCopyInto(out *JVMGCSpec)

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

type JVMLatencySpec

type JVMLatencySpec struct {
	JVMCommonSpec      `json:",inline"`
	JVMClassMethodSpec `json:",inline"`

	// the latency duration for action 'latency', unit ms
	LatencyDuration int `json:"latency,omitempty"`
}

func (*JVMLatencySpec) DeepCopy

func (in *JVMLatencySpec) DeepCopy() *JVMLatencySpec

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

func (*JVMLatencySpec) DeepCopyInto

func (in *JVMLatencySpec) DeepCopyInto(out *JVMLatencySpec)

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

type JVMMySQLSpec

type JVMMySQLSpec struct {
	// the version of mysql-connector-java, only support 5.X.X(set to "5") and 8.X.X(set to "8") now
	MySQLConnectorVersion string `json:"mysqlConnectorVersion,omitempty"`

	// the match database
	// default value is "", means match all database
	Database string `json:"database,omitempty"`

	// the match table
	// default value is "", means match all table
	Table string `json:"table,omitempty"`

	// the match sql type
	// default value is "", means match all SQL type.
	// The value can be 'select', 'insert', 'update', 'delete', 'replace'.
	SQLType string `json:"sqlType,omitempty"`
}

JVMMySQLSpec is the specification of MySQL fault injection in JVM only when SQL match the Database, Table and SQLType, JVMChaos mesh will inject fault for examle:

SQL is "select * from test.t1",
only when ((Database == "test" || Database == "") && (Table == "t1" || Table == "") && (SQLType == "select" || SQLType == "")) is true, JVMChaos will inject fault

func (*JVMMySQLSpec) DeepCopy

func (in *JVMMySQLSpec) DeepCopy() *JVMMySQLSpec

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

func (*JVMMySQLSpec) DeepCopyInto

func (in *JVMMySQLSpec) DeepCopyInto(out *JVMMySQLSpec)

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

type JVMParameter

type JVMParameter struct {
	JVMCommonSpec `json:",inline"`

	JVMClassMethodSpec `json:",inline"`

	JVMStressCfgSpec `json:",inline"`

	JVMMySQLSpec `json:",inline"`

	// byteman rule name, should be unique, and will generate one if not set
	Name string `json:"name"`

	// the return value for action 'return'
	ReturnValue string `json:"value"`

	// the exception which needs to throw for action `exception`
	// or the exception message needs to throw in action `mysql`
	ThrowException string `json:"exception"`

	// the latency duration for action 'latency', unit ms
	// or the latency duration in action `mysql`
	LatencyDuration int `json:"latency"`

	// the byteman rule's data for action 'ruleData'
	RuleData string `json:"ruleData"`
}

JVMParameter represents the detail about jvm chaos action definition

func (*JVMParameter) DeepCopy

func (in *JVMParameter) DeepCopy() *JVMParameter

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

func (*JVMParameter) DeepCopyInto

func (in *JVMParameter) DeepCopyInto(out *JVMParameter)

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

type JVMReturnSpec

type JVMReturnSpec struct {
	JVMCommonSpec      `json:",inline"`
	JVMClassMethodSpec `json:",inline"`

	// the return value for action 'return'
	ReturnValue string `json:"value,omitempty"`
}

func (*JVMReturnSpec) DeepCopy

func (in *JVMReturnSpec) DeepCopy() *JVMReturnSpec

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

func (*JVMReturnSpec) DeepCopyInto

func (in *JVMReturnSpec) DeepCopyInto(out *JVMReturnSpec)

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

type JVMRuleDataSpec

type JVMRuleDataSpec struct {
	JVMCommonSpec `json:",inline"`

	// RuleData used to save the rule file's data, will use it when recover
	RuleData string `json:"rule-data,omitempty"`
}

func (*JVMRuleDataSpec) DeepCopy

func (in *JVMRuleDataSpec) DeepCopy() *JVMRuleDataSpec

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

func (*JVMRuleDataSpec) DeepCopyInto

func (in *JVMRuleDataSpec) DeepCopyInto(out *JVMRuleDataSpec)

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

type JVMStressCfgSpec

type JVMStressCfgSpec struct {
	// the CPU core number needs to use, only set it when action is stress
	CPUCount int `json:"cpuCount,omitempty"`

	// the memory type needs to locate, only set it when action is stress, the value can be 'stack' or 'heap'
	MemoryType string `json:"memType,omitempty"`
}

JVMStressSpec is the specification for stress

func (*JVMStressCfgSpec) DeepCopy

func (in *JVMStressCfgSpec) DeepCopy() *JVMStressCfgSpec

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

func (*JVMStressCfgSpec) DeepCopyInto

func (in *JVMStressCfgSpec) DeepCopyInto(out *JVMStressCfgSpec)

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

type JVMStressSpec

type JVMStressSpec struct {
	JVMCommonSpec `json:",inline"`

	// the CPU core number need to use, only set it when action is stress
	CPUCount int `json:"cpu-count,omitempty"`

	// the memory type need to locate, only set it when action is stress, the value can be 'stack' or 'heap'
	MemoryType string `json:"mem-type,omitempty"`
}

func (*JVMStressSpec) DeepCopy

func (in *JVMStressSpec) DeepCopy() *JVMStressSpec

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

func (*JVMStressSpec) DeepCopyInto

func (in *JVMStressSpec) DeepCopyInto(out *JVMStressSpec)

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

type KafkaCommonSpec

type KafkaCommonSpec struct {
	// The topic to attack
	Topic string `json:"topic,omitempty"`
	// The host of kafka server
	Host string `json:"host,omitempty"`
	// The port of kafka server
	Port uint16 `json:"port,omitempty"`
	// The username of kafka client
	Username string `json:"username,omitempty"`
	// The password of kafka client
	Password string `json:"password,omitempty"`
}

func (*KafkaCommonSpec) DeepCopy

func (in *KafkaCommonSpec) DeepCopy() *KafkaCommonSpec

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

func (*KafkaCommonSpec) DeepCopyInto

func (in *KafkaCommonSpec) DeepCopyInto(out *KafkaCommonSpec)

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

type KafkaFillSpec

type KafkaFillSpec struct {
	KafkaCommonSpec `       json:",inline"`
	// The size of each message
	MessageSize uint `json:"messageSize,omitempty"`
	// The max bytes to fill
	MaxBytes uint64 `json:"maxBytes,omitempty"`
	// The command to reload kafka config
	ReloadCommand string `json:"reloadCommand,omitempty"`
}

func (*KafkaFillSpec) DeepCopy

func (in *KafkaFillSpec) DeepCopy() *KafkaFillSpec

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

func (*KafkaFillSpec) DeepCopyInto

func (in *KafkaFillSpec) DeepCopyInto(out *KafkaFillSpec)

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

type KafkaFloodSpec

type KafkaFloodSpec struct {
	KafkaCommonSpec `     json:",inline"`
	// The size of each message
	MessageSize uint `json:"messageSize,omitempty"`
	// The number of worker threads
	Threads uint `json:"threads,omitempty"`
}

func (*KafkaFloodSpec) DeepCopy

func (in *KafkaFloodSpec) DeepCopy() *KafkaFloodSpec

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

func (*KafkaFloodSpec) DeepCopyInto

func (in *KafkaFloodSpec) DeepCopyInto(out *KafkaFloodSpec)

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

type KafkaIOSpec

type KafkaIOSpec struct {
	// The topic to attack
	Topic string `json:"topic,omitempty"`
	// The path of server config
	ConfigFile string `json:"configFile,omitempty"`
	// Make kafka cluster non-readable
	NonReadable bool `json:"nonReadable,omitempty"`
	// Make kafka cluster non-writable
	NonWritable bool `json:"nonWritable,omitempty"`
}

func (*KafkaIOSpec) DeepCopy

func (in *KafkaIOSpec) DeepCopy() *KafkaIOSpec

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

func (*KafkaIOSpec) DeepCopyInto

func (in *KafkaIOSpec) DeepCopyInto(out *KafkaIOSpec)

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

type KernelChaos

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

	// Spec defines the behavior of a kernel chaos experiment
	Spec KernelChaosSpec `json:"spec"`

	// Most recently observed status of the kernel chaos experiment
	Status KernelChaosStatus `json:"status"`
}

KernelChaos is the Schema for the kernelchaos API

func (*KernelChaos) DeepCopy

func (in *KernelChaos) DeepCopy() *KernelChaos

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

func (*KernelChaos) DeepCopyInto

func (in *KernelChaos) DeepCopyInto(out *KernelChaos)

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

func (*KernelChaos) DeepCopyObject

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

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

func (*KernelChaos) DurationExceeded

func (in *KernelChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*KernelChaos) GetObjectMeta

func (in *KernelChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*KernelChaos) GetRemoteCluster

func (in *KernelChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*KernelChaos) GetSelectorSpecs

func (obj *KernelChaos) GetSelectorSpecs() map[string]interface{}

func (*KernelChaos) GetSpecAndMetaString

func (in *KernelChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*KernelChaos) GetStatus

func (in *KernelChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*KernelChaos) IsDeleted

func (in *KernelChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*KernelChaos) IsOneShot

func (in *KernelChaos) IsOneShot() bool

func (*KernelChaos) IsPaused

func (in *KernelChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type KernelChaosList

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

KernelChaosList contains a list of KernelChaos

func (*KernelChaosList) DeepCopy

func (in *KernelChaosList) DeepCopy() *KernelChaosList

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

func (*KernelChaosList) DeepCopyInto

func (in *KernelChaosList) DeepCopyInto(out *KernelChaosList)

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

func (*KernelChaosList) DeepCopyList

func (in *KernelChaosList) DeepCopyList() GenericChaosList

func (*KernelChaosList) DeepCopyObject

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

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

func (*KernelChaosList) GetItems

func (in *KernelChaosList) GetItems() []GenericChaos

func (*KernelChaosList) ListChaos

func (in *KernelChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type KernelChaosSpec

type KernelChaosSpec struct {
	ContainerSelector `json:",inline"`

	// FailKernRequest defines the request of kernel injection
	FailKernRequest FailKernRequest `json:"failKernRequest"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

KernelChaosSpec defines the desired state of KernelChaos

func (*KernelChaosSpec) DeepCopy

func (in *KernelChaosSpec) DeepCopy() *KernelChaosSpec

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

func (*KernelChaosSpec) DeepCopyInto

func (in *KernelChaosSpec) DeepCopyInto(out *KernelChaosSpec)

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

func (*KernelChaosSpec) GetDuration

func (in *KernelChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type KernelChaosStatus

type KernelChaosStatus struct {
	ChaosStatus `json:",inline"`
}

KernelChaosStatus defines the observed state of KernelChaos

func (*KernelChaosStatus) DeepCopy

func (in *KernelChaosStatus) DeepCopy() *KernelChaosStatus

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

func (*KernelChaosStatus) DeepCopyInto

func (in *KernelChaosStatus) DeepCopyInto(out *KernelChaosStatus)

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

type LabelSelectorRequirements

type LabelSelectorRequirements []metav1.LabelSelectorRequirement

LabelSelectorRequirements is list of LabelSelectorRequirement

func (LabelSelectorRequirements) DeepCopy

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

func (LabelSelectorRequirements) DeepCopyInto

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

type LossSpec

type LossSpec struct {
	Loss        string `json:"loss"                  webhook:"FloatStr"`
	Correlation string `json:"correlation,omitempty" webhook:"FloatStr" default:"0"`
}

LossSpec defines detail of a loss action

func (*LossSpec) DeepCopy

func (in *LossSpec) DeepCopy() *LossSpec

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

func (*LossSpec) DeepCopyInto

func (in *LossSpec) DeepCopyInto(out *LossSpec)

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

type MemoryStressor

type MemoryStressor struct {
	Stressor `json:",inline"`

	// Size specifies N bytes consumed per vm worker, default is the total available memory.
	// One can specify the size as % of total available memory or in units of B, KB/KiB,
	// MB/MiB, GB/GiB, TB/TiB.
	Size string `json:"size,omitempty" webhook:"Bytes"`

	// OOMScoreAdj sets the oom_score_adj of the stress process. See `man 5 proc` to know more
	// about this option.
	OOMScoreAdj int `json:"oomScoreAdj,omitempty"`

	// extend stress-ng options
	Options []string `json:"options,omitempty"`
}

MemoryStressor defines how to stress memory out

func (*MemoryStressor) DeepCopy

func (in *MemoryStressor) DeepCopy() *MemoryStressor

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

func (*MemoryStressor) DeepCopyInto

func (in *MemoryStressor) DeepCopyInto(out *MemoryStressor)

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

type MistakeSpec

type MistakeSpec struct {
	// Filling determines what is filled in the mistake data.
	Filling FillingType `json:"filling,omitempty"`

	// There will be [1, MaxOccurrences] segments of wrong data.
	MaxOccurrences int64 `json:"maxOccurrences,omitempty"`

	// Max length of each wrong data segment in bytes
	MaxLength int64 `json:"maxLength,omitempty"`
}

MistakeSpec represents one type of mistake

func (*MistakeSpec) DeepCopy

func (in *MistakeSpec) DeepCopy() *MistakeSpec

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

func (*MistakeSpec) DeepCopyInto

func (in *MistakeSpec) DeepCopyInto(out *MistakeSpec)

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

type NetworkBandwidthSpec

type NetworkBandwidthSpec struct {
	Rate   string `json:"rate"`
	Limit  uint32 `json:"limit"`
	Buffer uint32 `json:"buffer"`

	Peakrate *uint64 `json:"peakrate,omitempty"`
	Minburst *uint32 `json:"minburst,omitempty"`

	Device    string `json:"device,omitempty"`
	IPAddress string `json:"ip-address,omitempty"`
	Hostname  string `json:"hostname,omitempty"`
}

func (*NetworkBandwidthSpec) DeepCopy

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

func (*NetworkBandwidthSpec) DeepCopyInto

func (in *NetworkBandwidthSpec) DeepCopyInto(out *NetworkBandwidthSpec)

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

type NetworkChaos

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

	// Spec defines the behavior of a pod chaos experiment
	Spec NetworkChaosSpec `json:"spec"`

	// Most recently observed status of the chaos experiment about pods
	Status NetworkChaosStatus `json:"status,omitempty"`
}

NetworkChaos is the Schema for the networkchaos API

func (*NetworkChaos) DeepCopy

func (in *NetworkChaos) DeepCopy() *NetworkChaos

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

func (*NetworkChaos) DeepCopyInto

func (in *NetworkChaos) DeepCopyInto(out *NetworkChaos)

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

func (*NetworkChaos) DeepCopyObject

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

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

func (*NetworkChaos) DurationExceeded

func (in *NetworkChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*NetworkChaos) GetCustomStatus

func (obj *NetworkChaos) GetCustomStatus() interface{}

func (*NetworkChaos) GetObjectMeta

func (in *NetworkChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*NetworkChaos) GetRemoteCluster

func (in *NetworkChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*NetworkChaos) GetSelectorSpecs

func (obj *NetworkChaos) GetSelectorSpecs() map[string]interface{}

func (*NetworkChaos) GetSpecAndMetaString

func (in *NetworkChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*NetworkChaos) GetStatus

func (in *NetworkChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*NetworkChaos) IsDeleted

func (in *NetworkChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*NetworkChaos) IsOneShot

func (in *NetworkChaos) IsOneShot() bool

func (*NetworkChaos) IsPaused

func (in *NetworkChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type NetworkChaosAction

type NetworkChaosAction string

NetworkChaosAction represents the chaos action about network.

const (
	// NetemAction is a combination of several chaos actions i.e. delay, loss, duplicate, corrupt.
	// When using this action multiple specs are merged into one Netem RPC and sends to chaos daemon.
	NetemAction NetworkChaosAction = "netem"

	// DelayAction represents the chaos action of adding delay on pods.
	DelayAction NetworkChaosAction = "delay"

	// LossAction represents the chaos action of losing packets on pods.
	LossAction NetworkChaosAction = "loss"

	// DuplicateAction represents the chaos action of duplicating packets on pods.
	DuplicateAction NetworkChaosAction = "duplicate"

	// CorruptAction represents the chaos action of corrupting packets on pods.
	CorruptAction NetworkChaosAction = "corrupt"

	// PartitionAction represents the chaos action of network partition of pods.
	PartitionAction NetworkChaosAction = "partition"

	// BandwidthAction represents the chaos action of network bandwidth of pods.
	BandwidthAction NetworkChaosAction = "bandwidth"
)

type NetworkChaosList

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

NetworkChaosList contains a list of NetworkChaos

func (*NetworkChaosList) DeepCopy

func (in *NetworkChaosList) DeepCopy() *NetworkChaosList

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

func (*NetworkChaosList) DeepCopyInto

func (in *NetworkChaosList) DeepCopyInto(out *NetworkChaosList)

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

func (*NetworkChaosList) DeepCopyList

func (in *NetworkChaosList) DeepCopyList() GenericChaosList

func (*NetworkChaosList) DeepCopyObject

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

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

func (*NetworkChaosList) GetItems

func (in *NetworkChaosList) GetItems() []GenericChaos

func (*NetworkChaosList) ListChaos

func (in *NetworkChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type NetworkChaosSpec

type NetworkChaosSpec struct {
	PodSelector `json:",inline"`

	// Action defines the specific network chaos action.
	// Supported action: partition, netem, delay, loss, duplicate, corrupt
	// Default action: delay
	Action NetworkChaosAction `json:"action"`

	// Device represents the network device to be affected.
	Device string `json:"device,omitempty"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// TcParameter represents the traffic control definition
	TcParameter `json:",inline"`

	// Direction represents the direction, this applies on netem and network partition action
	Direction Direction `json:"direction,omitempty"`

	// Target represents network target, this applies on netem and network partition action
	Target *PodSelector `json:"target,omitempty" webhook:",nilable"`

	// TargetDevice represents the network device to be affected in target scope.
	TargetDevice string `json:"targetDevice,omitempty"`

	// ExternalTargets represents network targets outside k8s
	ExternalTargets []string `json:"externalTargets,omitempty"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

NetworkChaosSpec defines the desired state of NetworkChaos

func (*NetworkChaosSpec) DeepCopy

func (in *NetworkChaosSpec) DeepCopy() *NetworkChaosSpec

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

func (*NetworkChaosSpec) DeepCopyInto

func (in *NetworkChaosSpec) DeepCopyInto(out *NetworkChaosSpec)

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

func (*NetworkChaosSpec) GetDuration

func (in *NetworkChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type NetworkChaosStatus

type NetworkChaosStatus struct {
	ChaosStatus `                 json:",inline"`
	// Instances always specifies podnetworkchaos generation or empty
	Instances map[string]int64 `json:"instances,omitempty"`
}

NetworkChaosStatus defines the observed state of NetworkChaos

func (*NetworkChaosStatus) DeepCopy

func (in *NetworkChaosStatus) DeepCopy() *NetworkChaosStatus

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

func (*NetworkChaosStatus) DeepCopyInto

func (in *NetworkChaosStatus) DeepCopyInto(out *NetworkChaosStatus)

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

type NetworkCommonSpec

type NetworkCommonSpec struct {
	// correlation is percentage (10 is 10%)
	Correlation string `json:"correlation,omitempty"`
	// the network interface to impact
	Device string `json:"device,omitempty"`
	// only impact egress traffic from these source ports, use a ',' to separate or to indicate the range, such as 80, 8001:8010.
	// it can only be used in conjunction with -p tcp or -p udp
	SourcePort string `json:"source-port,omitempty"`
	// only impact egress traffic to these destination ports, use a ',' to separate or to indicate the range, such as 80, 8001:8010.
	// it can only be used in conjunction with -p tcp or -p udp
	EgressPort string `json:"egress-port,omitempty"`
	// only impact egress traffic to these IP addresses
	IPAddress string `json:"ip-address,omitempty"`
	// only impact traffic using this IP protocol, supported: tcp, udp, icmp, all
	IPProtocol string `json:"ip-protocol,omitempty"`
	// only impact traffic to these hostnames
	Hostname string `json:"hostname,omitempty"`
}

func (*NetworkCommonSpec) DeepCopy

func (in *NetworkCommonSpec) DeepCopy() *NetworkCommonSpec

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

func (*NetworkCommonSpec) DeepCopyInto

func (in *NetworkCommonSpec) DeepCopyInto(out *NetworkCommonSpec)

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

type NetworkCorruptSpec

type NetworkCorruptSpec struct {
	NetworkCommonSpec `json:",inline"`

	// percentage of packets to corrupt (10 is 10%)
	Percent string `json:"percent,omitempty"`
}

func (*NetworkCorruptSpec) DeepCopy

func (in *NetworkCorruptSpec) DeepCopy() *NetworkCorruptSpec

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

func (*NetworkCorruptSpec) DeepCopyInto

func (in *NetworkCorruptSpec) DeepCopyInto(out *NetworkCorruptSpec)

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

type NetworkDNSSpec

type NetworkDNSSpec struct {
	// update the DNS server in /etc/resolv.conf with this value
	DNSServer string `json:"dns-server,omitempty"`
	// map specified host to this IP address
	DNSIp string `json:"dns-ip,omitempty"`
	// map this host to specified IP
	DNSDomainName string `json:"dns-domain-name,omitempty"`
}

func (*NetworkDNSSpec) DeepCopy

func (in *NetworkDNSSpec) DeepCopy() *NetworkDNSSpec

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

func (*NetworkDNSSpec) DeepCopyInto

func (in *NetworkDNSSpec) DeepCopyInto(out *NetworkDNSSpec)

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

type NetworkDelaySpec

type NetworkDelaySpec struct {
	NetworkCommonSpec `json:",inline"`

	// jitter time, time units: ns, us (or µs), ms, s, m, h.
	Jitter string `json:"jitter,omitempty"`
	// delay egress time, time units: ns, us (or µs), ms, s, m, h.
	Latency string `json:"latency,omitempty"`
	// only the packet which match the tcp flag can be accepted, others will be dropped.
	// only set when the IPProtocol is tcp, used for partition.
	AcceptTCPFlags string `json:"accept-tcp-flags,omitempty"`
}

func (*NetworkDelaySpec) DeepCopy

func (in *NetworkDelaySpec) DeepCopy() *NetworkDelaySpec

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

func (*NetworkDelaySpec) DeepCopyInto

func (in *NetworkDelaySpec) DeepCopyInto(out *NetworkDelaySpec)

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

type NetworkDownSpec

type NetworkDownSpec struct {
	// The network interface to impact
	Device string `json:"device,omitempty"`
	// NIC down time, time units: ns, us (or µs), ms, s, m, h.
	Duration string `json:"duration,omitempty"`
}

func (*NetworkDownSpec) DeepCopy

func (in *NetworkDownSpec) DeepCopy() *NetworkDownSpec

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

func (*NetworkDownSpec) DeepCopyInto

func (in *NetworkDownSpec) DeepCopyInto(out *NetworkDownSpec)

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

type NetworkDuplicateSpec

type NetworkDuplicateSpec struct {
	NetworkCommonSpec `json:",inline"`

	// percentage of packets to duplicate (10 is 10%)
	Percent string `json:"percent,omitempty"`
}

func (*NetworkDuplicateSpec) DeepCopy

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

func (*NetworkDuplicateSpec) DeepCopyInto

func (in *NetworkDuplicateSpec) DeepCopyInto(out *NetworkDuplicateSpec)

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

type NetworkFloodSpec

type NetworkFloodSpec struct {
	// The speed of network traffic, allows bps, kbps, mbps, gbps, tbps unit. bps means bytes per second
	Rate string `json:"rate"`
	// Generate traffic to this IP address
	IPAddress string `json:"ip-address,omitempty"`
	// Generate traffic to this port on the IP address
	Port string `json:"port,omitempty"`
	// The number of iperf parallel client threads to run
	Parallel int32 `json:"parallel,omitempty"`
	// The number of seconds to run the iperf test
	Duration string `json:"duration"`
}

func (*NetworkFloodSpec) DeepCopy

func (in *NetworkFloodSpec) DeepCopy() *NetworkFloodSpec

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

func (*NetworkFloodSpec) DeepCopyInto

func (in *NetworkFloodSpec) DeepCopyInto(out *NetworkFloodSpec)

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

type NetworkLossSpec

type NetworkLossSpec struct {
	NetworkCommonSpec `json:",inline"`

	// percentage of packets to loss (10 is 10%)
	Percent string `json:"percent,omitempty"`
}

func (*NetworkLossSpec) DeepCopy

func (in *NetworkLossSpec) DeepCopy() *NetworkLossSpec

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

func (*NetworkLossSpec) DeepCopyInto

func (in *NetworkLossSpec) DeepCopyInto(out *NetworkLossSpec)

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

type NetworkPartitionSpec

type NetworkPartitionSpec struct {
	// the network interface to impact
	Device string `json:"device,omitempty"`
	// only impact traffic to these hostnames
	Hostname string `json:"hostname,omitempty"`
	// only impact egress traffic to these IP addresses
	IPAddress string `json:"ip-address,omitempty"`
	// specifies the partition direction, values can be 'from', 'to'.
	// 'from' means packets coming from the 'IPAddress' or 'Hostname' and going to your server,
	// 'to' means packets originating from your server and going to the 'IPAddress' or 'Hostname'.
	Direction string `json:"direction,omitempty"`
	// only impact egress traffic to these IP addresses
	IPProtocol string `json:"ip-protocol,omitempty"`
	// only the packet which match the tcp flag can be accepted, others will be dropped.
	// only set when the IPProtocol is tcp, used for partition.
	AcceptTCPFlags string `json:"accept-tcp-flags,omitempty"`
}

func (*NetworkPartitionSpec) DeepCopy

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

func (*NetworkPartitionSpec) DeepCopyInto

func (in *NetworkPartitionSpec) DeepCopyInto(out *NetworkPartitionSpec)

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

type PMJVMMySQLSpec

type PMJVMMySQLSpec struct {
	JVMCommonSpec `json:",inline"`

	JVMMySQLSpec `json:",inline"`

	// The exception which needs to throw for action `exception`
	// or the exception message needs to throw in action `mysql`
	ThrowException string `json:"exception,omitempty"`

	// The latency duration for action 'latency'
	// or the latency duration in action `mysql`
	LatencyDuration int `json:"latency,omitempty"`
}

func (*PMJVMMySQLSpec) DeepCopy

func (in *PMJVMMySQLSpec) DeepCopy() *PMJVMMySQLSpec

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

func (*PMJVMMySQLSpec) DeepCopyInto

func (in *PMJVMMySQLSpec) DeepCopyInto(out *PMJVMMySQLSpec)

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

type Phase

type Phase string
const (
	// NotInjected means the target is not injected yet. The controller could call "Inject" on the target
	NotInjected Phase = "Not Injected"
	// Injected means the target is injected. It's safe to recover it.
	Injected Phase = "Injected"
)

type PhysicalMachine

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

	// Spec defines the behavior of a physical machine
	Spec PhysicalMachineSpec `json:"spec"`
}

PhysicalMachine is the Schema for the physical machine API

func (*PhysicalMachine) DeepCopy

func (in *PhysicalMachine) DeepCopy() *PhysicalMachine

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

func (*PhysicalMachine) DeepCopyInto

func (in *PhysicalMachine) DeepCopyInto(out *PhysicalMachine)

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

func (*PhysicalMachine) DeepCopyObject

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

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

type PhysicalMachineChaos

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

	// Spec defines the behavior of a physical machine chaos experiment
	Spec PhysicalMachineChaosSpec `json:"spec"`

	// Most recently observed status of the chaos experiment
	Status PhysicalMachineChaosStatus `json:"status,omitempty"`
}

PhysicalMachineChaos is the Schema for the physical machine chaos API

func (*PhysicalMachineChaos) DeepCopy

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

func (*PhysicalMachineChaos) DeepCopyInto

func (in *PhysicalMachineChaos) DeepCopyInto(out *PhysicalMachineChaos)

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

func (*PhysicalMachineChaos) DeepCopyObject

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

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

func (*PhysicalMachineChaos) DurationExceeded

func (in *PhysicalMachineChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*PhysicalMachineChaos) GetObjectMeta

func (in *PhysicalMachineChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*PhysicalMachineChaos) GetRemoteCluster

func (in *PhysicalMachineChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*PhysicalMachineChaos) GetSelectorSpecs

func (obj *PhysicalMachineChaos) GetSelectorSpecs() map[string]interface{}

func (*PhysicalMachineChaos) GetSpecAndMetaString

func (in *PhysicalMachineChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*PhysicalMachineChaos) GetStatus

func (in *PhysicalMachineChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*PhysicalMachineChaos) IsDeleted

func (in *PhysicalMachineChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*PhysicalMachineChaos) IsOneShot

func (in *PhysicalMachineChaos) IsOneShot() bool

func (*PhysicalMachineChaos) IsPaused

func (in *PhysicalMachineChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type PhysicalMachineChaosAction

type PhysicalMachineChaosAction string

PhysicalMachineChaosAction represents the chaos action about physical machine.

var (
	PMStressCPUAction            PhysicalMachineChaosAction = "stress-cpu"
	PMStressMemAction            PhysicalMachineChaosAction = "stress-mem"
	PMDiskWritePayloadAction     PhysicalMachineChaosAction = "disk-write-payload"
	PMDiskReadPayloadAction      PhysicalMachineChaosAction = "disk-read-payload"
	PMDiskFillAction             PhysicalMachineChaosAction = "disk-fill"
	PMNetworkCorruptAction       PhysicalMachineChaosAction = "network-corrupt"
	PMNetworkDuplicateAction     PhysicalMachineChaosAction = "network-duplicate"
	PMNetworkLossAction          PhysicalMachineChaosAction = "network-loss"
	PMNetworkDelayAction         PhysicalMachineChaosAction = "network-delay"
	PMNetworkPartitionAction     PhysicalMachineChaosAction = "network-partition"
	PMNetworkBandwidthAction     PhysicalMachineChaosAction = "network-bandwidth"
	PMNetworkDNSAction           PhysicalMachineChaosAction = "network-dns"
	PMNetworkFloodAction         PhysicalMachineChaosAction = "network-flood"
	PMNetworkDownAction          PhysicalMachineChaosAction = "network-down"
	PMProcessAction              PhysicalMachineChaosAction = "process"
	PMJVMExceptionAction         PhysicalMachineChaosAction = "jvm-exception"
	PMJVMGCAction                PhysicalMachineChaosAction = "jvm-gc"
	PMJVMLatencyAction           PhysicalMachineChaosAction = "jvm-latency"
	PMJVMReturnAction            PhysicalMachineChaosAction = "jvm-return"
	PMJVMStressAction            PhysicalMachineChaosAction = "jvm-stress"
	PMJVMRuleDataAction          PhysicalMachineChaosAction = "jvm-rule-data"
	PMJVMMySQLAction             PhysicalMachineChaosAction = "jvm-mysql"
	PMClockAction                PhysicalMachineChaosAction = "clock"
	PMRedisExpirationAction      PhysicalMachineChaosAction = "redis-expiration"
	PMRedisPenetrationAction     PhysicalMachineChaosAction = "redis-penetration"
	PMRedisCacheLimitAction      PhysicalMachineChaosAction = "redis-cacheLimit"
	PMRedisSentinelRestartAction PhysicalMachineChaosAction = "redis-restart"
	PMRedisSentinelStopAction    PhysicalMachineChaosAction = "redis-stop"
	PMKafkaFillAction            PhysicalMachineChaosAction = "kafka-fill"
	PMKafkaFloodAction           PhysicalMachineChaosAction = "kafka-flood"
	PMKafkaIOAction              PhysicalMachineChaosAction = "kafka-io"
	PMHTTPAbortAction            PhysicalMachineChaosAction = "http-abort"
	PMHTTPDelayAction            PhysicalMachineChaosAction = "http-delay"
	PMHTTPConfigAction           PhysicalMachineChaosAction = "http-config"
	PMHTTPRequestAction          PhysicalMachineChaosAction = "http-request"
	PMFileCreateAction           PhysicalMachineChaosAction = "file-create"
	PMFileModifyPrivilegeAction  PhysicalMachineChaosAction = "file-modify"
	PMFileDeleteAction           PhysicalMachineChaosAction = "file-delete"
	PMFileRenameAction           PhysicalMachineChaosAction = "file-rename"
	PMFileAppendAction           PhysicalMachineChaosAction = "file-append"
	PMFileReplaceAction          PhysicalMachineChaosAction = "file-replace"
	PMVMAction                   PhysicalMachineChaosAction = "vm"
	PMUserDefinedAction          PhysicalMachineChaosAction = "user_defined"
)

type PhysicalMachineChaosList

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

PhysicalMachineChaosList contains a list of PhysicalMachineChaos

func (*PhysicalMachineChaosList) DeepCopy

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

func (*PhysicalMachineChaosList) DeepCopyInto

func (in *PhysicalMachineChaosList) DeepCopyInto(out *PhysicalMachineChaosList)

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

func (*PhysicalMachineChaosList) DeepCopyList

func (in *PhysicalMachineChaosList) DeepCopyList() GenericChaosList

func (*PhysicalMachineChaosList) DeepCopyObject

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

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

func (*PhysicalMachineChaosList) GetItems

func (in *PhysicalMachineChaosList) GetItems() []GenericChaos

func (*PhysicalMachineChaosList) ListChaos

func (in *PhysicalMachineChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type PhysicalMachineChaosSpec

type PhysicalMachineChaosSpec struct {
	Action PhysicalMachineChaosAction `json:"action"`

	PhysicalMachineSelector `json:",inline"`

	// ExpInfo string `json:"expInfo"`
	ExpInfo `json:",inline"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

PhysicalMachineChaosSpec defines the desired state of PhysicalMachineChaos

func (*PhysicalMachineChaosSpec) DeepCopy

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

func (*PhysicalMachineChaosSpec) DeepCopyInto

func (in *PhysicalMachineChaosSpec) DeepCopyInto(out *PhysicalMachineChaosSpec)

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

func (*PhysicalMachineChaosSpec) GetDuration

func (in *PhysicalMachineChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type PhysicalMachineChaosStatus

type PhysicalMachineChaosStatus struct {
	ChaosStatus `json:",inline"`
}

PhysicalMachineChaosStatus defines the observed state of PhysicalMachineChaos

func (*PhysicalMachineChaosStatus) DeepCopy

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

func (*PhysicalMachineChaosStatus) DeepCopyInto

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

type PhysicalMachineList

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

PhysicalMachineList contains a list of PhysicalMachine

func (*PhysicalMachineList) DeepCopy

func (in *PhysicalMachineList) DeepCopy() *PhysicalMachineList

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

func (*PhysicalMachineList) DeepCopyInto

func (in *PhysicalMachineList) DeepCopyInto(out *PhysicalMachineList)

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

func (*PhysicalMachineList) DeepCopyObject

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

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

type PhysicalMachineSelector

type PhysicalMachineSelector struct {
	// DEPRECATED: Use Selector instead.
	// Only one of Address and Selector could be specified.
	Address []string `json:"address,omitempty"`

	// Selector is used to select physical machines that are used to inject chaos action.
	Selector PhysicalMachineSelectorSpec `json:"selector,omitempty"`

	// Mode defines the mode to run chaos action.
	// Supported mode: one / all / fixed / fixed-percent / random-max-percent
	Mode SelectorMode `json:"mode"`

	// Value is required when the mode is set to `FixedMode` / `FixedPercentMode` / `RandomMaxPercentMode`.
	// If `FixedMode`, provide an integer of physical machines to do chaos action.
	// If `FixedPercentMode`, provide a number from 0-100 to specify the percent of physical machines the server can do chaos action.
	// IF `RandomMaxPercentMode`,  provide a number from 0-100 to specify the max percent of pods to do chaos action
	Value string `json:"value,omitempty"`
}

func (*PhysicalMachineSelector) DeepCopy

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

func (*PhysicalMachineSelector) DeepCopyInto

func (in *PhysicalMachineSelector) DeepCopyInto(out *PhysicalMachineSelector)

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

type PhysicalMachineSelectorSpec

type PhysicalMachineSelectorSpec struct {
	GenericSelectorSpec `json:",inline"`

	// PhysicalMachines is a map of string keys and a set values that used to select physical machines.
	// The key defines the namespace which physical machine belong,
	// and each value is a set of physical machine names.
	PhysicalMachines map[string][]string `json:"physicalMachines,omitempty"`
}

PhysicalMachineSelectorSpec defines some selectors to select objects. If the all selectors are empty, all objects will be used in chaos experiment.

func (*PhysicalMachineSelectorSpec) DeepCopy

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

func (*PhysicalMachineSelectorSpec) DeepCopyInto

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

func (*PhysicalMachineSelectorSpec) Empty

func (spec *PhysicalMachineSelectorSpec) Empty() bool

type PhysicalMachineSpec

type PhysicalMachineSpec struct {

	// Address represents the address of the physical machine
	Address string `json:"address"`
}

PhysicalMachineSpec defines the desired state of PhysicalMachine

func (*PhysicalMachineSpec) DeepCopy

func (in *PhysicalMachineSpec) DeepCopy() *PhysicalMachineSpec

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

func (*PhysicalMachineSpec) DeepCopyInto

func (in *PhysicalMachineSpec) DeepCopyInto(out *PhysicalMachineSpec)

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

type PodChaos

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

	// Spec defines the behavior of a pod chaos experiment
	Spec PodChaosSpec `json:"spec"`

	// Most recently observed status of the chaos experiment about pods
	Status PodChaosStatus `json:"status,omitempty"`
}

PodChaos is the control script`s spec.

func (*PodChaos) DeepCopy

func (in *PodChaos) DeepCopy() *PodChaos

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

func (*PodChaos) DeepCopyInto

func (in *PodChaos) DeepCopyInto(out *PodChaos)

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

func (*PodChaos) DeepCopyObject

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

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

func (*PodChaos) DurationExceeded

func (in *PodChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*PodChaos) GetObjectMeta

func (in *PodChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*PodChaos) GetRemoteCluster

func (in *PodChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*PodChaos) GetSelectorSpecs

func (obj *PodChaos) GetSelectorSpecs() map[string]interface{}

func (*PodChaos) GetSpecAndMetaString

func (in *PodChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*PodChaos) GetStatus

func (in *PodChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*PodChaos) IsDeleted

func (in *PodChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*PodChaos) IsOneShot

func (in *PodChaos) IsOneShot() bool

func (*PodChaos) IsPaused

func (in *PodChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type PodChaosAction

type PodChaosAction string

PodChaosAction represents the chaos action about pods.

const (
	// PodKillAction represents the chaos action of killing pods.
	PodKillAction PodChaosAction = "pod-kill"
	// PodFailureAction represents the chaos action of injecting errors to pods.
	// This action will cause the pod to not be created for a while.
	PodFailureAction PodChaosAction = "pod-failure"
	// ContainerKillAction represents the chaos action of killing the container
	ContainerKillAction PodChaosAction = "container-kill"
)

type PodChaosList

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

PodChaosList contains a list of PodChaos

func (*PodChaosList) DeepCopy

func (in *PodChaosList) DeepCopy() *PodChaosList

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

func (*PodChaosList) DeepCopyInto

func (in *PodChaosList) DeepCopyInto(out *PodChaosList)

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

func (*PodChaosList) DeepCopyList

func (in *PodChaosList) DeepCopyList() GenericChaosList

func (*PodChaosList) DeepCopyObject

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

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

func (*PodChaosList) GetItems

func (in *PodChaosList) GetItems() []GenericChaos

func (*PodChaosList) ListChaos

func (in *PodChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type PodChaosSpec

type PodChaosSpec struct {
	ContainerSelector `json:",inline"`

	// Action defines the specific pod chaos action.
	// Supported action: pod-kill / pod-failure / container-kill
	// Default action: pod-kill
	Action PodChaosAction `json:"action"`

	// Duration represents the duration of the chaos action.
	// It is required when the action is `PodFailureAction`.
	// A duration string is a possibly signed sequence of
	// decimal numbers, each with optional fraction and a unit suffix,
	// such as "300ms", "-1.5h" or "2h45m".
	// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// GracePeriod is used in pod-kill action. It represents the duration in seconds before the pod should be deleted.
	// Value must be non-negative integer. The default value is zero that indicates delete immediately.
	GracePeriod int64 `json:"gracePeriod,omitempty"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

PodChaosSpec defines the attributes that a user creates on a chaos experiment about pods.

func (*PodChaosSpec) DeepCopy

func (in *PodChaosSpec) DeepCopy() *PodChaosSpec

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

func (*PodChaosSpec) DeepCopyInto

func (in *PodChaosSpec) DeepCopyInto(out *PodChaosSpec)

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

func (*PodChaosSpec) GetDuration

func (in *PodChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type PodChaosStatus

type PodChaosStatus struct {
	ChaosStatus `json:",inline"`
}

PodChaosStatus represents the current status of the chaos experiment about pods.

func (*PodChaosStatus) DeepCopy

func (in *PodChaosStatus) DeepCopy() *PodChaosStatus

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

func (*PodChaosStatus) DeepCopyInto

func (in *PodChaosStatus) DeepCopyInto(out *PodChaosStatus)

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

type PodHttpChaos

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

	Spec   PodHttpChaosSpec   `json:"spec,omitempty"`
	Status PodHttpChaosStatus `json:"status,omitempty"`
}

+chaos-mesh:base +chaos-mesh:webhook:enableUpdate PodHttpChaos is the Schema for the podhttpchaos API

func (*PodHttpChaos) DeepCopy

func (in *PodHttpChaos) DeepCopy() *PodHttpChaos

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

func (*PodHttpChaos) DeepCopyInto

func (in *PodHttpChaos) DeepCopyInto(out *PodHttpChaos)

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

func (*PodHttpChaos) DeepCopyObject

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

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

type PodHttpChaosActions

type PodHttpChaosActions struct {
	// Abort is a rule to abort a http session.
	Abort *bool `json:"abort,omitempty"`

	// Delay represents the delay of the target request/response.
	// A duration string is a possibly unsigned sequence of
	// decimal numbers, each with optional fraction and a unit suffix,
	// such as "300ms", "2h45m".
	// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	Delay *string `json:"delay,omitempty" webhook:"Delay"`

	// Replace is a rule to replace some contents in target.
	Replace *PodHttpChaosReplaceActions `json:"replace,omitempty"`

	// Patch is a rule to patch some contents in target.
	Patch *PodHttpChaosPatchActions `json:"patch,omitempty"`
}

PodHttpChaosActions defines possible actions of HttpChaos.

func (*PodHttpChaosActions) DeepCopy

func (in *PodHttpChaosActions) DeepCopy() *PodHttpChaosActions

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

func (*PodHttpChaosActions) DeepCopyInto

func (in *PodHttpChaosActions) DeepCopyInto(out *PodHttpChaosActions)

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

type PodHttpChaosBaseRule

type PodHttpChaosBaseRule struct {
	// Target is the object to be selected and injected, <Request|Response>.
	Target PodHttpChaosTarget `json:"target"`

	// Selector contains the rules to select target.
	Selector PodHttpChaosSelector `json:"selector"`

	// Actions contains rules to inject target.
	Actions PodHttpChaosActions `json:"actions"`
}

PodHttpChaosBaseRule defines the injection rule without source and port.

func (*PodHttpChaosBaseRule) DeepCopy

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

func (*PodHttpChaosBaseRule) DeepCopyInto

func (in *PodHttpChaosBaseRule) DeepCopyInto(out *PodHttpChaosBaseRule)

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

type PodHttpChaosList

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

PodHttpChaosList contains a list of PodHttpChaos

func (*PodHttpChaosList) DeepCopy

func (in *PodHttpChaosList) DeepCopy() *PodHttpChaosList

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

func (*PodHttpChaosList) DeepCopyInto

func (in *PodHttpChaosList) DeepCopyInto(out *PodHttpChaosList)

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

func (*PodHttpChaosList) DeepCopyObject

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

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

type PodHttpChaosPatchActions

type PodHttpChaosPatchActions struct {
	// Body is a rule to patch message body of target.
	Body *PodHttpChaosPatchBodyAction `json:"body,omitempty"`

	// Queries is a rule to append uri queries of target(Request only).
	// For example: `[["foo", "bar"], ["foo", "unknown"]]`.
	Queries [][]string `json:"queries,omitempty"`

	// Headers is a rule to append http headers of target.
	// For example: `[["Set-Cookie", "<one cookie>"], ["Set-Cookie", "<another cookie>"]]`.
	Headers [][]string `json:"headers,omitempty"`
}

PodHttpChaosPatchActions defines possible patch-actions of HttpChaos.

func (*PodHttpChaosPatchActions) DeepCopy

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

func (*PodHttpChaosPatchActions) DeepCopyInto

func (in *PodHttpChaosPatchActions) DeepCopyInto(out *PodHttpChaosPatchActions)

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

type PodHttpChaosPatchBodyAction

type PodHttpChaosPatchBodyAction struct {
	// Type represents the patch type, only support `JSON` as [merge patch json](https://tools.ietf.org/html/rfc7396) currently.
	Type string `json:"type"`

	// Value is the patch contents.
	Value string `json:"value"`
}

PodHttpChaosPatchBodyAction defines patch body action of HttpChaos.

func (*PodHttpChaosPatchBodyAction) DeepCopy

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

func (*PodHttpChaosPatchBodyAction) DeepCopyInto

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

type PodHttpChaosReplaceActions

type PodHttpChaosReplaceActions struct {
	// Path is rule to to replace uri path in http request.
	Path *string `json:"path,omitempty"`

	// Method is a rule to replace http method in request.
	Method *string `json:"method,omitempty"`

	// Code is a rule to replace http status code in response.
	Code *int32 `json:"code,omitempty"`

	// Body is a rule to replace http message body in target.
	Body []byte `json:"body,omitempty"`

	// Queries is a rule to replace uri queries in http request.
	// For example, with value `{ "foo": "unknown" }`, the `/?foo=bar` will be altered to `/?foo=unknown`,
	Queries map[string]string `json:"queries,omitempty"`

	// Headers is a rule to replace http headers of target.
	// The key-value pairs represent header name and header value pairs.
	Headers map[string]string `json:"headers,omitempty"`
}

PodHttpChaosReplaceActions defines possible replace-actions of HttpChaos.

func (*PodHttpChaosReplaceActions) DeepCopy

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

func (*PodHttpChaosReplaceActions) DeepCopyInto

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

type PodHttpChaosRule

type PodHttpChaosRule struct {
	PodHttpChaosBaseRule `json:",inline"`

	// Source represents the source of current rules
	Source string `json:"source,omitempty"`

	// Port represents the target port to be proxy of.
	Port int32 `json:"port"`
}

PodHttpChaosRule defines the injection rule for http.

func (*PodHttpChaosRule) DeepCopy

func (in *PodHttpChaosRule) DeepCopy() *PodHttpChaosRule

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

func (*PodHttpChaosRule) DeepCopyInto

func (in *PodHttpChaosRule) DeepCopyInto(out *PodHttpChaosRule)

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

type PodHttpChaosSelector

type PodHttpChaosSelector struct {
	// Port is a rule to select server listening on specific port.
	Port *int32 `json:"port,omitempty"`

	// Path is a rule to select target by uri path in http request.
	Path *string `json:"path,omitempty"`

	// Method is a rule to select target by http method in request.
	Method *string `json:"method,omitempty"`

	// Code is a rule to select target by http status code in response.
	Code *int32 `json:"code,omitempty"`

	// RequestHeaders is a rule to select target by http headers in request.
	// The key-value pairs represent header name and header value pairs.
	RequestHeaders map[string]string `json:"request_headers,omitempty"`

	// ResponseHeaders is a rule to select target by http headers in response.
	// The key-value pairs represent header name and header value pairs.
	ResponseHeaders map[string]string `json:"response_headers,omitempty"`
}

func (*PodHttpChaosSelector) DeepCopy

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

func (*PodHttpChaosSelector) DeepCopyInto

func (in *PodHttpChaosSelector) DeepCopyInto(out *PodHttpChaosSelector)

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

type PodHttpChaosSpec

type PodHttpChaosSpec struct {
	// Rules are a list of injection rule for http request.
	Rules []PodHttpChaosRule `json:"rules,omitempty"`

	// TLS is the tls config,
	// will be override if there are multiple HTTPChaos experiments are applied
	TLS *PodHttpChaosTLS `json:"tls,omitempty"`
}

PodHttpChaosSpec defines the desired state of PodHttpChaos.

func (*PodHttpChaosSpec) DeepCopy

func (in *PodHttpChaosSpec) DeepCopy() *PodHttpChaosSpec

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

func (*PodHttpChaosSpec) DeepCopyInto

func (in *PodHttpChaosSpec) DeepCopyInto(out *PodHttpChaosSpec)

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

type PodHttpChaosStatus

type PodHttpChaosStatus struct {
	// Pid represents a running tproxy process id.
	Pid int64 `json:"pid,omitempty"`

	// StartTime represents the start time of a tproxy process.
	StartTime int64 `json:"startTime,omitempty"`

	FailedMessage string `json:"failedMessage,omitempty"`

	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

PodHttpChaosStatus defines the actual state of PodHttpChaos.

func (*PodHttpChaosStatus) DeepCopy

func (in *PodHttpChaosStatus) DeepCopy() *PodHttpChaosStatus

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

func (*PodHttpChaosStatus) DeepCopyInto

func (in *PodHttpChaosStatus) DeepCopyInto(out *PodHttpChaosStatus)

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

type PodHttpChaosTLS

type PodHttpChaosTLS struct {
	// SecretName represents the name of required secret resource
	SecretName string `json:"secretName"`

	// SecretNamespace represents the namespace of required secret resource
	SecretNamespace string `json:"secretNamespace"`

	// CertName represents the data name of cert file in secret, `tls.crt` for example
	CertName string `json:"certName"`

	// KeyName represents the data name of key file in secret, `tls.key` for example
	KeyName string `json:"keyName"`

	// CAName represents the data name of ca file in secret, `ca.crt` for example
	CAName *string `json:"caName,omitempty"`
}

PodHttpChaosTLS contains the tls config for HTTPChaos

func (*PodHttpChaosTLS) DeepCopy

func (in *PodHttpChaosTLS) DeepCopy() *PodHttpChaosTLS

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

func (*PodHttpChaosTLS) DeepCopyInto

func (in *PodHttpChaosTLS) DeepCopyInto(out *PodHttpChaosTLS)

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

type PodHttpChaosTarget

type PodHttpChaosTarget string

PodHttpChaosTarget represents the type of an HttpChaos Action

const (
	// PodHttpRequest represents injecting chaos for http request
	PodHttpRequest PodHttpChaosTarget = "Request"

	// PodHttpResponse represents injecting chaos for http response
	PodHttpResponse PodHttpChaosTarget = "Response"
)

type PodIOChaos

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

	Spec PodIOChaosSpec `json:"spec,omitempty"`

	Status PodIOChaosStatus `json:"status,omitempty"`
}

+chaos-mesh:base +chaos-mesh:webhook:enableUpdate PodIOChaos is the Schema for the podiochaos API

func (*PodIOChaos) DeepCopy

func (in *PodIOChaos) DeepCopy() *PodIOChaos

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

func (*PodIOChaos) DeepCopyInto

func (in *PodIOChaos) DeepCopyInto(out *PodIOChaos)

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

func (*PodIOChaos) DeepCopyObject

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

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

type PodIOChaosList

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

PodIOChaosList contains a list of PodIOChaos

func (*PodIOChaosList) DeepCopy

func (in *PodIOChaosList) DeepCopy() *PodIOChaosList

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

func (*PodIOChaosList) DeepCopyInto

func (in *PodIOChaosList) DeepCopyInto(out *PodIOChaosList)

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

func (*PodIOChaosList) DeepCopyObject

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

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

type PodIOChaosSpec

type PodIOChaosSpec struct {
	// VolumeMountPath represents the target mount path
	// It must be a root of mount path now.
	// TODO: search the mount parent of any path automatically.
	// TODO: support multiple different volume mount path in one pod
	VolumeMountPath string `json:"volumeMountPath"`

	// TODO: support multiple different container to inject in one pod
	Container *string `json:"container,omitempty"`

	// Actions are a list of IOChaos actions
	Actions []IOChaosAction `json:"actions,omitempty"`
}

PodIOChaosSpec defines the desired state of IOChaos

func (*PodIOChaosSpec) DeepCopy

func (in *PodIOChaosSpec) DeepCopy() *PodIOChaosSpec

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

func (*PodIOChaosSpec) DeepCopyInto

func (in *PodIOChaosSpec) DeepCopyInto(out *PodIOChaosSpec)

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

type PodIOChaosStatus

type PodIOChaosStatus struct {

	// Pid represents a running toda process id
	Pid int64 `json:"pid,omitempty"`

	// StartTime represents the start time of a toda process
	StartTime int64 `json:"startTime,omitempty"`

	FailedMessage string `json:"failedMessage,omitempty"`

	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

func (*PodIOChaosStatus) DeepCopy

func (in *PodIOChaosStatus) DeepCopy() *PodIOChaosStatus

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

func (*PodIOChaosStatus) DeepCopyInto

func (in *PodIOChaosStatus) DeepCopyInto(out *PodIOChaosStatus)

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

type PodNetworkChaos

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

	// Spec defines the behavior of a pod chaos experiment
	Spec PodNetworkChaosSpec `json:"spec"`

	// Most recently observed status of the chaos experiment about pods
	Status PodNetworkChaosStatus `json:"status,omitempty"`
}

PodNetworkChaos is the Schema for the PodNetworkChaos API

func (*PodNetworkChaos) DeepCopy

func (in *PodNetworkChaos) DeepCopy() *PodNetworkChaos

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

func (*PodNetworkChaos) DeepCopyInto

func (in *PodNetworkChaos) DeepCopyInto(out *PodNetworkChaos)

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

func (*PodNetworkChaos) DeepCopyObject

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

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

type PodNetworkChaosList

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

PodNetworkChaosList contains a list of PodNetworkChaos

func (*PodNetworkChaosList) DeepCopy

func (in *PodNetworkChaosList) DeepCopy() *PodNetworkChaosList

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

func (*PodNetworkChaosList) DeepCopyInto

func (in *PodNetworkChaosList) DeepCopyInto(out *PodNetworkChaosList)

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

func (*PodNetworkChaosList) DeepCopyObject

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

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

type PodNetworkChaosSpec

type PodNetworkChaosSpec struct {
	// The ipset on the pod
	IPSets []RawIPSet `json:"ipsets,omitempty"`

	// The iptables rules on the pod
	Iptables []RawIptables `json:"iptables,omitempty"`

	// The tc rules on the pod
	TrafficControls []RawTrafficControl `json:"tcs,omitempty"`
}

PodNetworkChaosSpec defines the desired state of PodNetworkChaos

func (*PodNetworkChaosSpec) DeepCopy

func (in *PodNetworkChaosSpec) DeepCopy() *PodNetworkChaosSpec

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

func (*PodNetworkChaosSpec) DeepCopyInto

func (in *PodNetworkChaosSpec) DeepCopyInto(out *PodNetworkChaosSpec)

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

type PodNetworkChaosStatus

type PodNetworkChaosStatus struct {
	FailedMessage string `json:"failedMessage,omitempty"`

	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

PodNetworkChaosStatus defines the observed state of PodNetworkChaos

func (*PodNetworkChaosStatus) DeepCopy

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

func (*PodNetworkChaosStatus) DeepCopyInto

func (in *PodNetworkChaosStatus) DeepCopyInto(out *PodNetworkChaosStatus)

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

type PodSelector

type PodSelector struct {
	// Selector is used to select pods that are used to inject chaos action.
	Selector PodSelectorSpec `json:"selector"`

	// Mode defines the mode to run chaos action.
	// Supported mode: one / all / fixed / fixed-percent / random-max-percent
	Mode SelectorMode `json:"mode"`

	// Value is required when the mode is set to `FixedMode` / `FixedPercentMode` / `RandomMaxPercentMode`.
	// If `FixedMode`, provide an integer of pods to do chaos action.
	// If `FixedPercentMode`, provide a number from 0-100 to specify the percent of pods the server can do chaos action.
	// IF `RandomMaxPercentMode`,  provide a number from 0-100 to specify the max percent of pods to do chaos action
	Value string `json:"value,omitempty"`
}

func (*PodSelector) DeepCopy

func (in *PodSelector) DeepCopy() *PodSelector

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

func (*PodSelector) DeepCopyInto

func (in *PodSelector) DeepCopyInto(out *PodSelector)

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

type PodSelectorSpec

type PodSelectorSpec struct {
	GenericSelectorSpec `json:",inline"`

	// Nodes is a set of node name and objects must belong to these nodes.
	Nodes []string `json:"nodes,omitempty"`

	// Pods is a map of string keys and a set values that used to select pods.
	// The key defines the namespace which pods belong,
	// and the each values is a set of pod names.
	Pods map[string][]string `json:"pods,omitempty"`

	// Map of string keys and values that can be used to select nodes.
	// Selector which must match a node's labels,
	// and objects must belong to these selected nodes.
	NodeSelectors map[string]string `json:"nodeSelectors,omitempty"`

	// PodPhaseSelectors is a set of condition of a pod at the current time.
	// supported value: Pending / Running / Succeeded / Failed / Unknown
	PodPhaseSelectors []string `json:"podPhaseSelectors,omitempty"`
}

PodSelectorSpec defines the some selectors to select objects. If the all selectors are empty, all objects will be used in chaos experiment.

func (PodSelectorSpec) ClusterScoped

func (in PodSelectorSpec) ClusterScoped() bool

ClusterScoped returns true if the selector selects Pods in the cluster

func (*PodSelectorSpec) DeepCopy

func (in *PodSelectorSpec) DeepCopy() *PodSelectorSpec

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

func (*PodSelectorSpec) DeepCopyInto

func (in *PodSelectorSpec) DeepCopyInto(out *PodSelectorSpec)

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

func (*PodSelectorSpec) DefaultNamespace

func (in *PodSelectorSpec) DefaultNamespace(namespace string)

type ProcessSpec

type ProcessSpec struct {
	// the process name or the process ID
	Process string `json:"process,omitempty"`
	// the signal number to send
	Signal int `json:"signal,omitempty"`

	// the command to be run when recovering experiment
	RecoverCmd string `json:"recoverCmd,omitempty"`
}

func (*ProcessSpec) DeepCopy

func (in *ProcessSpec) DeepCopy() *ProcessSpec

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

func (*ProcessSpec) DeepCopyInto

func (in *ProcessSpec) DeepCopyInto(out *ProcessSpec)

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

type RawIPSet

type RawIPSet struct {
	// The name of ipset
	Name string `json:"name"`

	IPSetType IPSetType `json:"ipsetType"`

	// The contents of ipset.
	// Only available when IPSetType is NetIPSet.
	Cidrs []string `json:"cidrs,omitempty"`

	// The contents of ipset.
	// Only available when IPSetType is NetPortIPSet.
	CidrAndPorts []CidrAndPort `json:"cidrAndPorts,omitempty"`

	// The contents of ipset.
	// Only available when IPSetType is SetIPSet.
	SetNames []string `json:"setNames,omitempty"`

	// The name and namespace of the source network chaos
	RawRuleSource `json:",inline"`
}

RawIPSet represents an ipset on specific pod

func (*RawIPSet) DeepCopy

func (in *RawIPSet) DeepCopy() *RawIPSet

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

func (*RawIPSet) DeepCopyInto

func (in *RawIPSet) DeepCopyInto(out *RawIPSet)

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

type RawIptables

type RawIptables struct {
	// The name of iptables chain
	Name string `json:"name"`

	// The name of related ipset
	// +nullable
	IPSets []string `json:"ipsets,omitempty"`

	// The block direction of this iptables rule
	Direction ChainDirection `json:"direction"`

	// Device represents the network device to be affected.
	Device string `json:"device,omitempty"`

	RawRuleSource `json:",inline"`
}

RawIptables represents the iptables rules on specific pod

func (*RawIptables) DeepCopy

func (in *RawIptables) DeepCopy() *RawIptables

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

func (*RawIptables) DeepCopyInto

func (in *RawIptables) DeepCopyInto(out *RawIptables)

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

type RawRuleSource

type RawRuleSource struct {
	Source string `json:"source"`
}

RawRuleSource represents the name and namespace of the source network chaos

func (*RawRuleSource) DeepCopy

func (in *RawRuleSource) DeepCopy() *RawRuleSource

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

func (*RawRuleSource) DeepCopyInto

func (in *RawRuleSource) DeepCopyInto(out *RawRuleSource)

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

type RawTrafficControl

type RawTrafficControl struct {
	// The type of traffic control
	Type TcType `json:"type"`

	TcParameter `json:",inline"`

	// The name of target ipset
	IPSet string `json:"ipset,omitempty"`

	// The name and namespace of the source network chaos
	Source string `json:"source"`

	// Device represents the network device to be affected.
	Device string `json:"device,omitempty"`
}

RawTrafficControl represents the traffic control chaos on specific pod

func (*RawTrafficControl) DeepCopy

func (in *RawTrafficControl) DeepCopy() *RawTrafficControl

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

func (*RawTrafficControl) DeepCopyInto

func (in *RawTrafficControl) DeepCopyInto(out *RawTrafficControl)

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

type Record

type Record struct {
	Id          string `json:"id"`
	SelectorKey string `json:"selectorKey"`
	Phase       Phase  `json:"phase"`
	// InjectedCount is a counter to record the sum of successful injections
	InjectedCount int `json:"injectedCount"`
	// RecoveredCount is a counter to record the sum of successful recoveries
	RecoveredCount int `json:"recoveredCount"`
	// Events are the essential details about the injections and recoveries
	Events []RecordEvent `json:"events,omitempty"`
}

func (*Record) DeepCopy

func (in *Record) DeepCopy() *Record

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

func (*Record) DeepCopyInto

func (in *Record) DeepCopyInto(out *Record)

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

type RecordEvent

type RecordEvent struct {
	// Type means the stage of this event
	Type RecordEventType `json:"type"`
	// Operation represents the operation we are doing, when we crate this event
	Operation RecordEventOperation `json:"operation"`
	// Message is the detail message, e.g. the reason why we failed to inject the chaos
	Message string `json:"message,omitempty"`
	// Timestamp is time when we create this event
	Timestamp *metav1.Time `json:"timestamp"`
}

func NewRecordEvent

func NewRecordEvent(eventType RecordEventType, eventStage RecordEventOperation,
	msg string, time metav1.Time) *RecordEvent

NewRecordEvent is a constructor of RecordEvent in status

func (*RecordEvent) DeepCopy

func (in *RecordEvent) DeepCopy() *RecordEvent

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

func (*RecordEvent) DeepCopyInto

func (in *RecordEvent) DeepCopyInto(out *RecordEvent)

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

type RecordEventOperation

type RecordEventOperation string
const (
	// Apply means this event is recorded, when we inject the chaos
	// typically, when we call impl.Apply()
	Apply RecordEventOperation = "Apply"
	// Recover means this event is recorded, when we recover the chaos
	// typically, when we call impl.Recover()
	Recover RecordEventOperation = "Recover"
)

type RecordEventType

type RecordEventType string
const (
	// TypeSucceeded means the stage of this event is successful
	TypeSucceeded RecordEventType = "Succeeded"
	// TypeFailed means the stage of this event is failed
	TypeFailed RecordEventType = "Failed"
)

type RedisCacheLimitSpec

type RedisCacheLimitSpec struct {
	RedisCommonSpec `       json:",inline"`
	// The size of `maxmemory`
	Size string `json:"cacheSize,omitempty"`
	// Specifies maxmemory as a percentage of the original value
	Percent string `json:"percent,omitempty"`
}

func (*RedisCacheLimitSpec) DeepCopy

func (in *RedisCacheLimitSpec) DeepCopy() *RedisCacheLimitSpec

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

func (*RedisCacheLimitSpec) DeepCopyInto

func (in *RedisCacheLimitSpec) DeepCopyInto(out *RedisCacheLimitSpec)

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

type RedisCommonSpec

type RedisCommonSpec struct {
	// The address of Redis server
	Addr string `json:"addr,omitempty"`
	// The password of Redis server
	Password string `json:"password,omitempty"`
}

func (*RedisCommonSpec) DeepCopy

func (in *RedisCommonSpec) DeepCopy() *RedisCommonSpec

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

func (*RedisCommonSpec) DeepCopyInto

func (in *RedisCommonSpec) DeepCopyInto(out *RedisCommonSpec)

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

type RedisExpirationSpec

type RedisExpirationSpec struct {
	RedisCommonSpec `       json:",inline"`
	// The expiration of the keys
	Expiration string `json:"expiration,omitempty"`
	// The keys to be expired
	Key string `json:"key,omitempty"`
	// Additional options for `expiration`
	Option string `json:"option,omitempty"`
}

func (*RedisExpirationSpec) DeepCopy

func (in *RedisExpirationSpec) DeepCopy() *RedisExpirationSpec

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

func (*RedisExpirationSpec) DeepCopyInto

func (in *RedisExpirationSpec) DeepCopyInto(out *RedisExpirationSpec)

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

type RedisPenetrationSpec

type RedisPenetrationSpec struct {
	RedisCommonSpec `    json:",inline"`
	// The number of requests to be sent
	RequestNum int `json:"requestNum,omitempty"`
}

func (*RedisPenetrationSpec) DeepCopy

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

func (*RedisPenetrationSpec) DeepCopyInto

func (in *RedisPenetrationSpec) DeepCopyInto(out *RedisPenetrationSpec)

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

type RedisSentinelRestartSpec

type RedisSentinelRestartSpec struct {
	RedisCommonSpec `       json:",inline"`
	// The path of Sentinel conf
	Conf string `json:"conf,omitempty"`
	// The control flag determines whether to flush config
	FlushConfig bool `json:"flushConfig,omitempty"`
	// The path of `redis-server` command-line tool
	RedisPath bool `json:"redisPath,omitempty"`
}

func (*RedisSentinelRestartSpec) DeepCopy

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

func (*RedisSentinelRestartSpec) DeepCopyInto

func (in *RedisSentinelRestartSpec) DeepCopyInto(out *RedisSentinelRestartSpec)

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

type RedisSentinelStopSpec

type RedisSentinelStopSpec struct {
	RedisCommonSpec `       json:",inline"`
	// The path of Sentinel conf
	Conf string `json:"conf,omitempty"`
	// The control flag determines whether to flush config
	FlushConfig bool `json:"flushConfig,omitempty"`
	// The path of `redis-server` command-line tool
	RedisPath bool `json:"redisPath,omitempty"`
}

func (*RedisSentinelStopSpec) DeepCopy

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

func (*RedisSentinelStopSpec) DeepCopyInto

func (in *RedisSentinelStopSpec) DeepCopyInto(out *RedisSentinelStopSpec)

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

type RemoteCluster

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

	Spec RemoteClusterSpec `json:"spec,omitempty"`

	Status RemoteClusterStatus `json:"status,omitempty"`
}

+chaos-mesh:base RemoteCluster defines a remote cluster

func (*RemoteCluster) DeepCopy

func (in *RemoteCluster) DeepCopy() *RemoteCluster

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

func (*RemoteCluster) DeepCopyInto

func (in *RemoteCluster) DeepCopyInto(out *RemoteCluster)

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

func (*RemoteCluster) DeepCopyObject

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

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

type RemoteClusterCondition

type RemoteClusterCondition struct {
	Type   RemoteClusterConditionType `json:"type"`
	Status corev1.ConditionStatus     `json:"status"`
	Reason string                     `json:"reason"`
}

func (*RemoteClusterCondition) DeepCopy

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

func (*RemoteClusterCondition) DeepCopyInto

func (in *RemoteClusterCondition) DeepCopyInto(out *RemoteClusterCondition)

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

type RemoteClusterConditionType

type RemoteClusterConditionType string
var (
	RemoteClusterConditionInstalled RemoteClusterConditionType = "Installed"
	RemoteClusterConditionReady     RemoteClusterConditionType = "Ready"
)

type RemoteClusterKubeConfig

type RemoteClusterKubeConfig struct {
	SecretRef RemoteClusterSecretRef `json:"secretRef"`
}

RemoteClusterKubeConfig refers to a secret by which we'll use to connect remote cluster

func (*RemoteClusterKubeConfig) DeepCopy

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

func (*RemoteClusterKubeConfig) DeepCopyInto

func (in *RemoteClusterKubeConfig) DeepCopyInto(out *RemoteClusterKubeConfig)

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

type RemoteClusterList

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

RemoteClusterList contains a list of RemoteCluster

func (*RemoteClusterList) DeepCopy

func (in *RemoteClusterList) DeepCopy() *RemoteClusterList

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

func (*RemoteClusterList) DeepCopyInto

func (in *RemoteClusterList) DeepCopyInto(out *RemoteClusterList)

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

func (*RemoteClusterList) DeepCopyObject

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

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

type RemoteClusterSecretRef

type RemoteClusterSecretRef struct {
	Namespace string `json:"namespace"`
	Name      string `json:"name"`

	Key string `json:"key"`
}

RemoteClusterSecretRef refers to a secret in any namespaces

func (*RemoteClusterSecretRef) DeepCopy

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

func (*RemoteClusterSecretRef) DeepCopyInto

func (in *RemoteClusterSecretRef) DeepCopyInto(out *RemoteClusterSecretRef)

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

type RemoteClusterSpec

type RemoteClusterSpec struct {
	Namespace string `json:"namespace"`
	Version   string `json:"version"`

	KubeConfig RemoteClusterKubeConfig `json:"kubeConfig"`

	ConfigOverride json.RawMessage `json:"configOverride,omitempty"`
}

RemoteClusterSpec defines the specification of a remote cluster

func (*RemoteClusterSpec) DeepCopy

func (in *RemoteClusterSpec) DeepCopy() *RemoteClusterSpec

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

func (*RemoteClusterSpec) DeepCopyInto

func (in *RemoteClusterSpec) DeepCopyInto(out *RemoteClusterSpec)

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

type RemoteClusterStatus

type RemoteClusterStatus struct {
	CurrentVersion string `json:"currentVersion"`

	// Conditions represents the current condition of the remote cluster
	Conditions         []RemoteClusterCondition `json:"conditions,omitempty"`
	ObservedGeneration int64                    `json:"observedGeneration,omitempty"`
}

func (*RemoteClusterStatus) DeepCopy

func (in *RemoteClusterStatus) DeepCopy() *RemoteClusterStatus

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

func (*RemoteClusterStatus) DeepCopyInto

func (in *RemoteClusterStatus) DeepCopyInto(out *RemoteClusterStatus)

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

type RemoteObject

type RemoteObject interface {
	StatefulObject
	GetRemoteCluster() string
}

type ReorderSpec

type ReorderSpec struct {
	Reorder     string `json:"reorder"               webhook:"FloatStr"`
	Correlation string `json:"correlation,omitempty" webhook:"FloatStr" default:"0"`
	Gap         int    `json:"gap"`
}

ReorderSpec defines details of packet reorder.

func (*ReorderSpec) DeepCopy

func (in *ReorderSpec) DeepCopy() *ReorderSpec

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

func (*ReorderSpec) DeepCopyInto

func (in *ReorderSpec) DeepCopyInto(out *ReorderSpec)

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

type Schedule

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

	Spec ScheduleSpec `json:"spec"`

	Status ScheduleStatus `json:"status,omitempty"`
}

Schedule is the cronly schedule object

func (*Schedule) DeepCopy

func (in *Schedule) DeepCopy() *Schedule

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

func (*Schedule) DeepCopyInto

func (in *Schedule) DeepCopyInto(out *Schedule)

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

func (*Schedule) DeepCopyObject

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

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

func (*Schedule) IsPaused

func (in *Schedule) IsPaused() bool

type ScheduleItem

type ScheduleItem struct {
	EmbedChaos `json:",inline"`
	Workflow   *WorkflowSpec `json:"workflow,omitempty"`
}

func (*ScheduleItem) DeepCopy

func (in *ScheduleItem) DeepCopy() *ScheduleItem

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

func (*ScheduleItem) DeepCopyInto

func (in *ScheduleItem) DeepCopyInto(out *ScheduleItem)

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

func (*ScheduleItem) RestoreChaosSpec

func (it *ScheduleItem) RestoreChaosSpec(root interface{}) error

func (*ScheduleItem) SpawnNewObject

func (it *ScheduleItem) SpawnNewObject(templateType ScheduleTemplateType) (GenericChaos, error)

type ScheduleList

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

ScheduleList contains a list of Schedule

func (*ScheduleList) DeepCopy

func (in *ScheduleList) DeepCopy() *ScheduleList

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

func (*ScheduleList) DeepCopyInto

func (in *ScheduleList) DeepCopyInto(out *ScheduleList)

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

func (*ScheduleList) DeepCopyList

func (in *ScheduleList) DeepCopyList() GenericChaosList

func (*ScheduleList) DeepCopyObject

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

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

func (*ScheduleList) GetItems

func (in *ScheduleList) GetItems() []GenericChaos

type ScheduleSpec

type ScheduleSpec struct {
	Schedule string `json:"schedule"`

	// +nullable
	StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds"`

	ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy"`

	HistoryLimit int `json:"historyLimit,omitempty"`

	// TODO: use a custom type, as `TemplateType` contains other possible values
	Type ScheduleTemplateType `json:"type"`

	ScheduleItem `json:",inline"`
}

ScheduleSpec is the specification of a schedule object

func (*ScheduleSpec) DeepCopy

func (in *ScheduleSpec) DeepCopy() *ScheduleSpec

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

func (*ScheduleSpec) DeepCopyInto

func (in *ScheduleSpec) DeepCopyInto(out *ScheduleSpec)

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

type ScheduleStatus

type ScheduleStatus struct {
	Active []corev1.ObjectReference `json:"active,omitempty"`

	// +nullable
	LastScheduleTime metav1.Time `json:"time,omitempty"`
}

ScheduleStatus is the status of a schedule object

func (*ScheduleStatus) DeepCopy

func (in *ScheduleStatus) DeepCopy() *ScheduleStatus

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

func (*ScheduleStatus) DeepCopyInto

func (in *ScheduleStatus) DeepCopyInto(out *ScheduleStatus)

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

type ScheduleTemplateType

type ScheduleTemplateType string
const (
	ScheduleTypeAWSChaos             ScheduleTemplateType = "AWSChaos"
	ScheduleTypeAzureChaos           ScheduleTemplateType = "AzureChaos"
	ScheduleTypeBlockChaos           ScheduleTemplateType = "BlockChaos"
	ScheduleTypeDNSChaos             ScheduleTemplateType = "DNSChaos"
	ScheduleTypeGCPChaos             ScheduleTemplateType = "GCPChaos"
	ScheduleTypeHTTPChaos            ScheduleTemplateType = "HTTPChaos"
	ScheduleTypeIOChaos              ScheduleTemplateType = "IOChaos"
	ScheduleTypeJVMChaos             ScheduleTemplateType = "JVMChaos"
	ScheduleTypeKernelChaos          ScheduleTemplateType = "KernelChaos"
	ScheduleTypeNetworkChaos         ScheduleTemplateType = "NetworkChaos"
	ScheduleTypePhysicalMachineChaos ScheduleTemplateType = "PhysicalMachineChaos"
	ScheduleTypePodChaos             ScheduleTemplateType = "PodChaos"
	ScheduleTypeStressChaos          ScheduleTemplateType = "StressChaos"
	ScheduleTypeTimeChaos            ScheduleTemplateType = "TimeChaos"
	ScheduleTypeWorkflow             ScheduleTemplateType = "Workflow"
)

type SelectorMode

type SelectorMode string

SelectorMode represents the mode to run chaos action.

const (
	// OneMode represents that the system will do the chaos action on one object selected randomly.
	OneMode SelectorMode = "one"
	// AllMode represents that the system will do the chaos action on all objects
	// regardless of status (not ready or not running pods includes).
	// Use this label carefully.
	AllMode SelectorMode = "all"
	// FixedMode represents that the system will do the chaos action on a specific number of running objects.
	FixedMode SelectorMode = "fixed"
	// FixedPercentMode to specify a fixed % that can be inject chaos action.
	FixedPercentMode SelectorMode = "fixed-percent"
	// RandomMaxPercentMode to specify a maximum % that can be inject chaos action.
	RandomMaxPercentMode SelectorMode = "random-max-percent"
)

type StatefulObject

type StatefulObject interface {
	GenericChaos
	GetStatus() *ChaosStatus
}

StatefulObject defines a basic Object that can get the status

type StatusCheck

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

	// Spec defines the behavior of a status check
	Spec StatusCheckSpec `json:"spec"`

	// Most recently observed status of status check
	Status StatusCheckStatus `json:"status,omitempty"`
}

+chaos-mesh:base

func (*StatusCheck) DeepCopy

func (in *StatusCheck) DeepCopy() *StatusCheck

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

func (*StatusCheck) DeepCopyInto

func (in *StatusCheck) DeepCopyInto(out *StatusCheck)

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

func (*StatusCheck) DeepCopyObject

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

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

func (*StatusCheck) DurationExceed

func (in *StatusCheck) DurationExceed(now time.Time) (bool, time.Duration, error)

func (*StatusCheck) IsCompleted

func (in *StatusCheck) IsCompleted() bool

IsCompleted checks if the status check is completed, according to the StatusCheckConditionCompleted condition.

type StatusCheckCondition

type StatusCheckCondition struct {
	Type               StatusCheckConditionType `json:"type"`
	Status             corev1.ConditionStatus   `json:"status"`
	Reason             StatusCheckReason        `json:"reason"`
	LastProbeTime      *metav1.Time             `json:"lastProbeTime"`
	LastTransitionTime *metav1.Time             `json:"lastTransitionTime"`
}

func (*StatusCheckCondition) DeepCopy

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

func (*StatusCheckCondition) DeepCopyInto

func (in *StatusCheckCondition) DeepCopyInto(out *StatusCheckCondition)

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

type StatusCheckConditionType

type StatusCheckConditionType string
const (
	// StatusCheckConditionCompleted means the status check is completed.
	// It will be `True`, in the following scenarios:
	// 1. the duration is exceeded
	// 2. the failure threshold is exceeded
	// 3. the success threshold is exceeded (only the `Synchronous` mode)
	StatusCheckConditionCompleted StatusCheckConditionType = "Completed"
	// StatusCheckConditionDurationExceed means the duration is exceeded.
	StatusCheckConditionDurationExceed StatusCheckConditionType = "DurationExceed"
	// StatusCheckConditionFailureThresholdExceed means the failure threshold is exceeded.
	StatusCheckConditionFailureThresholdExceed StatusCheckConditionType = "FailureThresholdExceed"
	// StatusCheckConditionSuccessThresholdExceed means the success threshold is exceeded.
	StatusCheckConditionSuccessThresholdExceed StatusCheckConditionType = "SuccessThresholdExceed"
)

type StatusCheckList

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

StatusCheckList contains a list of StatusCheck

func (*StatusCheckList) DeepCopy

func (in *StatusCheckList) DeepCopy() *StatusCheckList

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

func (*StatusCheckList) DeepCopyInto

func (in *StatusCheckList) DeepCopyInto(out *StatusCheckList)

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

func (*StatusCheckList) DeepCopyObject

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

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

type StatusCheckMode

type StatusCheckMode string
const (
	// StatusCheckSynchronous means the status check will exit
	// immediately after success or failure.
	StatusCheckSynchronous StatusCheckMode = "Synchronous"
	// StatusCheckContinuous means the status check will continue to
	// execute until the duration is exceeded or the status check fails.
	StatusCheckContinuous StatusCheckMode = "Continuous"
)

type StatusCheckOutcome

type StatusCheckOutcome string
const (
	StatusCheckOutcomeSuccess StatusCheckOutcome = "Success"
	StatusCheckOutcomeFailure StatusCheckOutcome = "Failure"
)

type StatusCheckReason

type StatusCheckReason string
const (
	StatusCheckDurationExceed         StatusCheckReason = "StatusCheckDurationExceed"
	StatusCheckFailureThresholdExceed StatusCheckReason = "StatusCheckFailureThresholdExceed"
	StatusCheckSuccessThresholdExceed StatusCheckReason = "StatusCheckSuccessThresholdExceed"
	StatusCheckExecutionFailed        StatusCheckReason = "StatusCheckExecutionFailed"
	StatusCheckExecutionSucceed       StatusCheckReason = "StatusCheckExecutionSucceed"
)

type StatusCheckRecord

type StatusCheckRecord struct {
	StartTime *metav1.Time       `json:"startTime"`
	Outcome   StatusCheckOutcome `json:"outcome"`
}

func (*StatusCheckRecord) DeepCopy

func (in *StatusCheckRecord) DeepCopy() *StatusCheckRecord

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

func (*StatusCheckRecord) DeepCopyInto

func (in *StatusCheckRecord) DeepCopyInto(out *StatusCheckRecord)

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

type StatusCheckSpec

type StatusCheckSpec struct {
	// Mode defines the execution mode of the status check.
	// Support type: Synchronous / Continuous
	Mode StatusCheckMode `json:"mode,omitempty"`

	// Type defines the specific status check type.
	// Support type: HTTP
	Type StatusCheckType `json:"type"`

	// Duration defines the duration of the whole status check if the
	// number of failed execution does not exceed the failure threshold.
	// Duration is available to both `Synchronous` and `Continuous` mode.
	// A duration string is a possibly signed sequence of
	// decimal numbers, each with optional fraction and a unit suffix,
	// such as "300ms", "-1.5h" or "2h45m".
	// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// TimeoutSeconds defines the number of seconds after which
	// an execution of status check times out.
	TimeoutSeconds int `json:"timeoutSeconds,omitempty"`

	// IntervalSeconds defines how often (in seconds) to perform
	// an execution of status check.
	IntervalSeconds int `json:"intervalSeconds,omitempty"`

	// FailureThreshold defines the minimum consecutive failure
	// for the status check to be considered failed.
	FailureThreshold int `json:"failureThreshold,omitempty"`

	// SuccessThreshold defines the minimum consecutive successes
	// for the status check to be considered successful.
	// SuccessThreshold only works for `Synchronous` mode.
	SuccessThreshold int `json:"successThreshold,omitempty"`

	// RecordsHistoryLimit defines the number of record to retain.
	RecordsHistoryLimit int `json:"recordsHistoryLimit,omitempty"`

	*EmbedStatusCheck `json:",inline,omitempty"`
}

func (*StatusCheckSpec) DeepCopy

func (in *StatusCheckSpec) DeepCopy() *StatusCheckSpec

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

func (*StatusCheckSpec) DeepCopyInto

func (in *StatusCheckSpec) DeepCopyInto(out *StatusCheckSpec)

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

func (*StatusCheckSpec) GetDuration

func (in *StatusCheckSpec) GetDuration() (*time.Duration, error)

type StatusCheckStatus

type StatusCheckStatus struct {
	// StartTime represents time when the status check started to execute.
	StartTime *metav1.Time `json:"startTime,omitempty"`

	// CompletionTime represents time when the status check was completed.
	CompletionTime *metav1.Time `json:"completionTime,omitempty"`

	// Count represents the total number of the status check executed.
	Count int64 `json:"count,omitempty"`

	// Conditions represents the latest available observations of a StatusCheck's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions []StatusCheckCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// Records contains the history of the execution of StatusCheck.
	Records []StatusCheckRecord `json:"records,omitempty"`
}

func (*StatusCheckStatus) DeepCopy

func (in *StatusCheckStatus) DeepCopy() *StatusCheckStatus

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

func (*StatusCheckStatus) DeepCopyInto

func (in *StatusCheckStatus) DeepCopyInto(out *StatusCheckStatus)

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

type StatusCheckTemplate

type StatusCheckTemplate struct {
	StatusCheckSpec `json:",inline"`
}

StatusCheckTemplate represents a template of status check. A statusCheckTemplate would save in the ConfigMap named `template-status-check-<template-name>`.

type StatusCheckType

type StatusCheckType string
const (
	TypeHTTP StatusCheckType = "HTTP"
)

type StressCPUSpec

type StressCPUSpec struct {
	// specifies P percent loading per CPU worker. 0 is effectively a sleep (no load) and 100 is full loading.
	Load int `json:"load,omitempty"`
	// specifies N workers to apply the stressor.
	Workers int `json:"workers,omitempty"`
	// extend stress-ng options
	Options []string `json:"options,omitempty"`
}

func (*StressCPUSpec) DeepCopy

func (in *StressCPUSpec) DeepCopy() *StressCPUSpec

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

func (*StressCPUSpec) DeepCopyInto

func (in *StressCPUSpec) DeepCopyInto(out *StressCPUSpec)

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

type StressChaos

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

	// Spec defines the behavior of a time chaos experiment
	Spec StressChaosSpec `json:"spec"`

	// Most recently observed status of the time chaos experiment
	Status StressChaosStatus `json:"status,omitempty"`
}

StressChaos is the Schema for the stresschaos API

func (*StressChaos) DeepCopy

func (in *StressChaos) DeepCopy() *StressChaos

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

func (*StressChaos) DeepCopyInto

func (in *StressChaos) DeepCopyInto(out *StressChaos)

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

func (*StressChaos) DeepCopyObject

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

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

func (*StressChaos) DurationExceeded

func (in *StressChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*StressChaos) GetCustomStatus

func (obj *StressChaos) GetCustomStatus() interface{}

func (*StressChaos) GetObjectMeta

func (in *StressChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*StressChaos) GetRemoteCluster

func (in *StressChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*StressChaos) GetSelectorSpecs

func (obj *StressChaos) GetSelectorSpecs() map[string]interface{}

func (*StressChaos) GetSpecAndMetaString

func (in *StressChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*StressChaos) GetStatus

func (in *StressChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*StressChaos) IsDeleted

func (in *StressChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*StressChaos) IsOneShot

func (in *StressChaos) IsOneShot() bool

func (*StressChaos) IsPaused

func (in *StressChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type StressChaosList

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

StressChaosList contains a list of StressChaos

func (*StressChaosList) DeepCopy

func (in *StressChaosList) DeepCopy() *StressChaosList

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

func (*StressChaosList) DeepCopyInto

func (in *StressChaosList) DeepCopyInto(out *StressChaosList)

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

func (*StressChaosList) DeepCopyList

func (in *StressChaosList) DeepCopyList() GenericChaosList

func (*StressChaosList) DeepCopyObject

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

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

func (*StressChaosList) GetItems

func (in *StressChaosList) GetItems() []GenericChaos

func (*StressChaosList) ListChaos

func (in *StressChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type StressChaosSpec

type StressChaosSpec struct {
	ContainerSelector `json:",inline"`

	// Stressors defines plenty of stressors supported to stress system components out.
	// You can use one or more of them to make up various kinds of stresses. At least
	// one of the stressors should be specified.
	Stressors *Stressors `json:"stressors,omitempty"`

	// StressngStressors defines plenty of stressors just like `Stressors` except that it's an experimental
	// feature and more powerful. You can define stressors in `stress-ng` (see also `man stress-ng`) dialect,
	// however not all of the supported stressors are well tested. It maybe retired in later releases. You
	// should always use `Stressors` to define the stressors and use this only when you want more stressors
	// unsupported by `Stressors`. When both `StressngStressors` and `Stressors` are defined, `StressngStressors`
	// wins.
	StressngStressors string `json:"stressngStressors,omitempty"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty" webhook:"Duration"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

StressChaosSpec defines the desired state of StressChaos

func (*StressChaosSpec) DeepCopy

func (in *StressChaosSpec) DeepCopy() *StressChaosSpec

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

func (*StressChaosSpec) DeepCopyInto

func (in *StressChaosSpec) DeepCopyInto(out *StressChaosSpec)

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

func (*StressChaosSpec) GetDuration

func (in *StressChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type StressChaosStatus

type StressChaosStatus struct {
	ChaosStatus `                          json:",inline"`
	// Instances always specifies stressing instances
	Instances map[string]StressInstance `json:"instances,omitempty"`
}

StressChaosStatus defines the observed state of StressChaos

func (*StressChaosStatus) DeepCopy

func (in *StressChaosStatus) DeepCopy() *StressChaosStatus

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

func (*StressChaosStatus) DeepCopyInto

func (in *StressChaosStatus) DeepCopyInto(out *StressChaosStatus)

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

type StressInstance

type StressInstance struct {
	// UID is the stress-ng identifier
	UID string `json:"uid,omitempty"`
	// MemoryUID is the memStress identifier
	MemoryUID string `json:"memoryUid,omitempty"`
	// StartTime specifies when the stress-ng starts
	StartTime *metav1.Time `json:"startTime,omitempty"`
	// MemoryStartTime specifies when the memStress starts
	MemoryStartTime *metav1.Time `json:"memoryStartTime,omitempty"`
}

StressInstance is an instance generates stresses

func (*StressInstance) DeepCopy

func (in *StressInstance) DeepCopy() *StressInstance

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

func (*StressInstance) DeepCopyInto

func (in *StressInstance) DeepCopyInto(out *StressInstance)

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

type StressMemorySpec

type StressMemorySpec struct {
	// specifies N bytes consumed per vm worker, default is the total available memory.
	// One can specify the size as % of total available memory or in units of B, KB/KiB, MB/MiB, GB/GiB, TB/TiB..
	Size string `json:"size,omitempty"`
	// extend stress-ng options
	Options []string `json:"options,omitempty"`
}

func (*StressMemorySpec) DeepCopy

func (in *StressMemorySpec) DeepCopy() *StressMemorySpec

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

func (*StressMemorySpec) DeepCopyInto

func (in *StressMemorySpec) DeepCopyInto(out *StressMemorySpec)

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

type Stressor

type Stressor struct {
	// Workers specifies N workers to apply the stressor.
	// Maximum 8192 workers can run by stress-ng
	Workers int `json:"workers"`
}

Stressor defines common configurations of a stressor

func (*Stressor) DeepCopy

func (in *Stressor) DeepCopy() *Stressor

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

func (*Stressor) DeepCopyInto

func (in *Stressor) DeepCopyInto(out *Stressor)

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

type Stressors

type Stressors struct {
	// MemoryStressor stresses virtual memory out
	MemoryStressor *MemoryStressor `json:"memory,omitempty"`
	// CPUStressor stresses CPU out
	CPUStressor *CPUStressor `json:"cpu,omitempty"`
}

Stressors defines plenty of stressors supported to stress system components out. You can use one or more of them to make up various kinds of stresses

func (*Stressors) DeepCopy

func (in *Stressors) DeepCopy() *Stressors

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

func (*Stressors) DeepCopyInto

func (in *Stressors) DeepCopyInto(out *Stressors)

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

func (*Stressors) Normalize

func (in *Stressors) Normalize() (cpuStressors string, memoryStressors string, err error)

Normalize the stressors to comply with stress-ng

type Task

type Task struct {
	// Container is the main container image to run in the pod
	Container *corev1.Container `json:"container,omitempty"`

	// Volumes is a list of volumes that can be mounted by containers in a template.
	// +patchStrategy=merge
	// +patchMergeKey=name
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*Task) DeepCopy

func (in *Task) DeepCopy() *Task

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

func (*Task) DeepCopyInto

func (in *Task) DeepCopyInto(out *Task)

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

type TcParameter

type TcParameter struct {
	// Delay represents the detail about delay action
	// +ui:form:when=action=='delay'
	Delay *DelaySpec `json:"delay,omitempty"`

	// Loss represents the detail about loss action
	// +ui:form:when=action=='loss'
	Loss *LossSpec `json:"loss,omitempty"`

	// DuplicateSpec represents the detail about loss action
	// +ui:form:when=action=='duplicate'
	Duplicate *DuplicateSpec `json:"duplicate,omitempty"`

	// Corrupt represents the detail about corrupt action
	// +ui:form:when=action=='corrupt'
	Corrupt *CorruptSpec `json:"corrupt,omitempty"`

	// Bandwidth represents the detail about bandwidth control action
	// +ui:form:when=action=='bandwidth'
	Bandwidth *BandwidthSpec `json:"bandwidth,omitempty"`
}

TcParameter represents the parameters for a traffic control chaos

func (*TcParameter) DeepCopy

func (in *TcParameter) DeepCopy() *TcParameter

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

func (*TcParameter) DeepCopyInto

func (in *TcParameter) DeepCopyInto(out *TcParameter)

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

type TcType

type TcType string

TcType the type of traffic control

const (
	// Netem represents netem traffic control
	Netem TcType = "netem"

	// Bandwidth represents bandwidth shape traffic control
	Bandwidth TcType = "bandwidth"
)

type Template

type Template struct {
	Name     string       `json:"name"`
	Type     TemplateType `json:"templateType"`
	Deadline *string      `json:"deadline,omitempty"`
	// Task describes the behavior of the custom task. Only used when Type is TypeTask.
	Task *Task `json:"task,omitempty"`
	// Children describes the children steps of serial or parallel node. Only used when Type is TypeSerial or TypeParallel.
	Children []string `json:"children,omitempty"`
	// ConditionalBranches describes the conditional branches of custom tasks. Only used when Type is TypeTask.
	ConditionalBranches []ConditionalBranch `json:"conditionalBranches,omitempty"`
	// EmbedChaos describe the chaos to be injected with chaos nodes. Only used when Type is Type<Something>Chaos.
	*EmbedChaos `                       json:",inline"`
	// Schedule describe the Schedule(describing scheduled chaos) to be injected with chaos nodes. Only used when Type is TypeSchedule.
	Schedule *ChaosOnlyScheduleSpec `json:"schedule,omitempty"`
	// StatusCheck describe the behavior of StatusCheck. Only used when Type is TypeStatusCheck.
	StatusCheck *StatusCheckSpec `json:"statusCheck,omitempty"`
	// AbortWithStatusCheck describe whether to abort the workflow when the failure threshold of StatusCheck is exceeded.
	// Only used when Type is TypeStatusCheck.
	AbortWithStatusCheck bool `json:"abortWithStatusCheck,omitempty"`
}

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.

type TemplateType

type TemplateType string
const (
	TypeTask        TemplateType = "Task"
	TypeSerial      TemplateType = "Serial"
	TypeParallel    TemplateType = "Parallel"
	TypeSuspend     TemplateType = "Suspend"
	TypeSchedule    TemplateType = "Schedule"
	TypeStatusCheck TemplateType = "StatusCheck"
)
const (
	TypeAWSChaos             TemplateType = "AWSChaos"
	TypeAzureChaos           TemplateType = "AzureChaos"
	TypeBlockChaos           TemplateType = "BlockChaos"
	TypeDNSChaos             TemplateType = "DNSChaos"
	TypeGCPChaos             TemplateType = "GCPChaos"
	TypeHTTPChaos            TemplateType = "HTTPChaos"
	TypeIOChaos              TemplateType = "IOChaos"
	TypeJVMChaos             TemplateType = "JVMChaos"
	TypeKernelChaos          TemplateType = "KernelChaos"
	TypeNetworkChaos         TemplateType = "NetworkChaos"
	TypePhysicalMachineChaos TemplateType = "PhysicalMachineChaos"
	TypePodChaos             TemplateType = "PodChaos"
	TypeStressChaos          TemplateType = "StressChaos"
	TypeTimeChaos            TemplateType = "TimeChaos"
)

type TimeChaos

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

	// Spec defines the behavior of a time chaos experiment
	Spec TimeChaosSpec `json:"spec"`

	// Most recently observed status of the time chaos experiment
	Status TimeChaosStatus `json:"status,omitempty"`
}

TimeChaos is the Schema for the timechaos API

func (*TimeChaos) DeepCopy

func (in *TimeChaos) DeepCopy() *TimeChaos

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

func (*TimeChaos) DeepCopyInto

func (in *TimeChaos) DeepCopyInto(out *TimeChaos)

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

func (*TimeChaos) DeepCopyObject

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

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

func (*TimeChaos) DurationExceeded

func (in *TimeChaos) DurationExceeded(now time.Time) (bool, time.Duration, error)

func (*TimeChaos) GetObjectMeta

func (in *TimeChaos) GetObjectMeta() *metav1.ObjectMeta

GetObjectMeta would return the ObjectMeta for chaos

func (*TimeChaos) GetRemoteCluster

func (in *TimeChaos) GetRemoteCluster() string

GetRemoteCluster returns the remoteCluster

func (*TimeChaos) GetSelectorSpecs

func (in *TimeChaos) GetSelectorSpecs() map[string]interface{}

func (*TimeChaos) GetSpecAndMetaString

func (in *TimeChaos) GetSpecAndMetaString() (string, error)

GetSpecAndMetaString returns a string including the meta and spec field of this chaos object.

func (*TimeChaos) GetStatus

func (in *TimeChaos) GetStatus() *ChaosStatus

GetStatus returns the status

func (*TimeChaos) IsDeleted

func (in *TimeChaos) IsDeleted() bool

IsDeleted returns whether this resource has been deleted

func (*TimeChaos) IsOneShot

func (in *TimeChaos) IsOneShot() bool

func (*TimeChaos) IsPaused

func (in *TimeChaos) IsPaused() bool

IsPaused returns whether this resource has been paused

type TimeChaosList

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

TimeChaosList contains a list of TimeChaos

func (*TimeChaosList) DeepCopy

func (in *TimeChaosList) DeepCopy() *TimeChaosList

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

func (*TimeChaosList) DeepCopyInto

func (in *TimeChaosList) DeepCopyInto(out *TimeChaosList)

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

func (*TimeChaosList) DeepCopyList

func (in *TimeChaosList) DeepCopyList() GenericChaosList

func (*TimeChaosList) DeepCopyObject

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

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

func (*TimeChaosList) GetItems

func (in *TimeChaosList) GetItems() []GenericChaos

func (*TimeChaosList) ListChaos

func (in *TimeChaosList) ListChaos() []GenericChaos

ListChaos returns a list of chaos

type TimeChaosSpec

type TimeChaosSpec struct {
	ContainerSelector `json:",inline"`

	// TimeOffset defines the delta time of injected program. It's a possibly signed sequence of decimal numbers, such as
	// "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
	TimeOffset string `json:"timeOffset" webhook:"TimeOffset"`

	// ClockIds defines all affected clock id
	// All available options are ["CLOCK_REALTIME","CLOCK_MONOTONIC","CLOCK_PROCESS_CPUTIME_ID","CLOCK_THREAD_CPUTIME_ID",
	// "CLOCK_MONOTONIC_RAW","CLOCK_REALTIME_COARSE","CLOCK_MONOTONIC_COARSE","CLOCK_BOOTTIME","CLOCK_REALTIME_ALARM",
	// "CLOCK_BOOTTIME_ALARM"]
	// Default value is ["CLOCK_REALTIME"]
	ClockIds []string `json:"clockIds,omitempty" webhook:"ClockIds,nilable"`

	// Duration represents the duration of the chaos action
	Duration *string `json:"duration,omitempty"`

	// RemoteCluster represents the remote cluster where the chaos will be deployed
	RemoteCluster string `json:"remoteCluster,omitempty"`
}

TimeChaosSpec defines the desired state of TimeChaos

func (*TimeChaosSpec) DeepCopy

func (in *TimeChaosSpec) DeepCopy() *TimeChaosSpec

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

func (*TimeChaosSpec) DeepCopyInto

func (in *TimeChaosSpec) DeepCopyInto(out *TimeChaosSpec)

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

func (*TimeChaosSpec) GetDuration

func (in *TimeChaosSpec) GetDuration() (*time.Duration, error)

GetDuration would return the duration for chaos

type TimeChaosStatus

type TimeChaosStatus struct {
	ChaosStatus `json:",inline"`
}

TimeChaosStatus defines the observed state of TimeChaos

func (*TimeChaosStatus) DeepCopy

func (in *TimeChaosStatus) DeepCopy() *TimeChaosStatus

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

func (*TimeChaosStatus) DeepCopyInto

func (in *TimeChaosStatus) DeepCopyInto(out *TimeChaosStatus)

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

type Timespec

type Timespec struct {
	Sec  int64 `json:"sec"`
	Nsec int64 `json:"nsec"`
}

Timespec represents a time

func (*Timespec) DeepCopy

func (in *Timespec) DeepCopy() *Timespec

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

func (*Timespec) DeepCopyInto

func (in *Timespec) DeepCopyInto(out *Timespec)

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

type UserDefinedSpec

type UserDefinedSpec struct {
	// The command to be executed when attack
	AttackCmd string `json:"attackCmd,omitempty"`
	// The command to be executed when recover
	RecoverCmd string `json:"recoverCmd,omitempty"`
}

func (*UserDefinedSpec) DeepCopy

func (in *UserDefinedSpec) DeepCopy() *UserDefinedSpec

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

func (*UserDefinedSpec) DeepCopyInto

func (in *UserDefinedSpec) DeepCopyInto(out *UserDefinedSpec)

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

type VMSpec

type VMSpec struct {
	// The name of the VM to be injected
	VMName string `json:"vm-name,omitempty"`
}

func (*VMSpec) DeepCopy

func (in *VMSpec) DeepCopy() *VMSpec

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

func (*VMSpec) DeepCopyInto

func (in *VMSpec) DeepCopyInto(out *VMSpec)

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

type Workflow

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

	// Spec defines the behavior of a workflow
	Spec WorkflowSpec `json:"spec"`

	// Most recently observed status of the workflow
	Status WorkflowStatus `json:"status"`
}

+chaos-mesh:experiment

func (*Workflow) DeepCopy

func (in *Workflow) DeepCopy() *Workflow

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

func (*Workflow) DeepCopyInto

func (in *Workflow) DeepCopyInto(out *Workflow)

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

func (*Workflow) DeepCopyObject

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

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

func (*Workflow) GetObjectMeta

func (in *Workflow) GetObjectMeta() *metav1.ObjectMeta

type WorkflowCondition

type WorkflowCondition struct {
	Type      WorkflowConditionType  `json:"type"`
	Status    corev1.ConditionStatus `json:"status"`
	Reason    string                 `json:"reason"`
	StartTime *metav1.Time           `json:"startTime,omitempty"`
}

func (*WorkflowCondition) DeepCopy

func (in *WorkflowCondition) DeepCopy() *WorkflowCondition

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

func (*WorkflowCondition) DeepCopyInto

func (in *WorkflowCondition) DeepCopyInto(out *WorkflowCondition)

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

type WorkflowConditionType

type WorkflowConditionType string
const (
	WorkflowConditionAccomplished WorkflowConditionType = "Accomplished"
	WorkflowConditionScheduled    WorkflowConditionType = "Scheduled"
)

type WorkflowList

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

func (*WorkflowList) DeepCopy

func (in *WorkflowList) DeepCopy() *WorkflowList

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

func (*WorkflowList) DeepCopyInto

func (in *WorkflowList) DeepCopyInto(out *WorkflowList)

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

func (*WorkflowList) DeepCopyList

func (in *WorkflowList) DeepCopyList() GenericChaosList

TODO: refactor: not so accurate

func (*WorkflowList) DeepCopyObject

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

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

func (*WorkflowList) GetItems

func (in *WorkflowList) GetItems() []GenericChaos

type WorkflowNode

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

	// Spec defines the behavior of a node of workflow
	Spec WorkflowNodeSpec `json:"spec"`

	// Most recently observed status of the workflow node
	Status WorkflowNodeStatus `json:"status,omitempty"`
}

func (*WorkflowNode) DeepCopy

func (in *WorkflowNode) DeepCopy() *WorkflowNode

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

func (*WorkflowNode) DeepCopyInto

func (in *WorkflowNode) DeepCopyInto(out *WorkflowNode)

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

func (*WorkflowNode) DeepCopyObject

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

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

type WorkflowNodeCondition

type WorkflowNodeCondition struct {
	Type   WorkflowNodeConditionType `json:"type"`
	Status corev1.ConditionStatus    `json:"status"`
	Reason string                    `json:"reason"`
}

func (*WorkflowNodeCondition) DeepCopy

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

func (*WorkflowNodeCondition) DeepCopyInto

func (in *WorkflowNodeCondition) DeepCopyInto(out *WorkflowNodeCondition)

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

type WorkflowNodeConditionType

type WorkflowNodeConditionType string
const (
	ConditionAccomplished   WorkflowNodeConditionType = "Accomplished"
	ConditionDeadlineExceed WorkflowNodeConditionType = "DeadlineExceed"
	ConditionChaosInjected  WorkflowNodeConditionType = "ChaosInjected"
	ConditionAborted        WorkflowNodeConditionType = "Aborted"
)

type WorkflowNodeList

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

func (*WorkflowNodeList) DeepCopy

func (in *WorkflowNodeList) DeepCopy() *WorkflowNodeList

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

func (*WorkflowNodeList) DeepCopyInto

func (in *WorkflowNodeList) DeepCopyInto(out *WorkflowNodeList)

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

func (*WorkflowNodeList) DeepCopyObject

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

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

type WorkflowNodeSpec

type WorkflowNodeSpec struct {
	TemplateName        string              `json:"templateName"`
	WorkflowName        string              `json:"workflowName"`
	Type                TemplateType        `json:"type"`
	StartTime           *metav1.Time        `json:"startTime"`
	Deadline            *metav1.Time        `json:"deadline,omitempty"`
	Task                *Task               `json:"task,omitempty"`
	Children            []string            `json:"children,omitempty"`
	ConditionalBranches []ConditionalBranch `json:"conditionalBranches,omitempty"`
	*EmbedChaos         `json:",inline,omitempty"`
	Schedule            *ScheduleSpec `json:"schedule,omitempty"`
	// StatusCheck describe the behavior of StatusCheck. Only used when Type is TypeStatusCheck.
	StatusCheck *StatusCheckSpec `json:"statusCheck,omitempty"`
	// AbortWithStatusCheck describe whether to abort the workflow when the failure threshold of StatusCheck is exceeded.
	// Only used when Type is TypeStatusCheck.
	AbortWithStatusCheck bool `json:"abortWithStatusCheck,omitempty"`
}

func (*WorkflowNodeSpec) DeepCopy

func (in *WorkflowNodeSpec) DeepCopy() *WorkflowNodeSpec

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

func (*WorkflowNodeSpec) DeepCopyInto

func (in *WorkflowNodeSpec) DeepCopyInto(out *WorkflowNodeSpec)

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

type WorkflowNodeStatus

type WorkflowNodeStatus struct {

	// ChaosResource refs to the real chaos CR object.
	ChaosResource *corev1.TypedLocalObjectReference `json:"chaosResource,omitempty"`

	// ConditionalBranchesStatus records the evaluation result of each ConditionalBranch
	ConditionalBranchesStatus *ConditionalBranchesStatus `json:"conditionalBranchesStatus,omitempty"`

	// ActiveChildren means the created children node
	ActiveChildren []corev1.LocalObjectReference `json:"activeChildren,omitempty"`

	// Children is necessary for representing the order when replicated child template references by parent template.
	FinishedChildren []corev1.LocalObjectReference `json:"finishedChildren,omitempty"`

	// Represents the latest available observations of a workflow node's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions []WorkflowNodeCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*WorkflowNodeStatus) DeepCopy

func (in *WorkflowNodeStatus) DeepCopy() *WorkflowNodeStatus

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

func (*WorkflowNodeStatus) DeepCopyInto

func (in *WorkflowNodeStatus) DeepCopyInto(out *WorkflowNodeStatus)

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

type WorkflowSpec

type WorkflowSpec struct {
	Entry     string     `json:"entry"`
	Templates []Template `json:"templates"`
}

func (*WorkflowSpec) DeepCopy

func (in *WorkflowSpec) DeepCopy() *WorkflowSpec

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

func (*WorkflowSpec) DeepCopyInto

func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec)

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

type WorkflowStatus

type WorkflowStatus struct {
	EntryNode *string      `json:"entryNode,omitempty"`
	StartTime *metav1.Time `json:"startTime,omitempty"`
	EndTime   *metav1.Time `json:"endTime,omitempty"`
	// Represents the latest available observations of a workflow's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions []WorkflowCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*WorkflowStatus) DeepCopy

func (in *WorkflowStatus) DeepCopy() *WorkflowStatus

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

func (*WorkflowStatus) DeepCopyInto

func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus)

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