Field Reference
Packages:
frisbee.dev/v1alpha1
Package v1alpha1 is the v1alpha1 version of the Frisbee API.
Action
(Appears on:ScenarioSpec)
Action is a step in a workflow that defines a particular part of a testing process.
Field | Description |
---|---|
action ActionType |
ActionType refers to a category of actions that can be associated with a specific controller. |
name string |
Name is a unique identifier of the action |
depends WaitSpec |
(Optional)
DependsOn defines the conditions for the execution of this action |
assert ConditionalExpr |
(Optional)
Assert defines the conditions that must be maintained after the action has been started. If the evaluation of the condition is false, the Scenario will abort immediately. |
EmbedActions EmbedActions |
(Members of |
ActionType
(string
alias)
(Appears on:Action)
Value | Description |
---|---|
"Call" |
ActionCall starts a remote process execution, from the controller to the targeted services. |
"Cascade" |
ActionCascade injects multiple failures into the running system. |
"Chaos" |
ActionChaos injects failures into the running system. |
"Cluster" |
ActionCluster creates multiple services running in a shared context. |
"Delete" |
ActionDelete deletes a created Frisbee resource (i.e services, clusters,). |
"Service" |
ActionService creates a new service. |
Call
Call is the Schema for the Call API.
Field | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||||||
spec CallSpec |
|
||||||||||||||
status CallStatus |
CallSpec
(Appears on:Call, EmbedActions)
CallSpec defines the desired state of Call.
Field | Description |
---|---|
callable string |
Callable is the name of the endpoint that will be called |
services []string |
Services is a list of services that will be stopped. |
expect []MatchOutputs |
(Optional)
Expect declares a list of expected outputs. The number of expected outputs must be the same as the number of defined services. |
tolerate TolerateSpec |
(Optional)
Tolerate specifies the conditions under which the call will fail. If undefined, the call fails immediately when a call to service has failed. |
until ConditionalExpr |
(Optional)
Until defines the conditions under which the CR will stop spawning new jobs. If used in conjunction with inputs, it will loop over inputs until the conditions are met. |
schedule SchedulerSpec |
(Optional)
Schedule defines the interval between the invocations of the callable. |
suspend bool |
(Optional)
Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. |
CallStatus
(Appears on:Call)
CallStatus defines the observed state of Call.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []Callable |
(Optional)
QueuedJobs is a list of services scheduled for stopping. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Service was successfully scheduled. |
Callable
(Appears on:CallStatus, ServiceSpec)
Callable is a script that is executed within the service container, and returns a value. For example, a callable can be a command for stopping the containers that run in the Pod.
Field | Description |
---|---|
container string |
Container specific the name of the container to which we will run the command |
command []string |
Container specifies a command and arguments to stop the targeted container in an application-specific manner. |
Cascade
Cascade is the Schema for the clusters API.
Field | Description | ||||||
---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||
spec CascadeSpec |
|
||||||
status CascadeStatus |
CascadeSpec
(Appears on:Cascade, EmbedActions)
CascadeSpec defines the desired state of Cascade.
Field | Description |
---|---|
GenerateFromTemplate GenerateFromTemplate |
(Members of |
schedule SchedulerSpec |
(Optional)
Schedule defines the interval between the creation of services within the group. |
suspend bool |
(Optional)
Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. |
CascadeStatus
(Appears on:Cascade)
CascadeStatus defines the observed state of Cascade.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []ChaosSpec |
(Optional)
QueuedJobs is a list of Chaos jobs scheduled for creation by the cascade. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Chaos job was successfully scheduled. |
Chaos
Chaos is the Schema for the chaos API.
Field | Description | ||||
---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||
spec ChaosSpec |
|
||||
status ChaosStatus |
ChaosSpec
(Appears on:CascadeStatus, Chaos, EmbedSpecs)
ChaosSpec defines the desired state of Chaos.
Field | Description |
---|---|
type FaultType |
Type indicate the type of the injected fault |
EmbedFaultType EmbedFaultType |
(Members of |
ChaosStatus
(Appears on:Chaos)
ChaosStatus defines the observed state of Chaos.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Pod was scheduled. |
Cluster
Cluster is the Schema for the clusters API.
Field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||
spec ClusterSpec |
|
||||||||||
status ClusterStatus |
ClusterSpec
(Appears on:Cluster, EmbedActions)
ClusterSpec defines the desired state of Cluster.
Field | Description |
---|---|
GenerateFromTemplate GenerateFromTemplate |
(Members of |
tolerate TolerateSpec |
(Optional)
Tolerate specifies the conditions under which the cluster will fail. If undefined, the cluster fails immediately when a service has failed. |
schedule SchedulerSpec |
(Optional)
Schedule defines the interval between the creation of services in the group. |
placement PlacementSpec |
(Optional)
Placement defines rules for placing the containers across the available nodes. |
suspend bool |
(Optional)
Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. |
ClusterStatus
(Appears on:Cluster)
ClusterStatus defines the observed state of Cluster.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []ServiceSpec |
(Optional)
QueuedJobs is a list of services scheduled for creation by the cluster. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Service was successfully scheduled. |
Component
(string
alias)
Value | Description |
---|---|
"SUT" |
ComponentSUT is a component that belongs to the system under testing |
"SYS" |
ComponentSys is a component that belongs to Frisbee. Such components can be excluded from Chaos events. |
ConditionType
(string
alias)
ConditionType is a valid value for WorkflowCondition.Type
Value | Description |
---|---|
"AllJobsAreCompleted" |
ConditionAllJobsAreCompleted indicates that all jobs have been successfully completed. Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc. |
"AllJobsAreScheduled" |
ConditionAllJobsAreScheduled indicates that all jobs have been successfully scheduled. Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc. |
"Assert" |
ConditionAssert indicate that an assertion condition is false. |
"Initialized" |
ConditionCRInitialized indicates whether the workflow has been initialized |
"UnexpectedTermination" |
ConditionJobUnexpectedTermination is used for a job that has been unexpectedly terminated. The termination refers to both Success and Fail. |
"PerformanceAlert" |
ConditionPerformanceAlert indicates an alert received by Grafana concerning the real-time performance of the system. |
ConditionalExpr
(Appears on:Action, CallSpec, GenerateFromTemplate, SchedulerSpec)
ConditionalExpr is a source of information about whether the state of the workflow after a given time is correct or not. This is needed because some scenarios may run in infinite-horizons.
Field | Description |
---|---|
metrics ExprMetrics |
(Optional)
Metrics set a Grafana alert that will be triggered once the condition is met. Parsing: Grafana URL: http://grafana/d/A2EjFbsMk/ycsb-services?editPanel=86 metrics: A2EjFbsMk/86/Average (Panel/Dashboard/Metric) |
state ExprState |
(Optional)
State describe the runtime condition that should be met after the action has been executed Shall be defined using .Lifecycle() methods. The methods account only jobs that are managed by the object. |
Decorators
(Appears on:ServiceSpec)
Decorators takes-in a PodSpec, add some functionality and returns it.
Field | Description |
---|---|
labels map[string]string |
(Optional) |
annotations map[string]string |
(Optional) |
setFields []SetField |
(Optional)
SetFields is used to populate fields. Used for dynamic assignment based templated inputs. |
resources Resources |
(Optional)
Resources specifies limitations as to how the container will access host resources. |
telemetry []string |
(Optional)
Telemetry is a list of referenced agents responsible to monitor the Service. Agents are sidecar services will be deployed in the same Pod as the Service container. |
DefaultClassifier
DeleteSpec
(Appears on:EmbedActions)
Field | Description |
---|---|
jobs []string |
Jobs is a list of jobs to be deleted. The format is {“kind”:“name”}, e.g, {“service”,“client”} |
Disk
(Appears on:Resources)
Disk specifies the capabilities of the emulated storage device.
Field | Description |
---|---|
readbps string |
ReadBPS limits read rate (bytes per second) |
readiops string |
ReadIOPS limits read rate (IO per second) |
writebps string |
WriteBPS limits write rate (bytes per second) |
writeiops string |
WriteIOPS limits write rate (IO per second) |
EmbedActions
(Appears on:Action)
Field | Description |
---|---|
service GenerateFromTemplate |
(Optional) |
cluster ClusterSpec |
(Optional) |
chaos GenerateFromTemplate |
(Optional) |
cascade CascadeSpec |
(Optional) |
delete DeleteSpec |
(Optional) |
call CallSpec |
(Optional) |
EmbedFaultType
(Appears on:ChaosSpec)
Field | Description |
---|---|
raw RawSpec |
(Optional) |
EmbedSpecs
(Appears on:TemplateSpec)
Field | Description |
---|---|
service ServiceSpec |
(Optional) |
chaos ChaosSpec |
(Optional) |
EphemeralVolumeSpec
(Appears on:Requirements)
EphemeralVolumeSpec defines an ephemeral volume that has the lifetime of a pod, It’s use for application that need additional storage but don’t care whether that data is stored persistently across restarts.
Field | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string |
|||||||||||||||
spec Kubernetes core/v1.PersistentVolumeClaimSpec |
|
ExprMetrics
(string
alias)
(Appears on:ConditionalExpr)
ExprState
(string
alias)
(Appears on:ConditionalExpr)
FaultType
(string
alias)
(Appears on:ChaosSpec)
GenerateFromTemplate
(Appears on:CascadeSpec, ClusterSpec, EmbedActions)
GenerateFromTemplate generates a spec by parameterizing the templateRef with the given inputs.
Field | Description |
---|---|
templateRef string |
TemplateRef refers to a template (e.g, iperf-server). |
until ConditionalExpr |
(Optional)
Until defines the conditions under which the CR will stop spawning new jobs. If used in conjunction with inputs, it will loop over inputs until the conditions are met. |
instances int |
(Optional)
MaxInstances dictate the number of objects to be created for the CR. If no inputs are defined, then all instances will be initiated using the default parameters of the template. Event used in conjunction with Until, MaxInstances as a max bound. |
inputs []map[string]string |
(Optional)
Inputs are list of inputs passed to the objects. Event used in conjunction with instances, if the number of instances is larger that the number of inputs, then inputs are recursively iteration. |
Inputs
(Appears on:Scheme, TemplateSpec)
Field | Description |
---|---|
parameters map[string]string |
Parameters are user-set values that are dynamically evaluated |
Lifecycle
(Appears on:CallStatus, CascadeStatus, ChaosStatus, ClusterStatus, ScenarioStatus, ServiceStatus, TemplateStatus, VirtualObjectStatus)
Field | Description |
---|---|
phase Phase |
Phase is a simple, high-level summary of where the Object is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod’s status. |
reason string |
(Optional)
Reason is A brief CamelCase message indicating details about why the service is in this Phase. e.g. ‘Evicted’ |
message string |
Message provides more details for understanding the Reason. |
conditions []Kubernetes meta/v1.Condition |
(Optional)
Conditions describe sequences of events that warrant the present Phase. |
MatchBy
(Appears on:ServiceSelector)
MatchBy defines the selectors for services. If the all selectors are empty, all services will be selected.
Field | Description |
---|---|
byName map[string][]string |
(Optional)
ByName is a map of string keys and a set values that used to select services. The key defines the namespace which services belong, and the values is a set of service names. |
byCluster map[string]string |
(Optional)
ByCluster defines the service group where services belong. |
MatchOutputs
(Appears on:CallSpec)
MatchOutputs defined a set of remote command outputs that must be matched. The limit for both Stdout and Stderr is 1024 characters.
Field | Description |
---|---|
stdout string |
(Optional)
Stdout is a regex that describes the expected output from stdout. It cannot be longer than 1024 characters. |
stderr string |
(Optional)
Stderr is a regex that describes the expected output from stderr. It cannot be longer than 1024 characters. |
Mode
(string
alias)
(Appears on:ServiceSelector)
Mode represents the filter for selecting on of many.
Value | Description |
---|---|
"all" |
AllMode represents that the system will select all objects regardless of status (not ready or not running pods includes). Use this label carefully. |
"fixed" |
FixedMode represents that the system will select a specific number of running objects. |
"fixed-percent" |
FixedPercentMode to specify a fixed % of a cluster |
"one" |
OneMode represents that the system will select one object randomly. |
"random-max-percent" |
RandomMaxPercentMode to specify a maximum % of a cluster |
NIC
(Appears on:Resources)
NIC specifies the capabilities of the emulated network interface.
Field | Description |
---|---|
rate string |
|
latency string |
OnTime
Phase
(string
alias)
(Appears on:Lifecycle)
Phase is a simple, high-level summary of where the Object is in its lifecycle.
Value | Description |
---|---|
"Failed" |
PhaseFailed means that at least one job of the CR has terminated in a failure (exited with a non-zero exit code or was stopped by the system). |
"Pending" |
PhasePending means that the CR has been accepted by the Kubernetes cluster, but one of the child jobs has not been created. This includes the time waiting for logical dependencies, Ports discovery, data rewiring, and placement of Pods. |
"Running" |
PhaseRunning means that all the child jobs of a CR have been created, and at least one job is still running. |
"Success" |
PhaseSuccess means that all jobs in a CR have voluntarily exited, and the system is not going to restart any of these Jobs. |
"" |
PhaseUninitialized means that request is not yet accepted by the controller. |
PlacementSpec
(Appears on:ClusterSpec)
PlacementSpec defines rules for placing the containers across the available nodes.
Field | Description |
---|---|
collocate bool |
(Optional)
Collocate will place all the Services of this Cluster within the same node. |
conflictsWith []string |
ConflictsWith points to another Cluster whose Services cannot be located with this one. For example, this is needed for placing the master nodes on a different failure domain than the slave nodes. |
nodes []string |
(Optional)
Nodes will place all the Services of this Cluster within the specific set of nodes. |
RawSpec
(string
alias)
(Appears on:EmbedFaultType)
Requirements
(Appears on:ServiceSpec)
Requirements points to Kinds and their respective configurations required for the Service operation. For example, this field can be used to create PVCs dedicated to this service.
Field | Description |
---|---|
persistentVolumeClaim EphemeralVolumeSpec |
(Optional)
EphemeralVolume creates an ephemeral volume type. |
ingressBackend Kubernetes networking/v1.IngressBackend |
(Optional)
Ingress makes An API object that manages external access to the services in a cluster, typically HTTP. |
Resources
(Appears on:Decorators)
Resources specifies limitations as to how the container will access host resources.
Field | Description |
---|---|
memory string |
(Optional) |
cpu string |
(Optional) |
nic NIC |
(Optional) |
disk Disk |
(Optional) |
Scenario
Scenario is the Schema for the Scenarios API.
Field | Description | ||||
---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||
spec ScenarioSpec |
|
||||
status ScenarioStatus |
ScenarioSpec
(Appears on:Scenario)
ScenarioSpec defines the desired state of Scenario.
Field | Description |
---|---|
actions []Action |
Actions are the tasks that will be taken. |
suspend bool |
(Optional)
Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. |
ScenarioStatus
(Appears on:Scenario)
ScenarioStatus defines the observed state of Scenario.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
scheduledJobs []string |
(Optional)
ScheduledJobs is a list of references to the names of executed actions. |
grafanaEndpoint string |
GrafanaEndpoint points to the local Grafana instance |
prometheusEndpoint string |
PrometheusEndpoint points to the local Prometheus instance |
SchedulerSpec
(Appears on:CallSpec, CascadeSpec, ClusterSpec)
SchedulerSpec defines information about schedule of the chaos experiment. The scheduler will schedule up to spec.GenerateFromTemplate.Instances or spec.GenerateFromTemplate.Until.
Field | Description |
---|---|
cron string |
(Optional)
Cron defines a cron job rule. Some rule examples: “0 30 * * * *” means to “Every hour on the half hour” “@hourly” means to “Every hour” “@every 1h30m” means to “Every hour thirty” More rule info: https://godoc.org/github.com/robfig/cron |
startingDeadlineSeconds int64 |
(Optional)
StartingDeadlineSeconds is an optional deadline in seconds for starting the job if it misses scheduled time for any reason. if we miss this deadline, we’ll just wait till the next scheduled time |
event ConditionalExpr |
(Optional)
Event schedules a new every when an event has happened. |
Scheme
Field | Description |
---|---|
scenario string |
Scenario returns the name of the scenario that invokes the template. |
namespace string |
Returns the namespace where the scenario is running |
inputs Inputs |
(Optional)
Inputs are dynamic fields that populate the spec. |
spec []byte |
Spec is the specification whose values will be replaced by parameters. |
Service
Service is the Schema for the services API.
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||
spec ServiceSpec |
|
||||||||
status ServiceStatus |
ServiceSelector
Field | Description |
---|---|
match MatchBy |
(Optional)
Match contains the rules to select target |
mode Mode |
(Optional)
Mode defines which of the selected services to use. If undefined, all() is used Supported mode: one / all / fixed / fixed-percent / random-max-percent |
value string |
(Optional)
Value is required when the mode is set to |
macro string |
(Optional)
Macro abstract selector parameters into a structured string (e.g, .cluster.master.all). Every parsed field is represents an inner structure of the selector. In case of invalid macro, the selector will return empty results. Macro conflicts with any other parameter. |
ServiceSpec
(Appears on:ClusterStatus, EmbedSpecs, Service)
ServiceSpec defines the desired state of Service.
Field | Description |
---|---|
decorators Decorators |
(Optional) |
requirements Requirements |
(Optional) |
callables map[string]./api/v1alpha1.Callable |
(Optional) |
PodSpec Kubernetes core/v1.PodSpec |
(Members of |
ServiceStatus
(Appears on:Service)
ServiceStatus defines the observed state of Service.
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Pod was scheduled. |
SetField
(Appears on:Decorators)
Field | Description |
---|---|
field string |
Field is the path to the field whose value will be replaced. Examples: Containers.0.Ports.0 |
value string |
StateAggregationFunctions
StateAggregationFunctions is a set of aggregation functions for managing the lifecycle of different resources.
Template
Template is the Schema for the templates API
Field | Description | ||||
---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||
spec TemplateSpec |
|
||||
status TemplateStatus |
TemplateSpec
(Appears on:Template)
TemplateSpec defines the desired state of Template
Field | Description |
---|---|
inputs Inputs |
(Optional)
Inputs are dynamic fields that populate the spec. |
EmbedSpecs EmbedSpecs |
(Members of EmbedSpecs point to the Frisbee specs that can be templated. |
TemplateStatus
(Appears on:Template)
TemplateStatus defines the observed state of Template
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
TolerateSpec
(Appears on:CallSpec, ClusterSpec)
TolerateSpec specifies the system’s ability to continue operating despite failures or malfunctions. If tolerate is enable, the cluster will remain “alive” even if some services have failed. Such failures are likely to happen as part of a Chaos experiment.
Field | Description |
---|---|
failedJobs int |
(Optional)
FailedJobs indicate the number of services that may fail before the cluster fails itself. |
VirtualObject
VirtualObject is a CRD without a dedicated controller. Practically, it is just an entry in the Kubernetes API that is used as placeholder for action like Delete and Call.
Field | Description |
---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec VirtualObjectSpec |
|
status VirtualObjectStatus |
VirtualObjectSpec
(Appears on:VirtualObject)
VirtualObjectStatus
(Appears on:VirtualObject)
Field | Description |
---|---|
Lifecycle Lifecycle |
(Members of |
WaitSpec
(Appears on:Action)
Field | Description |
---|---|
running []string |
(Optional)
Running waits for the given groups to be running |
success []string |
(Optional)
Success waits for the given groups to be succeeded |
after Kubernetes meta/v1.Duration |
(Optional)
After is the time offset since the beginning of this action. |
Generated with gen-crd-api-reference-docs
on git commit 4917904
.