apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: trafficreplays.speedscale.com spec: group: speedscale.com names: kind: TrafficReplay listKind: TrafficReplayList plural: trafficreplays shortNames: - replay singular: trafficreplay scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.active name: Active type: boolean - jsonPath: .spec.mode name: Mode type: string - jsonPath: .status.conditions[-1:].message name: Status type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1 schema: openAPIV3Schema: description: TrafficReplay is the Schema for the trafficreplays 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: TrafficReplaySpec defines the desired state of TrafficReplay properties: buildTag: description: BuildTag links a unique tag, build hash, etc. to the generated traffic replay report. That way you can connect the report results to the version of the code that was tested. type: string cleanup: description: Cleanup is the name of cleanup mode used for this TrafficReplay. enum: - inventory - all - none type: string collectLogs: description: CollectLogs enables or disables log collection from target workload. Defaults to true. type: boolean configChecksum: description: ConfigChecksum is the SHA1 checksum of the configuration. type: string customURL: description: CustomURL allows to specify custom URL to SUT. type: string generatorLowData: description: Setting GeneratorLowData to 'true' forces the generator into a high efficiency/low data output mode. This is ideal for high volume performance tests. Defaults to false. type: boolean mode: description: Mode is the name of replay mode used for this TrafficReplay. enum: - full-replay - responder-only - generator-only type: string proxyMode: description: ProxyMode defines proxy operational mode used with injected sidecar. (deprecated) type: string responderLowData: description: Setting ResponderLowData to 'true' forces the responder into a high efficiency/low data output mode. This is ideal for high volume performance tests. Defaults to false. type: boolean secretRefs: description: SecretRefs hold the references to the secrets which contain various secrets like (e.g. short-lived JWTs to be used by the generator for authorization with HTTP calls). items: description: LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. properties: name: description: Name of the referent. type: string required: - name type: object type: array sidecar: description: Sidecar defines sidecar specific configuration. properties: inject: description: Inject enables or disables sidecar injection during the replay. Defaults to false. (deprecated) type: boolean tls: properties: in: description: In provides configuration for sidecar inbound TLS. properties: private: description: Private is the filename of the TLS inbound private key. type: string public: description: Public is the filename of the TLS inbound public key. type: string secret: description: Secret is a secret with the TLS keys to use for inbound traffic. type: string type: object mutual: description: Mutual provides configuration for sidecar mutual TLS. properties: private: description: Private is the filename of the mutual TLS private key. type: string public: description: Public is the filename of the mutual TLS public key. type: string secret: description: Secret is a secret with the mutual TLS keys. type: string type: object out: description: Out enables or disables TLS out on the sidecar during replay. type: boolean type: object type: object snapshotID: description: SnapshotID is the id of the traffic snapshot for this TrafficReplay. type: string testConfigID: description: TestConfigID is the id of the replay configuration to be used by the generator and responder for the TrafficReplay. type: string timeout: description: Timeout is the time to wait for replay test to finish. Defaults to value of the `TIMEOUT` setting of the operator. type: string ttlAfterReady: description: TTLAfterReady provides a TTL (time to live) mechanism to limit the lifetime of TrafficReplay object that have finished the execution and reached its final state (either complete or failed). type: string workloadRef: description: The reference to the target workload (SUT - system under test) for TrafficReplay. The operations will be performed in the namespace of the target object. properties: apiVersion: description: API version of the referent type: string kind: description: Kind of the referent type: string name: description: Name of the referent type: string namespace: description: Namespace of the referent, defaults to the TrafficReplay namespace type: string required: - kind - name type: object required: - workloadRef type: object status: default: observedGeneration: -1 description: TrafficReplayStatus defines the observed state of TrafficReplay properties: active: description: Active indicates whether this traffic replay is currently underway or not. type: boolean conditions: 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 finishedTime: description: Information when the traffic replay has finished. format: date-time type: string initializedTime: description: Information when the test environment was successfully prepared. format: date-time type: string lastHeartbeatTime: description: Information when was the last time we received a heartbeat signal. format: date-time type: string observedGeneration: description: ObservedGeneration is the last observed generation. format: int64 type: integer reportID: description: The id of the traffic replay report created. type: string reportURL: description: The url to the traffic replay report. type: string startedTime: description: Information when the traffic replay has started. format: date-time type: string workloadHost: description: WorkloadHost is the host address which is targeted during the traffic replay. type: string type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []