--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.17.2 name: locustclusters.locust.io spec: group: locust.io names: kind: LocustCluster listKind: LocustClusterList plural: locustclusters singular: locustcluster scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: LocustCluster is the Schema for the locustclusters API. 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: |- LocustClusterSpec defines the desired state of LocustCluster. type ResourcesSpec struct { MaxCpu string `json:"maxCpu,omitempty" protobuf:"bytes,1,name=maxCpu"` MinCpu string `json:"minCpu,omitempty" protobuf:"bytes,2,name=minCpu"` MaxMem string `json:"maxMem,omitempty" protobuf:"bytes,3,name=maxMem"` MinMem string `json:"minMem,omitempty" protobuf:"bytes,4,name=minMem"` } type LeaderSpec struct { TestFile string `json:"leaderFile,omitempty" protobuf:"bytes,1,name=leaderFile"` PriorityClass string `json:"priorityClass,omitempty" protobuf:"bytes,2,name=priorityClass"` Download LeaderDownloadSpec `json:"download,omitempty" protobuf:"bytes,3,rep,name=download"` Resources ResourcesSpec `json:"resources,omitempty" protobuf:"bytes,4,rep,name=resources"` Image string `json:"image,omitempty" protobuf:"bytes,5,name=image"` } type LeaderDownloadSpec struct { Bucket string `json:"bucket" protobuf:"bytes,1,name=bucket"` Filename string `json:"filename" protobuf:"bytes,2,name=filename"` } type WorkerEnv struct { Name string `json:"name" protobuf:"bytes,1,name=name"` Value string `json:"value" protobuf:"bytes,2,name=value"` } type TestsSpecs struct { TestName string `json:"testName" protobuf:"bytes,1,name=testName"` RunTime string `json:"runTime" protobuf:"bytes,2,name=runTime"` TestSettings []WorkerEnv `json:"env,omitempty" protobuf:"bytes,3,rep,name=env"` TestCommand []string `json:"testCommand,omitempty" protobuf:"bytes,4,name=testCommand"` } type WorkerSpec struct { HatchRate int `json:"hatchRate" protobuf:"varint,1,name=hatchRate"` TestContainer string `json:"testContainer" protobuf:"bytes,2,name=testContainer"` ScenarioName string `json:"scenarioName" protobuf:"bytes,3,name=scenarioName"` TestLanguage string `json:"testLanguage" protobuf:"bytes,4,name=testLanguage"` TestPath string `json:"testPath" protobuf:"bytes,5,name=testPath"` Tests []TestsSpecs `json:"tests" protobuf:"bytes,6,rep,name=tests"` Clients int `json:"clients" protobuf:"varint,7,name=clients"` Nodes int `json:"nodes" protobuf:"varint,8,name=nodes"` PriorityClass string `json:"priorityClass,omitempty" protobuf:"bytes,9,name=priorityClass"` Resources ResourcesSpec `json:"resources,omitempty" protobuf:"bytes,10,rep,name=resources"` } type MosaicSpec struct { WorkSpace string `json:"workSpace" protobuf:"bytes,1,name=workSpace"` NameSpace string `json:"nameSpace" protobuf:"bytes,2,name=nameSpace"` PublishingEndpoint string `json:"publishing_endpoint,omitempty" protobuf:"bytes,3,name=publishingEndpoint"` Mtls bool `json:"mtls,omitempty" protobuf:"bool,4,name=mtls"` PrometheusTag string `json:"prometheusTag" protobuf:"bytes,3,name=prometheusTag"` GroupEmail string `json:"groupEmail" protobuf:"bytes,4,name=groupEmail"` GrafanaEndpoint string `json:"grafanaEndpoint,omitempty" protobuf:"bytes,5,name=grafanaEndpoint"` } type MetricsSpec struct { Mosaic MosaicSpec `json:"mosaic,omitempty" protobuf:"bytes,1,rep,name=mosaic"` } type InfrastructureSpec struct { Endpoint string `json:"endpoint" protobuf:"bytes,1,name=endpoint"` PrometheusJobName string `json:"prometheusJobName,omitempty" protobuf:"bytes,2,name=prometheusJobName"` PrometheusPort int `json:"prometheusPort,omitempty" protobuf:"varint,3,name=prometheusPort"` PrometheusEndpoint string `json:"prometheusEndpoint,omitempty" protobuf:"bytes,4,name=prometheusEndpoint"` } type SecretsKeys struct { SecretKey string `json:"secretKey" protobuf:"bytes,1,name=secretKey"` } type SecretsSpec struct { SecretName string `json:"secretName" protobuf:"bytes,1,name=secretName"` SecretsKeys []SecretsKeys `json:"secretKeys" protobuf:"bytes,2,name=secretKeys"` } LocustClusterSpec defines the desired state of LocustCluster type: object status: description: LocustClusterStatus defines the observed state of LocustCluster. type: object type: object served: true storage: true subresources: status: {}