Skip to main content

CRD API Reference

Packages

windtunnel.plantd.org/v1alpha1

Package v1alpha1 contains API Schema definitions for the windtunnel v1alpha1 API group

Resource Types

Column

Column defines the metadata of the column data.

Appears in:

FieldDescription
name stringName defines the name of the column.
type stringType defines the data type of the column. Should match the type with one of the provided types.
params object (keys:string, values:string)Params defines the parameters for constructing the data give certain data type.
formula FormulaSpecFormula defines the formula applies to the column data.

CostExporter

CostExporter is the Schema for the costexporters API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringCostExporter
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec CostExporterSpecSpec defines the specifictions of the CostExporter.

CostExporterList

CostExporterList contains a list of CostExporter

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringCostExporterList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items CostExporter arrayItems defines a list of CostExporters.

CostExporterSpec

CostExporterSpec defines the desired state of CostExporter

Appears in:

FieldDescription
s3Bucket stringS3Bucket defines the AWS S3 bucket name where stores the cost logs.
cloudServiceProvider stringCloudServiceProvider defines the target cloud service provide for calculating cost.
secretRef ObjectReferenceSecretRef defines the reference to the Kubernetes Secret where stores the credentials of cloud service provider

DataSet

DataSet is the Schema for the datasets API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringDataSet
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DataSetSpecSpec defines the specifications of the DataSet.

DataSetList

DataSetList contains a list of DataSet

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringDataSetList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DataSet arrayItems defines a list of DataSets.

DataSetSpec

DataSetSpec defines the desired state of DataSet

Appears in:

FieldDescription
fileFormat stringFileFormat defines the file format of the each file containing the generated data. This may or may not be the output file format based on whether you want to compress these files.
compressedFileFormat stringCompressedFileFormat defines the file format for the compressed files. Each file inside the compressed file is of "fileFormat" format specified above. This is the output format if specified for the files.
compressPerSchema booleanCompressPerSchema defines the flag of compression. If you wish files from all the different schemas to compressed into one compressed file leave this field as false. If you wish to have a different compressed file for every schema, mark this field as true.
numFiles integerNumberOfFiles defines the total number of output files irrespective of compression. Unless "compressPerSchema" is false, this field is applicable per schema.
schemas SchemaSelector arraySchemas defines a list of Schemas.
parallelJobs integerParallelJobs defines the number of parallel jobs when generating the dataset. TODO: Infer the optimal number of parallel jobs automatically.

DeploymentConfig

DeploymentConfig defines the desired state of modules managed as Deployment

Appears in:

FieldDescription
image stringImage defines the container image to use
replicas integerReplicas defines the desired number of replicas
resources ResourceRequirementsResources defines the resource requirements per replica

Endpoint

Endpoint defines the configuration of the endpoint.

Appears in:

FieldDescription
name stringName defines the name of the endpoint. It's required when it's for pipeline endpoint.
http HTTPHTTP defines the configuration of the HTTP request. It's mutually exclusive with WebSocket and GRPC.
websocket WebSocketWebSocket defines the configuration of the WebSocket connection. It's mutually exclusive with HTTP and GRPC.
grpc GRPCGRPC defines the configuration of the gRPC request. It's mutually exclusive with HTTP and WebSocket.
serviceRef ObjectReferenceServiceRef defines the Kubernetes Service that exposes metrics.
port stringName of the Service port which this endpoint refers to.

It takes precedence over targetPort.
targetPort IntOrStringName or number of the target port of the Pod object behind the Service, the port must be specified with container port property.

Deprecated: use port instead.
path stringHTTP path from which to scrape for metrics.

If empty, Prometheus uses the default value (e.g. /metrics).
scheme stringHTTP scheme to use for scraping.

http and https are the expected values unless you rewrite the __scheme__ label via relabeling.

If empty, Prometheus uses the default value http.
params object (keys:string, values:string array)params define optional HTTP URL parameters.
interval DurationInterval at which Prometheus scrapes the metrics from the target.

If empty, Prometheus uses the global scrape interval.
scrapeTimeout DurationTimeout after which Prometheus considers the scrape to be failed.

If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used.
tlsConfig TLSConfigTLS configuration to use when scraping the target.
bearerTokenFile stringFile to read bearer token for scraping the target.

Deprecated: use authorization instead.
bearerTokenSecret SecretKeySelectorbearerTokenSecret specifies a key of a Secret containing the bearer token for scraping targets. The secret needs to be in the same namespace as the ServiceMonitor object and readable by the Prometheus Operator.

