shardingsphere-operator/config/crd/bases/shardingsphere.apache.org_chaos.yaml (407 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.0
creationTimestamp: null
name: chaos.shardingsphere.apache.org
spec:
group: shardingsphere.apache.org
names:
kind: Chaos
listKind: ChaosList
plural: chaos
singular: chaos
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: Chaos defines a chaos test case for the ShardingSphere Proxy
cluster
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ChaosSpec defines the desired state of Chaos
properties:
injectJob:
description: JobSpec specifies the config of job to create
properties:
experimental:
type: string
pressure:
type: string
verify:
type: string
type: object
networkChaos:
description: NetworkChaosSpec Fields that need to be configured for
network type chaos
properties:
action:
description: NetworkChaosAction specify the action type of network
Chaos
type: string
direction:
description: Direction specifies the direction of action of network
chaos
type: string
duration:
type: string
params:
description: NetworkParams Optional parameters for network type
configuration
properties:
corrupt:
properties:
corrupt:
type: string
type: object
delay:
properties:
jitter:
type: string
latency:
type: string
type: object
duplicate:
properties:
duplicate:
type: string
type: object
loss:
properties:
loss:
type: string
type: object
type: object
source:
description: PodSelector used to select the target of the specified
chaos
properties:
annotationSelectors:
additionalProperties:
type: string
type: object
expressionSelectors:
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn,
Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If
the operator is In or NotIn, the values array must
be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced
during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
labelSelectors:
additionalProperties:
type: string
type: object
namespaces:
items:
type: string
type: array
nodeSelectors:
additionalProperties:
type: string
type: object
nodes:
items:
type: string
type: array
pods:
additionalProperties:
items:
type: string
type: array
type: object
type: object
target:
description: PodSelector used to select the target of the specified
chaos
properties:
annotationSelectors:
additionalProperties:
type: string
type: object
expressionSelectors:
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn,
Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If
the operator is In or NotIn, the values array must
be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced
during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
labelSelectors:
additionalProperties:
type: string
type: object
namespaces:
items:
type: string
type: array
nodeSelectors:
additionalProperties:
type: string
type: object
nodes:
items:
type: string
type: array
pods:
additionalProperties:
items:
type: string
type: array
type: object
type: object
type: object
podChaos:
description: PodChaosSpec Fields that need to be configured for pod
type chaos
properties:
action:
description: PodChaosAction Specify the action type of pod Chaos
type: string
params:
description: PodActionParams Optional parameters for pod type
configuration
properties:
containerKill:
properties:
containerNames:
items:
type: string
type: array
type: object
cpuStress:
properties:
cores:
type: integer
duration:
type: string
load:
type: integer
required:
- duration
type: object
memoryStress:
properties:
consumption:
type: string
duration:
type: string
workers:
type: integer
required:
- duration
type: object
podFailure:
properties:
duration:
type: string
type: object
podKill:
properties:
gracePeriod:
format: int64
type: integer
type: object
type: object
selector:
description: PodSelector used to select the target of the specified
chaos
properties:
annotationSelectors:
additionalProperties:
type: string
type: object
expressionSelectors:
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn,
Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If
the operator is In or NotIn, the values array must
be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced
during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
labelSelectors:
additionalProperties:
type: string
type: object
namespaces:
items:
type: string
type: array
nodeSelectors:
additionalProperties:
type: string
type: object
nodes:
items:
type: string
type: array
pods:
additionalProperties:
items:
type: string
type: array
type: object
type: object
required:
- action
type: object
pressureCfg:
properties:
concurrentNum:
type: integer
distSQLs:
items:
properties:
args:
items:
type: string
type: array
sql:
type: string
required:
- sql
type: object
type: array
duration:
type: string
reqNum:
type: integer
reqTime:
type: string
ssHost:
type: string
zkHost:
type: string
required:
- concurrentNum
- duration
- reqNum
- reqTime
- ssHost
type: object
type: object
status:
description: ChaosStatus defines the actual state of Chaos
properties:
chaosCondition:
description: ChaosCondition Show Chaos Progress
type: string
conditions:
description: Result Result `json:"result,omitempty" yaml:"result,omitempty"`
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
\n type FooStatus struct{ // Represents the observations of a
foo's current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
phase:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}