v1alpha1

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the chaosblade v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=chaosblade.io

Package v1alpha1 contains API Schema definitions for the chaosblade v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=chaosblade.io

Index

Constants

View Source
const (
	PodKind       = "pod"
	ContainerKind = "container"
	NodeKind      = "node"
)
View Source
const (
	SuccessState   = "Success"
	ErrorState     = "Error"
	DestroyedState = "Destroyed"
)

Variables

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

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

Functions

Types

type ChaosBlade

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

	Spec   ChaosBladeSpec   `json:"spec,omitempty"`
	Status ChaosBladeStatus `json:"status,omitempty"`
}

ChaosBlade is the Schema for the chaosblades API +k8s:openapi-gen=true +kubebuilder:subresource:status

func (*ChaosBlade) DeepCopy

func (in *ChaosBlade) DeepCopy() *ChaosBlade

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

func (*ChaosBlade) DeepCopyInto

func (in *ChaosBlade) DeepCopyInto(out *ChaosBlade)

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

func (*ChaosBlade) DeepCopyObject

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

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

type ChaosBladeList

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

ChaosBladeList contains a list of ChaosBlade

func (*ChaosBladeList) DeepCopy

func (in *ChaosBladeList) DeepCopy() *ChaosBladeList

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

func (*ChaosBladeList) DeepCopyInto

func (in *ChaosBladeList) DeepCopyInto(out *ChaosBladeList)

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

func (*ChaosBladeList) DeepCopyObject

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

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

type ChaosBladeSpec

type ChaosBladeSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
	// Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
	Experiments []ExperimentSpec `json:"experiments"`
}

ChaosBladeSpec defines the desired state of ChaosBlade +k8s:openapi-gen=true

func (*ChaosBladeSpec) DeepCopy

func (in *ChaosBladeSpec) DeepCopy() *ChaosBladeSpec

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

func (*ChaosBladeSpec) DeepCopyInto

func (in *ChaosBladeSpec) DeepCopyInto(out *ChaosBladeSpec)

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

type ChaosBladeStatus

type ChaosBladeStatus struct {
	// Phase indicates the state of the experiment
	//   Initial -> Running -> Updating -> Destroying -> Destroyed
	Phase ClusterPhase `json:"phase,omitempty"`

	// Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
	// Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
	ExpStatuses []ExperimentStatus `json:"expStatuses"`
}

ChaosBladeStatus defines the observed state of ChaosBlade +k8s:openapi-gen=true

func (*ChaosBladeStatus) DeepCopy

func (in *ChaosBladeStatus) DeepCopy() *ChaosBladeStatus

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

func (*ChaosBladeStatus) DeepCopyInto

func (in *ChaosBladeStatus) DeepCopyInto(out *ChaosBladeStatus)

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

type ClusterPhase

type ClusterPhase string
const (
	ClusterPhaseInitial     ClusterPhase = ""
	ClusterPhaseInitialized ClusterPhase = "Initialized"
	ClusterPhaseRunning     ClusterPhase = "Running"
	ClusterPhaseUpdating    ClusterPhase = "Updating"
	ClusterPhaseDestroying  ClusterPhase = "Destroying"
	ClusterPhaseDestroyed   ClusterPhase = "Destroyed"
	ClusterPhaseError       ClusterPhase = "Error"
)

type ExperimentSpec

type ExperimentSpec struct {
	// Scope is the area of the experiments, currently support node, pod and container
	Scope string `json:"scope"`
	// Target is the experiment target, such as cpu, network
	Target string `json:"target"`
	// Action is the experiment scenario of the target, such as delay, load
	Action string `json:"action"`
	// Desc is the experiment description
	Desc string `json:"desc,omitempty"`
	// Matchers is the experiment rules
	Matchers []FlagSpec `json:"matchers,omitempty"`
}

func (*ExperimentSpec) DeepCopy

func (in *ExperimentSpec) DeepCopy() *ExperimentSpec

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

func (*ExperimentSpec) DeepCopyInto

func (in *ExperimentSpec) DeepCopyInto(out *ExperimentSpec)

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

type ExperimentStatus

type ExperimentStatus struct {
	// experiment scope for cache
	Scope  string `json:"scope"`
	Target string `json:"target"`
	Action string `json:"action"`
	// Success is used to judge the experiment result
	Success bool `json:"success"`
	// State is used to describe the experiment result
	State string `json:"state"`
	Error string `json:"error,omitempty"`
	// ResStatuses is the details of the experiment
	ResStatuses []ResourceStatus `json:"resStatuses,omitempty"`
}

func CreateDestroyedExperimentStatus

func CreateDestroyedExperimentStatus(ResStatuses []ResourceStatus) ExperimentStatus

func CreateFailExperimentStatus

func CreateFailExperimentStatus(err string, ResStatuses []ResourceStatus) ExperimentStatus

func CreateSuccessExperimentStatus

func CreateSuccessExperimentStatus(ResStatuses []ResourceStatus) ExperimentStatus

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 FlagSpec

type FlagSpec struct {
	// Name is the name of flag
	Name string `json:"name"`
	// TODO: Temporarily defined as an array for all flags
	// Value is the value of flag
	Value []string `json:"value"`
}

func (*FlagSpec) DeepCopy

func (in *FlagSpec) DeepCopy() *FlagSpec

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

func (*FlagSpec) DeepCopyInto

func (in *FlagSpec) DeepCopyInto(out *FlagSpec)

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

type ResourceStatus

type ResourceStatus struct {
	// experiment uid in chaosblade
	Id string `json:"id,omitempty"`
	// experiment state
	State string `json:"state"`
	// experiment code
	Code int32 `json:"code,omitempty"`
	// experiment error
	Error string `json:"error,omitempty"`
	// success
	Success bool `json:"success"`

	// Kind
	Kind string `json:"kind"`
	// Resource identifier, rules as following:
	// container: Namespace/NodeName/PodName/ContainerName
	// pod: Namespace/NodeName/PodName
	Identifier string `json:"identifier,omitempty"`
}

func CreateFailResStatuses

func CreateFailResStatuses(code int32, err, uid string) []ResourceStatus

func (*ResourceStatus) CreateFailResourceStatus

func (in *ResourceStatus) CreateFailResourceStatus(err string, code int32) ResourceStatus

func (*ResourceStatus) CreateSuccessResourceStatus

func (in *ResourceStatus) CreateSuccessResourceStatus() ResourceStatus

func (*ResourceStatus) DeepCopy

func (in *ResourceStatus) DeepCopy() *ResourceStatus

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

func (*ResourceStatus) DeepCopyInto

func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus)

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