Deprecated: use authorization instead.
authorization SafeAuthorizationauthorization configures the Authorization header credentials to use when scraping the target.

Cannot be set at the same time as basicAuth, or oauth2.
honorLabels booleanWhen true, honorLabels preserves the metric's labels when they collide with the target's labels.
honorTimestamps booleanhonorTimestamps controls whether Prometheus preserves the timestamps when exposed by the target.
trackTimestampsStaleness booleantrackTimestampsStaleness defines whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if honorTimestamps is false.

It requires Prometheus >= v2.48.0.
basicAuth BasicAuthbasicAuth configures the Basic Authentication credentials to use when scraping the target.

Cannot be set at the same time as authorization, or oauth2.
oauth2 OAuth2oauth2 configures the OAuth2 settings to use when scraping the target.

It requires Prometheus >= 2.27.0.

Cannot be set at the same time as authorization, or basicAuth.
metricRelabelings RelabelConfig arraymetricRelabelings configures the relabeling rules to apply to the samples before ingestion.
relabelings RelabelConfig arrayrelabelings configures the relabeling rules to apply the target's metadata labels.

The Operator automatically adds relabelings for a few standard Kubernetes fields.

The original scrape job's name is available via the __tmp_prometheus_job_name label.

More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
proxyUrl stringproxyURL configures the HTTP Proxy URL (e.g. "http://proxyserver:2195") to go through when scraping the target.
followRedirects booleanfollowRedirects defines whether the scrape requests should follow HTTP 3xx redirects.
enableHttp2 booleanenableHttp2 can be used to disable HTTP2 when scraping the target.
filterRunning booleanWhen true, the pods which are not running (e.g. either in Failed or Succeeded state) are dropped during the target discovery.

If unset, the filtering is enabled.

More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase

Experiment

Experiment is the Schema for the experiments API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringExperiment
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ExperimentSpecSpec defines the specifications of the Experiment.

ExperimentList

ExperimentList contains a list of Experiments.

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringExperimentList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items Experiment arrayItems defines a list of Experiment.

ExperimentSpec

ExperimentSpec defines the desired state of Experiment

Appears in:

FieldDescription
pipelineRef ObjectReferencePipelineRef defines s reference of the Pipeline object.
loadPatterns LoadPatternConfig arrayLoadPatterns defines a list of configuration of name of endpoints and LoadPatterns.
scheduledTime TimeScheduledTime defines the scheduled time for the Experiment.

ExtraMetrics

ExtraMetrics defines the configurations of getting extra metrics.

Appears in:

FieldDescription
system SystemMetricsSystem defines the configurfation of getting system metrics.
messageQueue MessageQueueMetricsMessageQueue defines the configurfation of getting message queue related metrics.

FormulaSpec

FormulaSpec defines the specification of the formula.

Appears in:

FieldDescription
name stringName defines the name of the formula. Should match the name with one of the provided formulas.
args string arrayArgs defines the arugments for calling the formula.

GRPC

GRPC defines the configurations of gRPC protocol. TODO: Validate the gRPC library in K6 and update the API.

Appears in:

FieldDescription
address stringPlaceholder.
protoFiles string arrayPlaceholder.
url stringPlaceholder.
params object (keys:string, values:string)Placeholder.
request object (keys:string, values:string)Placeholder.

HTTP

HTTP defines the configurations of HTTP protocol.

Appears in:

FieldDescription
url stringURL defines the absolute path for an entry point of the Pipeline.
method stringMethod defines the HTTP method used for the endpoint.
headers object (keys:string, values:string)Headers defines a map of HTTP headers.
body HTTPBodySpecBody defines the configurations of the HTTP request body.

HTTPBodySpec

HTTPBodySpec defines the configurations of the HTTP request body. User can specify either Data or DataSetRef, but not both fields.

Appears in:

FieldDescription
data string
dataSetRef ObjectReference

LoadPattern

LoadPattern is the Schema for the loadpatterns API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringLoadPattern
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec LoadPatternSpecSpec defines the specification of the LoadPattern.

LoadPatternConfig

LoadPatternConfig defines the configuration of the load pattern in the experiment.

Appears in:

FieldDescription
endpointName stringEndpointName defines the name of endpoint where to send the requests. It should match the name of endpoint declared in the specification of the pipeline.
loadPatternRef ObjectReferenceLoadPatternRef defines s reference of the LoadPattern object.

LoadPatternList

LoadPatternList contains a list of LoadPattern

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringLoadPatternList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items LoadPattern arrayItems defines a list of LoadPattern.

LoadPatternSpec

