Documentation ¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the v1alpha2 API group. +k8s:deepcopy-gen=package +kubebuilder:object:generate=true +groupName=chainsaw.kyverno.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type ActionCheck
- type ActionCheckRef
- type ActionDryRun
- type ActionEnv
- type ActionExpectations
- type ActionFormat
- type ActionInlineResource
- type ActionObject
- type ActionObjectSelector
- type ActionResourceRef
- type ActionTimeout
- type Any
- type Apply
- type Assert
- type Binding
- type Check
- type CleanupOptions
- type Cluster
- type Clusters
- type Command
- type Configuration
- type ConfigurationSpec
- type Create
- type Delete
- type DeletionOptions
- type Describe
- type DiscoveryOptions
- type Error
- type ErrorOptions
- type Events
- type ExecutionOptions
- type Expectation
- type FileRef
- type Format
- type Get
- type NamespaceOptions
- type ObjectName
- type ObjectReference
- type ObjectType
- type Operation
- type OperationAction
- type OperationBindings
- type OperationClusters
- type OperationOutputs
- type Output
- type Patch
- type PodLogs
- type ReportFormatType
- type ReportOptions
- type Script
- type Sleep
- type TemplatingOptions
- type Test
- type TestExecutionOptions
- type TestSpec
- type TestStep
- type TestStepSpec
- type Timeouts
- type TryOperation
- type Update
- type Wait
- type WaitFor
- type WaitForCondition
- type WaitForDeletion
- type WaitForJsonPath
Constants ¶
const GroupName = "chainsaw.kyverno.io"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Depreciated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha2"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha2"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type ActionCheck ¶ added in v0.2.5
type ActionCheck struct { // Check is an assertion tree to validate the operation outcome. // +optional Check *Check `json:"check,omitempty"` }
ActionCheck contains check for an action.
func (*ActionCheck) DeepCopy ¶ added in v0.2.5
func (in *ActionCheck) DeepCopy() *ActionCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionCheck.
func (*ActionCheck) DeepCopyInto ¶ added in v0.2.5
func (in *ActionCheck) DeepCopyInto(out *ActionCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionCheckRef ¶ added in v0.2.5
type ActionCheckRef struct { FileRef `json:",inline"` // Check provides a check used in assertions. // +optional Check *Check `json:"resource,omitempty"` // Template determines whether resources should be considered for templating. // +optional Template *bool `json:"template,omitempty"` }
ActionCheckRef contains check reference options for an action.
func (*ActionCheckRef) DeepCopy ¶ added in v0.2.5
func (in *ActionCheckRef) DeepCopy() *ActionCheckRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionCheckRef.
func (*ActionCheckRef) DeepCopyInto ¶ added in v0.2.5
func (in *ActionCheckRef) DeepCopyInto(out *ActionCheckRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionDryRun ¶ added in v0.2.5
type ActionDryRun struct { // DryRun determines whether the file should be applied in dry run mode. // +optional DryRun *bool `json:"dryRun,omitempty"` }
ActionDryRun contains dry run options for an action.
func (*ActionDryRun) DeepCopy ¶ added in v0.2.5
func (in *ActionDryRun) DeepCopy() *ActionDryRun
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionDryRun.
func (*ActionDryRun) DeepCopyInto ¶ added in v0.2.5
func (in *ActionDryRun) DeepCopyInto(out *ActionDryRun)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionEnv ¶ added in v0.2.5
type ActionEnv struct { // Env defines additional environment variables. // +optional Env []Binding `json:"env,omitempty"` // SkipLogOutput removes the output from the command. Useful for sensitive logs or to reduce noise. // +optional SkipLogOutput bool `json:"skipLogOutput,omitempty"` }
ActionEnv contains environment options for an action.
func (*ActionEnv) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionEnv.
func (*ActionEnv) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionExpectations ¶ added in v0.2.5
type ActionExpectations struct { // Expect defines a list of matched checks to validate the operation outcome. // +optional Expect []Expectation `json:"expect,omitempty"` }
ActionExpectations contains expectations for an action.
func (*ActionExpectations) DeepCopy ¶ added in v0.2.5
func (in *ActionExpectations) DeepCopy() *ActionExpectations
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionExpectations.
func (*ActionExpectations) DeepCopyInto ¶ added in v0.2.5
func (in *ActionExpectations) DeepCopyInto(out *ActionExpectations)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionFormat ¶ added in v0.2.5
type ActionFormat struct { // Format determines the output format (json or yaml). // +optional Format Format `json:"format,omitempty"` }
ActionFormat contains format for an action.
func (*ActionFormat) DeepCopy ¶ added in v0.2.5
func (in *ActionFormat) DeepCopy() *ActionFormat
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionFormat.
func (*ActionFormat) DeepCopyInto ¶ added in v0.2.5
func (in *ActionFormat) DeepCopyInto(out *ActionFormat)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionInlineResource ¶ added in v0.2.5
type ActionInlineResource struct { // Resource provides a resource to be applied. // +kubebuilder:validation:XEmbeddedResource // +kubebuilder:pruning:PreserveUnknownFields // +optional Resource *unstructured.Unstructured `json:"resource,omitempty"` }
func (*ActionInlineResource) DeepCopy ¶ added in v0.2.5
func (in *ActionInlineResource) DeepCopy() *ActionInlineResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionInlineResource.
func (*ActionInlineResource) DeepCopyInto ¶ added in v0.2.5
func (in *ActionInlineResource) DeepCopyInto(out *ActionInlineResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionObject ¶ added in v0.2.5
type ActionObject struct { ObjectType `json:",inline"` ActionObjectSelector `json:",inline"` }
ActionObject contains object selector options for an action.
func (*ActionObject) DeepCopy ¶ added in v0.2.5
func (in *ActionObject) DeepCopy() *ActionObject
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionObject.
func (*ActionObject) DeepCopyInto ¶ added in v0.2.5
func (in *ActionObject) DeepCopyInto(out *ActionObject)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionObjectSelector ¶ added in v0.2.5
type ActionObjectSelector struct { ObjectName `json:",inline"` // Selector defines labels selector. // +optional Selector string `json:"selector,omitempty"` }
ActionObjectSelector contains object selector options for an action.
func (*ActionObjectSelector) DeepCopy ¶ added in v0.2.5
func (in *ActionObjectSelector) DeepCopy() *ActionObjectSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionObjectSelector.
func (*ActionObjectSelector) DeepCopyInto ¶ added in v0.2.5
func (in *ActionObjectSelector) DeepCopyInto(out *ActionObjectSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionResourceRef ¶ added in v0.2.5
type ActionResourceRef struct { FileRef `json:",inline"` // Resource provides a resource to be applied. // +kubebuilder:validation:XEmbeddedResource // +kubebuilder:pruning:PreserveUnknownFields // +optional Resource *unstructured.Unstructured `json:"resource,omitempty"` // Template determines whether resources should be considered for templating. // +optional Template *bool `json:"template,omitempty"` }
ActionResourceRef contains resource reference options for an action.
func (*ActionResourceRef) DeepCopy ¶ added in v0.2.5
func (in *ActionResourceRef) DeepCopy() *ActionResourceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionResourceRef.
func (*ActionResourceRef) DeepCopyInto ¶ added in v0.2.5
func (in *ActionResourceRef) DeepCopyInto(out *ActionResourceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionTimeout ¶ added in v0.2.5
type ActionTimeout struct { // Timeout for the operation. Overrides the global timeout set in the Configuration. // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` }
ActionTimeout contains timeout options for an action.
func (*ActionTimeout) DeepCopy ¶ added in v0.2.5
func (in *ActionTimeout) DeepCopy() *ActionTimeout
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTimeout.
func (*ActionTimeout) DeepCopyInto ¶ added in v0.2.5
func (in *ActionTimeout) DeepCopyInto(out *ActionTimeout)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Apply ¶ added in v0.2.5
type Apply struct { ActionDryRun `json:",inline"` ActionExpectations `json:",inline"` ActionResourceRef `json:",inline"` ActionTimeout `json:",inline"` }
Apply represents a set of configurations or resources that should be applied during testing. +k8s:conversion-gen=false
func (*Apply) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Apply.
func (*Apply) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Assert ¶ added in v0.2.5
type Assert struct { ActionCheckRef `json:",inline"` ActionTimeout `json:",inline"` }
Assert represents a test condition that is expected to hold true during the testing process. +k8s:conversion-gen=false
func (*Assert) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assert.
func (*Assert) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CleanupOptions ¶ added in v0.2.4
type CleanupOptions struct { // If set, do not delete the resources after running a test. // +optional SkipDelete bool `json:"skipDelete,omitempty"` // DelayBeforeCleanup adds a delay between the time a test ends and the time cleanup starts. // +optional DelayBeforeCleanup *metav1.Duration `json:"delayBeforeCleanup,omitempty"` }
CleanupOptions contains the configuration used for cleaning up resources.
func (*CleanupOptions) DeepCopy ¶ added in v0.2.4
func (in *CleanupOptions) DeepCopy() *CleanupOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CleanupOptions.
func (*CleanupOptions) DeepCopyInto ¶ added in v0.2.4
func (in *CleanupOptions) DeepCopyInto(out *CleanupOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Command ¶ added in v0.2.5
type Command struct { ActionCheck `json:",inline"` ActionEnv `json:",inline"` ActionTimeout `json:",inline"` // Entrypoint is the command entry point to run. Entrypoint string `json:"entrypoint"` // Args is the command arguments. // +optional Args []string `json:"args,omitempty"` }
Command describes a command to run as a part of a test step. +k8s:conversion-gen=false
func (*Command) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Command.
func (*Command) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Configuration ¶
type Configuration struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Configuration spec. Spec ConfigurationSpec `json:"spec"` }
Configuration is the resource that contains the configuration used to run tests.
func (*Configuration) DeepCopy ¶
func (in *Configuration) DeepCopy() *Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.
func (*Configuration) DeepCopyInto ¶
func (in *Configuration) DeepCopyInto(out *Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Configuration) DeepCopyObject ¶
func (in *Configuration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigurationSpec ¶
type ConfigurationSpec struct { // Cleanup contains cleanup configuration. // +optional // +kubebuilder:default:={} Cleanup CleanupOptions `json:"cleanup"` // Clusters holds a registry to clusters to support multi-cluster tests. // +optional Clusters Clusters `json:"clusters"` // Deletion contains the global deletion configuration. // +optional // +kubebuilder:default:={} Deletion DeletionOptions `json:"deletion"` // Discovery contains tests discovery configuration. // +optional // +kubebuilder:default:={} Discovery DiscoveryOptions `json:"discovery"` // Error contains the global error configuration. // +optional // +kubebuilder:default:={} Error ErrorOptions `json:"error,omitempty"` // Execution contains tests execution configuration. // +optional // +kubebuilder:default:={} Execution ExecutionOptions `json:"execution"` // Namespace contains properties for the namespace to use for tests. // +optional // +kubebuilder:default:={} Namespace NamespaceOptions `json:"namespace"` // Report contains properties for the report. // +optional Report *ReportOptions `json:"report,omitempty"` // Templating contains the templating config. // +optional // +kubebuilder:default:={} Templating TemplatingOptions `json:"templating"` // Global timeouts configuration. Applies to all tests/test steps if not overridden. // +optional // +kubebuilder:default:={} Timeouts Timeouts `json:"timeouts"` }
ConfigurationSpec contains the configuration used to run tests. +k8s:conversion-gen=false
func (*ConfigurationSpec) DeepCopy ¶
func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec.
func (*ConfigurationSpec) DeepCopyInto ¶
func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Create ¶ added in v0.2.5
type Create struct { ActionDryRun `json:",inline"` ActionExpectations `json:",inline"` ActionResourceRef `json:",inline"` ActionTimeout `json:",inline"` }
Create represents a set of resources that should be created. If a resource already exists in the cluster it will fail. +k8s:conversion-gen=false
func (*Create) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Create.
func (*Create) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Delete ¶ added in v0.2.5
type Delete struct { ActionExpectations `json:",inline"` ActionTimeout `json:",inline"` // Template determines whether resources should be considered for templating. // +optional Template *bool `json:"template,omitempty"` // File is the path to the referenced file. This can be a direct path to a file // or an expression that matches multiple files, such as "manifest/*.yaml" for all YAML // files within the "manifest" directory. // +optional File string `json:"file,omitempty"` // Ref determines objects to be deleted. // +optional Ref *ObjectReference `json:"ref,omitempty"` // DeletionPropagationPolicy decides if a deletion will propagate to the dependents of // the object, and how the garbage collector will handle the propagation. // Overrides the deletion propagation policy set in the Configuration, the Test and the TestStep. // +optional // +kubebuilder:validation:Enum:=Orphan;Background;Foreground DeletionPropagationPolicy *metav1.DeletionPropagation `json:"deletionPropagationPolicy,omitempty"` }
Delete is a reference to an object that should be deleted +k8s:conversion-gen=false
func (*Delete) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Delete.
func (*Delete) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeletionOptions ¶ added in v0.2.3
type DeletionOptions struct { // Propagation decides if a deletion will propagate to the dependents of // the object, and how the garbage collector will handle the propagation. // +optional // +kubebuilder:validation:Enum:=Orphan;Background;Foreground // +kubebuilder:default:=Background Propagation metav1.DeletionPropagation `json:"propagation,omitempty"` }
DeletionOptions contains the configuration used for deleting resources.
func (*DeletionOptions) DeepCopy ¶ added in v0.2.3
func (in *DeletionOptions) DeepCopy() *DeletionOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeletionOptions.
func (*DeletionOptions) DeepCopyInto ¶ added in v0.2.3
func (in *DeletionOptions) DeepCopyInto(out *DeletionOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Describe ¶ added in v0.2.5
type Describe struct { ActionObject `json:",inline"` ActionTimeout `json:",inline"` // Show Events indicates whether to include related events. // +optional ShowEvents *bool `json:"showEvents,omitempty"` }
Describe defines how to describe resources. +k8s:conversion-gen=false
func (*Describe) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Describe.
func (*Describe) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiscoveryOptions ¶ added in v0.2.4
type DiscoveryOptions struct { // ExcludeTestRegex is used to exclude tests based on a regular expression. // +optional ExcludeTestRegex string `json:"excludeTestRegex,omitempty"` // IncludeTestRegex is used to include tests based on a regular expression. // +optional IncludeTestRegex string `json:"includeTestRegex,omitempty"` // TestFile is the name of the file containing the test to run. // If no extension is provided, chainsaw will try with .yaml first and .yml if needed. // +optional // +kubebuilder:default:="chainsaw-test" TestFile string `json:"testFile,omitempty"` // FullName makes use of the full test case folder path instead of the folder name. // +optional FullName bool `json:"fullName,omitempty"` }
DiscoveryOptions contains the discovery configuration used when discovering tests in folders.
func (*DiscoveryOptions) DeepCopy ¶ added in v0.2.4
func (in *DiscoveryOptions) DeepCopy() *DiscoveryOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoveryOptions.
func (*DiscoveryOptions) DeepCopyInto ¶ added in v0.2.4
func (in *DiscoveryOptions) DeepCopyInto(out *DiscoveryOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Error ¶ added in v0.2.5
type Error struct { ActionCheckRef `json:",inline"` ActionTimeout `json:",inline"` }
Error represents an anticipated error condition that may arise during testing. Instead of treating such an error as a test failure, it acknowledges it as expected. +k8s:conversion-gen=false
func (*Error) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Error.
func (*Error) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ErrorOptions ¶ added in v0.2.3
type ErrorOptions struct { // Catch defines what the tests steps will execute when an error happens. // This will be combined with catch handlers defined at the test and step levels. // +optional Catch []v1alpha1.CatchFinally `json:"catch,omitempty"` }
ErrorOptions contains the global error configuration.
func (*ErrorOptions) DeepCopy ¶ added in v0.2.3
func (in *ErrorOptions) DeepCopy() *ErrorOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorOptions.
func (*ErrorOptions) DeepCopyInto ¶ added in v0.2.3
func (in *ErrorOptions) DeepCopyInto(out *ErrorOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Events ¶ added in v0.2.5
type Events struct { ActionFormat `json:",inline"` ActionObjectSelector `json:",inline"` ActionTimeout `json:",inline"` }
Events defines how to collect events. +k8s:conversion-gen=false
func (*Events) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Events.
func (*Events) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecutionOptions ¶ added in v0.2.4
type ExecutionOptions struct { // FailFast determines whether the test should stop upon encountering the first failure. // +optional FailFast bool `json:"failFast,omitempty"` // The maximum number of tests to run at once. // +kubebuilder:validation:Format:=int // +kubebuilder:validation:Minimum:=1 // +optional Parallel *int `json:"parallel,omitempty"` // RepeatCount indicates how many times the tests should be executed. // +kubebuilder:validation:Format:=int // +kubebuilder:validation:Minimum:=1 // +optional RepeatCount *int `json:"repeatCount,omitempty"` // ForceTerminationGracePeriod forces the termination grace period on pods, statefulsets, daemonsets and deployments. // +optional ForceTerminationGracePeriod *metav1.Duration `json:"forceTerminationGracePeriod,omitempty"` }
ExecutionOptions determines how tests are run.
func (*ExecutionOptions) DeepCopy ¶ added in v0.2.4
func (in *ExecutionOptions) DeepCopy() *ExecutionOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecutionOptions.
func (*ExecutionOptions) DeepCopyInto ¶ added in v0.2.4
func (in *ExecutionOptions) DeepCopyInto(out *ExecutionOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Expectation ¶ added in v0.2.5
type Expectation = v1alpha1.Expectation
type FileRef ¶ added in v0.2.5
type FileRef struct { // File is the path to the referenced file. This can be a direct path to a file // or an expression that matches multiple files, such as "manifest/*.yaml" for all YAML // files within the "manifest" directory. File string `json:"file,omitempty"` }
FileRef represents a file reference.
func (*FileRef) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileRef.
func (*FileRef) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Get ¶ added in v0.2.5
type Get struct { ActionFormat `json:",inline"` ActionObject `json:",inline"` ActionTimeout `json:",inline"` }
Get defines how to get resources. +k8s:conversion-gen=false
func (*Get) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Get.
func (*Get) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceOptions ¶ added in v0.2.4
type NamespaceOptions struct { // Name defines the namespace to use for tests. // If not specified, every test will execute in a random ephemeral namespace // unless the namespace is overridden in a the test spec. // +optional Name string `json:"name,omitempty"` // Template defines a template to create the test namespace. // +optional Template *Any `json:"template,omitempty"` }
NamespaceOptions contains the configuration used to allocate a namespace for each test.
func (*NamespaceOptions) DeepCopy ¶ added in v0.2.4
func (in *NamespaceOptions) DeepCopy() *NamespaceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceOptions.
func (*NamespaceOptions) DeepCopyInto ¶ added in v0.2.4
func (in *NamespaceOptions) DeepCopyInto(out *NamespaceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectName ¶ added in v0.2.5
type ObjectName = v1alpha1.ObjectName
type ObjectReference ¶ added in v0.2.5
type ObjectReference struct { ObjectType `json:",inline"` ObjectName `json:",inline"` // Label selector to match objects to delete // +optional Labels *metav1.LabelSelector `json:"labelSelector,omitempty"` }
ObjectReference represents one or more objects with a specific apiVersion and kind. For a single object name and namespace are used to identify the object. For multiple objects use labels. +k8s:conversion-gen=false
func (*ObjectReference) DeepCopy ¶ added in v0.2.5
func (in *ObjectReference) DeepCopy() *ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.
func (*ObjectReference) DeepCopyInto ¶ added in v0.2.5
func (in *ObjectReference) DeepCopyInto(out *ObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectType ¶ added in v0.2.5
type ObjectType = v1alpha1.ObjectType
type Operation ¶ added in v0.2.5
type Operation struct { OperationAction `json:",inline"` OperationBindings `json:",inline"` OperationClusters `json:",inline"` OperationOutputs `json:",inline"` // Description contains a description of the operation. // +optional Description string `json:"description,omitempty"` }
Operation defines operation elements. +k8s:conversion-gen=false
func (*Operation) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operation.
func (*Operation) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationAction ¶ added in v0.2.5
type OperationAction struct { // Apply represents resources that should be applied for this test step. This can include things // like configuration settings or any other resources that need to be available during the test. // +optional Apply *Apply `json:"apply,omitempty"` // Assert represents an assertion to be made. It checks whether the conditions specified in the assertion hold true. // +optional Assert *Assert `json:"assert,omitempty"` // Command defines a command to run. // +optional Command *Command `json:"command,omitempty"` // Create represents a creation operation. // +optional Create *Create `json:"create,omitempty"` // Delete represents a deletion operation. // +optional Delete *Delete `json:"delete,omitempty"` // Describe determines the resource describe collector to execute. // +optional Describe *Describe `json:"describe,omitempty"` // Error represents the expected errors for this test step. If any of these errors occur, the test // will consider them as expected; otherwise, they will be treated as test failures. // +optional Error *Error `json:"error,omitempty"` // Events determines the events collector to execute. // +optional Events *Events `json:"events,omitempty"` // Get determines the resource get collector to execute. // +optional Get *Get `json:"get,omitempty"` // Patch represents a patch operation. // +optional Patch *Patch `json:"patch,omitempty"` // PodLogs determines the pod logs collector to execute. // +optional PodLogs *PodLogs `json:"podLogs,omitempty"` // Script defines a script to run. // +optional Script *Script `json:"script,omitempty"` // Sleep defines zzzz. // +optional Sleep *Sleep `json:"sleep,omitempty"` // Update represents an update operation. // +optional Update *Update `json:"update,omitempty"` // Wait determines the resource wait collector to execute. // +optional Wait *Wait `json:"wait,omitempty"` }
OperationAction defines an operation action, only one action should be specified per operation.
func (*OperationAction) DeepCopy ¶ added in v0.2.5
func (in *OperationAction) DeepCopy() *OperationAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationAction.
func (*OperationAction) DeepCopyInto ¶ added in v0.2.5
func (in *OperationAction) DeepCopyInto(out *OperationAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationBindings ¶ added in v0.2.5
type OperationBindings struct { // Bindings defines additional binding key/values. // +optional Bindings []Binding `json:"bindings,omitempty"` }
OperationBindings contains bindings options for an operation.
func (*OperationBindings) DeepCopy ¶ added in v0.2.5
func (in *OperationBindings) DeepCopy() *OperationBindings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationBindings.
func (*OperationBindings) DeepCopyInto ¶ added in v0.2.5
func (in *OperationBindings) DeepCopyInto(out *OperationBindings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationClusters ¶ added in v0.2.5
type OperationClusters struct { // Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). // +optional Cluster string `json:"cluster,omitempty"` // Clusters holds a registry to clusters to support multi-cluster tests. // +optional Clusters Clusters `json:"clusters,omitempty"` }
OperationClusters contains clusters options for an operation.
func (*OperationClusters) DeepCopy ¶ added in v0.2.5
func (in *OperationClusters) DeepCopy() *OperationClusters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationClusters.
func (*OperationClusters) DeepCopyInto ¶ added in v0.2.5
func (in *OperationClusters) DeepCopyInto(out *OperationClusters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationOutputs ¶ added in v0.2.5
type OperationOutputs struct { // Outputs defines output bindings. // +optional Outputs []Output `json:"outputs,omitempty"` }
OperationOutputs contains outputs options for an operation.
func (*OperationOutputs) DeepCopy ¶ added in v0.2.5
func (in *OperationOutputs) DeepCopy() *OperationOutputs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationOutputs.
func (*OperationOutputs) DeepCopyInto ¶ added in v0.2.5
func (in *OperationOutputs) DeepCopyInto(out *OperationOutputs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Patch ¶ added in v0.2.5
type Patch struct { ActionDryRun `json:",inline"` ActionExpectations `json:",inline"` ActionResourceRef `json:",inline"` ActionTimeout `json:",inline"` }
Patch represents a set of resources that should be patched. If a resource doesn't exist yet in the cluster it will fail. +k8s:conversion-gen=false
func (*Patch) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.
func (*Patch) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodLogs ¶ added in v0.2.5
type PodLogs struct { ActionObjectSelector `json:",inline"` ActionTimeout `json:",inline"` // Container in pod to get logs from else --all-containers is used. // +optional Container string `json:"container,omitempty"` // Tail is the number of last lines to collect from pods. If omitted or zero, // then the default is 10 if you use a selector, or -1 (all) if you use a pod name. // This matches default behavior of `kubectl logs`. // +optional Tail *int `json:"tail,omitempty"` }
PodLogs defines how to collect pod logs. +k8s:conversion-gen=false
func (*PodLogs) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodLogs.
func (*PodLogs) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReportFormatType ¶
type ReportFormatType string
const ( JSONFormat ReportFormatType = "JSON" XMLFormat ReportFormatType = "XML" )
type ReportOptions ¶ added in v0.2.4
type ReportOptions struct { // ReportFormat determines test report format (JSON|XML). // +optional // +kubebuilder:validation:Enum:=JSON;XML // +kubebuilder:default:="JSON" Format ReportFormatType `json:"format,omitempty"` // ReportPath defines the path. // +optional Path string `json:"path,omitempty"` // ReportName defines the name of report to create. It defaults to "chainsaw-report". // +optional // +kubebuilder:default:="chainsaw-report" Name string `json:"name,omitempty"` }
ReportOptions contains the configuration used for reporting.
func (*ReportOptions) DeepCopy ¶ added in v0.2.4
func (in *ReportOptions) DeepCopy() *ReportOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReportOptions.
func (*ReportOptions) DeepCopyInto ¶ added in v0.2.4
func (in *ReportOptions) DeepCopyInto(out *ReportOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Script ¶ added in v0.2.5
type Script struct { ActionCheck `json:",inline"` ActionEnv `json:",inline"` ActionTimeout `json:",inline"` // Content defines a shell script (run with "sh -c ..."). // +optional Content string `json:"content,omitempty"` }
Script describes a script to run as a part of a test step. +k8s:conversion-gen=false
func (*Script) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Script.
func (*Script) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Sleep ¶ added in v0.2.5
type Sleep struct { // Duration is the delay used for sleeping. Duration metav1.Duration `json:"duration"` }
Sleep represents a duration while nothing happens. +k8s:conversion-gen=false
func (*Sleep) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sleep.
func (*Sleep) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplatingOptions ¶ added in v0.2.4
type TemplatingOptions struct { // Enabled determines whether resources should be considered for templating. // +optional // +kubebuilder:default:=true Enabled bool `json:"enabled"` }
TemplatingOptions contains the templating configuration.
func (*TemplatingOptions) DeepCopy ¶ added in v0.2.4
func (in *TemplatingOptions) DeepCopy() *TemplatingOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplatingOptions.
func (*TemplatingOptions) DeepCopyInto ¶ added in v0.2.4
func (in *TemplatingOptions) DeepCopyInto(out *TemplatingOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Test ¶ added in v0.2.4
type Test struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Test spec. Spec TestSpec `json:"spec"` }
Test is the resource that contains a test definition.
func (*Test) DeepCopy ¶ added in v0.2.4
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Test.
func (*Test) DeepCopyInto ¶ added in v0.2.4
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Test) DeepCopyObject ¶ added in v0.2.4
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TestExecutionOptions ¶ added in v0.2.4
type TestExecutionOptions struct { // Concurrent determines whether the test should run concurrently with other tests. // +optional // +kubebuilder:default:=true Concurrent bool `json:"concurrent"` // Skip determines whether the test should skipped. // +optional Skip bool `json:"skip,omitempty"` // TerminationGracePeriod forces the termination grace period on pods, statefulsets, daemonsets and deployments. // +optional TerminationGracePeriod *metav1.Duration `json:"terminationGracePeriod,omitempty"` }
TestExecutionOptions determines how tests are run.
func (*TestExecutionOptions) DeepCopy ¶ added in v0.2.4
func (in *TestExecutionOptions) DeepCopy() *TestExecutionOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestExecutionOptions.
func (*TestExecutionOptions) DeepCopyInto ¶ added in v0.2.4
func (in *TestExecutionOptions) DeepCopyInto(out *TestExecutionOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TestSpec ¶ added in v0.2.4
type TestSpec struct { // Cleanup contains cleanup configuration. // +optional // +kubebuilder:default:={} Cleanup CleanupOptions `json:"cleanup"` // Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). // +optional Cluster string `json:"cluster,omitempty"` // Clusters holds a registry to clusters to support multi-cluster tests. // +optional Clusters Clusters `json:"clusters,omitempty"` // Execution contains tests execution configuration. // +optional // +kubebuilder:default:={} Execution TestExecutionOptions `json:"execution"` // Bindings defines additional binding key/values. // +optional Bindings []Binding `json:"bindings,omitempty"` // Deletion contains the global deletion configuration. // +optional // +kubebuilder:default:={} Deletion DeletionOptions `json:"deletion"` // Description contains a description of the test. // +optional Description string `json:"description,omitempty"` // Error contains the global error configuration. // +optional // +kubebuilder:default:={} Error ErrorOptions `json:"error"` // Namespace contains properties for the namespace to use for tests. // +optional // +kubebuilder:default:={} Namespace NamespaceOptions `json:"namespace"` // Steps defining the test. Steps []TestStep `json:"steps"` // Templating contains the templating config. // +optional // +kubebuilder:default:={} Templating TemplatingOptions `json:"templating"` // Timeouts for the test. Overrides the global timeouts set in the Configuration on a per operation basis. // +optional // +kubebuilder:default:={} Timeouts Timeouts `json:"timeouts"` }
TestSpec contains the test spec. +k8s:conversion-gen=false
func (*TestSpec) DeepCopy ¶ added in v0.2.4
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestSpec.
func (*TestSpec) DeepCopyInto ¶ added in v0.2.4
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TestStep ¶ added in v0.2.4
type TestStep struct { // Name of the step. // +optional Name string `json:"name,omitempty"` // TestStepSpec of the step. TestStepSpec `json:",inline"` }
TestStep contains the test step definition used in a test spec. +k8s:conversion-gen=false
func (*TestStep) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStep.
func (*TestStep) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TestStepSpec ¶ added in v0.2.5
type TestStepSpec struct { // Description contains a description of the test step. // +optional Description string `json:"description,omitempty"` // Timeouts for the test step. Overrides the global timeouts set in the Configuration and the timeouts eventually set in the Test. // +optional Timeouts *Timeouts `json:"timeouts,omitempty"` // DeletionPropagationPolicy decides if a deletion will propagate to the dependents of // the object, and how the garbage collector will handle the propagation. // Overrides the deletion propagation policy set in both the Configuration and the Test. // +optional // +kubebuilder:validation:Enum:=Orphan;Background;Foreground DeletionPropagationPolicy *metav1.DeletionPropagation `json:"deletionPropagationPolicy,omitempty"` // Cluster defines the target cluster (default cluster will be used if not specified and/or overridden). // +optional Cluster string `json:"cluster,omitempty"` // Clusters holds a registry to clusters to support multi-cluster tests. // +optional Clusters Clusters `json:"clusters,omitempty"` // SkipDelete determines whether the resources created by the step should be deleted after the test step is executed. // +optional SkipDelete *bool `json:"skipDelete,omitempty"` // Template determines whether resources should be considered for templating. // +optional Template *bool `json:"template,omitempty"` // Bindings defines additional binding key/values. // +optional Bindings []Binding `json:"bindings,omitempty"` // Try defines what the step will try to execute. // +kubebuilder:validation:MinItems:=1 Try []TryOperation `json:"try"` // Catch defines what the step will execute when an error happens. // +optional Catch []Operation `json:"catch,omitempty"` // Finally defines what the step will execute after the step is terminated. // +optional Finally []Operation `json:"finally,omitempty"` // Cleanup defines what will be executed after the test is terminated. // +optional Cleanup []Operation `json:"cleanup,omitempty"` }
TestStepSpec defines the desired state and behavior for each test step. +k8s:conversion-gen=false
func (*TestStepSpec) DeepCopy ¶ added in v0.2.5
func (in *TestStepSpec) DeepCopy() *TestStepSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStepSpec.
func (*TestStepSpec) DeepCopyInto ¶ added in v0.2.5
func (in *TestStepSpec) DeepCopyInto(out *TestStepSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TryOperation ¶ added in v0.2.5
type TryOperation struct { Operation `json:",inline"` // ContinueOnError determines whether a test should continue or not in case the operation was not successful. // Even if the test continues executing, it will still be reported as failed. // +optional ContinueOnError *bool `json:"continueOnError,omitempty"` }
TryOperation defines operation elements. +k8s:conversion-gen=false
func (*TryOperation) DeepCopy ¶ added in v0.2.5
func (in *TryOperation) DeepCopy() *TryOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TryOperation.
func (*TryOperation) DeepCopyInto ¶ added in v0.2.5
func (in *TryOperation) DeepCopyInto(out *TryOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Update ¶ added in v0.2.5
type Update struct { ActionDryRun `json:",inline"` ActionExpectations `json:",inline"` ActionResourceRef `json:",inline"` ActionTimeout `json:",inline"` }
Update represents a set of resources that should be updated. If a resource does not exist in the cluster it will fail. +k8s:conversion-gen=false
func (*Update) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Update.
func (*Update) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Wait ¶ added in v0.2.5
type Wait struct { ActionTimeout `json:",inline"` ActionFormat `json:",inline"` ActionObject `json:",inline"` // WaitFor specifies the condition to wait for. WaitFor `json:"for"` }
Wait specifies how to perform wait operations on resources. +k8s:conversion-gen=false
func (*Wait) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Wait.
func (*Wait) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WaitFor ¶ added in v0.2.5
type WaitFor struct { // Deletion specifies parameters for waiting on a resource's deletion. // +optional Deletion *WaitForDeletion `json:"deletion,omitempty"` // Condition specifies the condition to wait for. // +optional Condition *WaitForCondition `json:"condition,omitempty"` // JsonPath specifies the json path condition to wait for. // +optional JsonPath *WaitForJsonPath `json:"jsonPath,omitempty"` }
WaitFor specifies the condition to wait for. +k8s:conversion-gen=false
func (*WaitFor) DeepCopy ¶ added in v0.2.5
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WaitFor.
func (*WaitFor) DeepCopyInto ¶ added in v0.2.5
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WaitForCondition ¶ added in v0.2.5
type WaitForCondition struct { // Name defines the specific condition to wait for, e.g., "Available", "Ready". Name string `json:"name"` // Value defines the specific condition status to wait for, e.g., "True", "False". // +optional Value *string `json:"value,omitempty"` }
WaitForCondition represents parameters for waiting on a specific condition of a resource. +k8s:conversion-gen=false
func (*WaitForCondition) DeepCopy ¶ added in v0.2.5
func (in *WaitForCondition) DeepCopy() *WaitForCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WaitForCondition.
func (*WaitForCondition) DeepCopyInto ¶ added in v0.2.5
func (in *WaitForCondition) DeepCopyInto(out *WaitForCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WaitForDeletion ¶ added in v0.2.5
type WaitForDeletion struct{}
WaitForDeletion represents parameters for waiting on a resource's deletion. +k8s:conversion-gen=false
func (*WaitForDeletion) DeepCopy ¶ added in v0.2.5
func (in *WaitForDeletion) DeepCopy() *WaitForDeletion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WaitForDeletion.
func (*WaitForDeletion) DeepCopyInto ¶ added in v0.2.5
func (in *WaitForDeletion) DeepCopyInto(out *WaitForDeletion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WaitForJsonPath ¶ added in v0.2.5
type WaitForJsonPath struct { // Path defines the json path to wait for, e.g. '{.status.phase}'. Path string `json:"path"` // Value defines the expected value to wait for, e.g., "Running". Value string `json:"value"` }
WaitForJsonPath represents parameters for waiting on a json path of a resource. +k8s:conversion-gen=false
func (*WaitForJsonPath) DeepCopy ¶ added in v0.2.5
func (in *WaitForJsonPath) DeepCopy() *WaitForJsonPath
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WaitForJsonPath.
func (*WaitForJsonPath) DeepCopyInto ¶ added in v0.2.5
func (in *WaitForJsonPath) DeepCopyInto(out *WaitForJsonPath)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.