LoadPatternSpec defines the desired state of LoadPattern

Appears in:

FieldDescription
stages Stage arrayStages defines a list of stages for the LoadPattern.
preAllocatedVUs integerPreAllocatedVUs defines pre-allocated virtual users for the K6 load generator.
startRate integerStartRate defines the initial requests per second when the K6 load generator starts.
maxVUs integerMaxVUs defines the maximum virtual users for the K6 load generator.
timeUnit stringTimeUnit defines the unit of the time for K6 load generator.

MessageQueueMetrics

MessageQueueMetrics defines the configurations of getting message queue related metrics.

Appears in:

Pipeline

Pipeline is the Schema for the pipelines API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringPipeline
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec PipelineSpecSpec defines the specifications of the Pipeline.

PipelineList

PipelineList contains a list of Pipeline

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringPipelineList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items Pipeline arrayItems defines a list of Pipelines.

PipelineSpec

PipelineSpec defines the desired state of Pipeline

Appears in:

FieldDescription
pipelineEndpoints Endpoint arrayEndpoints for pipeline-under-test.
healthCheckEndpoints string arrayEndpoints for health check.
metricsEndpoint EndpointEndpoints for metrics.
extraMetrics ExtraMetricsExtra metrics, such as CPU utilzation, I/O and etc.
inCluster booleanIn cluster flag. True indecates the pipeline-under-test is deployed in the same cluster as the plantD. Otherwise it should be False.
cloudVendor stringState which cloud service provider the pipeline is deployed.
enableCostCalculation booleanCost calculation flag.
experimentRef ObjectReferenceInternal usage. For experiment object to lock the pipeline object.

PlantDCore

PlantDCore is the Schema for the plantdcores API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringPlantDCore
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec PlantDCoreSpec

PlantDCoreList

PlantDCoreList contains a list of PlantDCore

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringPlantDCoreList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items PlantDCore array

PlantDCoreSpec

PlantDCoreSpec defines the desired state of PlantDCore

Appears in:

FieldDescription
kubeProxy DeploymentConfigINSERT ADDITIONAL SPEC FIELDS - desired state of cluster Important: Run "make" to regenerate code after modifying this file KubeProxyConfig defines the desire state of PlantD Kube Proxy
studio DeploymentConfigStudioConfig defines the desire state of PlantD Studio
prometheus PrometheusConfigPrometheusConfig defines the desire state of Prometheus
redis DeploymentConfigRedisConfig defines the desire state of Redis

PrometheusConfig

PrometheusConfig defines the desired state of Prometheus

Appears in:

FieldDescription
scrapeInterval DurationScrapeInterval defines the desired time length between scrapings
replicas integerReplicas defines the desired number of replicas
resources ResourceRequirementsResources defines the resource requirements per replica

Schema

Schema is the Schema for the schemas API

Appears in:

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringSchema
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec SchemaSpecSpec defines the specifications of the Schema.

SchemaList

SchemaList contains a list of Schema

FieldDescription
apiVersion stringwindtunnel.plantd.org/v1alpha1
kind stringSchemaList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items Schema arrayItems defines a list of Schemas.

SchemaSelector

SchemaSelector defines a list of Schemas and the required numbers and format.

Appears in:

FieldDescription
name stringName defines the name of the Schame. Should match the name of existing Schema in the same namespace as the DataSet.
numRecords object (keys:string, values:integer)NumRecords defines the number of records to be generated in each output file. A random number is picked from the specified range.
numFilesPerCompressedFile object (keys:string, values:integer)NumberOfFilesPerCompressedFile defines the number of intermediate files to be compressed into a single compressed file. A random number is picked from the specified range.

SchemaSpec

SchemaSpec defines the desired state of Schema

Appears in:

FieldDescription
columns Column arrayColumns defines a list of column specifications.

Stage

Stage defines the stage configuration of the load.

Appears in:

FieldDescription
target integerTarget defines the target requests per second.
duration stringDuration defines the duration of the current stage.

SystemMetrics

SystemMetrics defines the configurations of getting system metrics.

Appears in:

FieldDescription
tags object (keys:string, values:string)Tags defines the tags for the resources of the pipeline-under-test in the cloud service provider.
secretRef ObjectReferenceSecretRef defines the reference to the Kubernetes Secret object for authentication on the cloud service provider.

WebSocket

WebSocket defines the configurations of websocket protocol. TODO: Validate the websocket library in K6 and update the API.

Appears in:

FieldDescription
url stringPlaceholder.
params object (keys:string, values:string)Placeholder.
callback stringPlaceholder.