Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the aiml v1beta1 API group +kubebuilder:object:generate=true +groupName=aiml.pachyderm.com
Index ¶
- Constants
- Variables
- type AmazonStorageOptions
- type AmazonStorageVault
- type ConsoleOptions
- type EtcdOptions
- type GoogleStorageOptions
- type ImageOverride
- type MetricsOptions
- type MicrosoftStorageOptions
- type MinioStorageOptions
- type ObjectStorageOptions
- type PachdOptions
- type PachdPostgresConfig
- type Pachyderm
- func (in *Pachyderm) DeepCopy() *Pachyderm
- func (in *Pachyderm) DeepCopyInto(out *Pachyderm)
- func (in *Pachyderm) DeepCopyObject() runtime.Object
- func (r *Pachyderm) Default()
- func (r *Pachyderm) DeployPostgres() bool
- func (r *Pachyderm) IsDeleted() bool
- func (r *Pachyderm) IsPaused() bool
- func (r *Pachyderm) SetGoogleCredentials(credentials []byte)
- func (r *Pachyderm) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Pachyderm) ValidateCreate() error
- func (r *Pachyderm) ValidateDelete() error
- func (r *Pachyderm) ValidateUpdate(old runtime.Object) error
- type PachydermExport
- type PachydermExportList
- type PachydermExportSpec
- type PachydermExportStatus
- type PachydermImport
- type PachydermImportList
- type PachydermImportSpec
- type PachydermImportStatus
- type PachydermList
- type PachydermPhase
- type PachydermSpec
- type PachydermStatus
- type PostgresOptions
- type RestoreDestination
- type ServiceOverrides
- type WorkerOptions
Constants ¶
const ( // Amazon storage backend for pachd AmazonStorageBackend string = "AMAZON" // Microsoft storage backend for pachd MicrosoftStorageBackend string = "MICROSOFT" // Google storage backend for pachd GoogleStorageBackend string = "GOOGLE" // Minio storage backend for pachd MinioStorageBackend string = "MINIO" // Pachyderm Pause Annotation PachydermPauseAnnotation string = "operator.pachyderm.com/pause-cluster" // Pachd Pod Count Annotation PachdPodCountAnnotation string = "operator.pachyderm.com/pachd-podcount" )
const ( // Set status of Pachyderm Export to running ExportRunningStatus string = "Running" // Sets status of Pachyderm export to completed ExportCompletedStatus string = "Completed" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "aiml.pachyderm.com", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AmazonStorageOptions ¶
type AmazonStorageOptions struct { // Name of the S3 bucket to hold objects Bucket string `json:"-"` // CloudFrontDistribution sets the CloudFront distribution in the storage secrets. // It is analogous to the --cloudfront-distribution argument to pachctl deploy. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CloudFront Distribution",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} CloudFrontDistribution string `json:"cloudFrontDistribution,omitempty"` // Custom endpoint for connecting to S3 object store //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Custom Endpoint",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} CustomEndpoint string `json:"-"` // DisableSSL disables SSL. It is analogous to the --disable-ssl //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable SSL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} DisableSSL bool `json:"disableSSL,omitempty"` // IAM identity with the desired permissions //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="IAM Role",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} IAMRole string `json:"iamRole,omitempty"` // The access ID for the AWS S3 storage solution ID string `json:"-"` // LogOptions sets various log options in Pachyderm’s internal S3 client. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Log Options",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} LogOptions string `json:"logOptions,omitempty"` // Set a custom maximum number of upload parts. // Default: 10000 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Max Upload Parts",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} MaxUploadParts int `json:"maxUploadParts,omitempty" default:"10000"` // Skip SSL certificate verification. // Typically used for enabling self-signed certificates //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Verify SSL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} VerifySSL bool `json:"verifySSL,omitempty"` // Set a custom part size for object storage uploads. // Default: 5242880 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Part Size",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} PartSize int64 `json:"partSize,omitempty" default:"5242880"` // Region for the object storage cluster Region string `json:"-"` // Set a custom number of retries for object storage requests. // Default: 10 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Retries",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} Retries int `json:"retries,omitempty" default:"10"` // Reverse object storage paths. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Reverse",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} Reverse *bool `json:"reverse,omitempty" default:"true"` // The secret access key for the S3 bucket Secret string `json:"-"` // Set a custom timeout for object storage requests. // Default: 5m //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Timeout",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} Timeout string `json:"timeout,omitempty" default:"5m"` // Token optionally sets the Amazon token to use. Together with // ID and Secret, it implements the functionality of the // --credentials argument to pachctl deploy. Token string `json:"-"` // Sets a custom upload ACL for object store uploads. // Default: "bucket-owner-full-control" //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Upload ACL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} UploadACL string `json:"uploadACL,omitempty" default:"bucket-owner-full-control"` // Container for storing archives Vault *AmazonStorageVault `json:"vault,omitempty"` // The name of the secret containing the credentials to the S3 storage //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="S3 Credentials Secret",xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret"} CredentialSecretName string `json:"credentialSecretName,omitempty" default:"pachyderm-aws-secret"` }
AmazonStorageOptions exposes options to configure Amazon s3 storage
func (*AmazonStorageOptions) DeepCopy ¶
func (in *AmazonStorageOptions) DeepCopy() *AmazonStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonStorageOptions.
func (*AmazonStorageOptions) DeepCopyInto ¶
func (in *AmazonStorageOptions) DeepCopyInto(out *AmazonStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmazonStorageVault ¶
type AmazonStorageVault struct { //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Address",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Address string `json:"address,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Role",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Role string `json:"role,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Token",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Token string `json:"token,omitempty"` }
AmazonStorageVault exposes options to configure Amazon vault
func (*AmazonStorageVault) DeepCopy ¶
func (in *AmazonStorageVault) DeepCopy() *AmazonStorageVault
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonStorageVault.
func (*AmazonStorageVault) DeepCopyInto ¶
func (in *AmazonStorageVault) DeepCopyInto(out *AmazonStorageVault)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConsoleOptions ¶
type ConsoleOptions struct { // If true, this option disables the Pachyderm dashboard. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} Disable bool `json:"disable,omitempty"` // Optional image overrides. // Used to specify alternative images to use to deploy console Image *ImageOverride `json:"image,omitempty"` // Optional resource requirements required to run the dash pods. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"} Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // The address to use as the host in the dash ingress. // Used as the host of a rule //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="URL",xDescriptors={"urn:alm:descriptor:text"} URL string `json:"url,omitempty"` // Service overrides Service *ServiceOverrides `json:"service,omitempty"` }
ConsoleOptions provides options to configure the Pachyderm console
func (*ConsoleOptions) DeepCopy ¶
func (in *ConsoleOptions) DeepCopy() *ConsoleOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleOptions.
func (*ConsoleOptions) DeepCopyInto ¶
func (in *ConsoleOptions) DeepCopyInto(out *ConsoleOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EtcdOptions ¶
type EtcdOptions struct { // Optional parameter to set the number of nodes in the Etcd statefulset. // Analogous --dynamic-etcd-nodes argument to 'pachctl deploy' //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Dynamic Nodes",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} DynamicNodes int32 `json:"dynamicNodes,omitempty"` // Optional image overrides. // Used to specify alternative images to use to deploy dash Image *ImageOverride `json:"image,omitempty"` // Resource requests and limits for Etcd //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"} Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // If specified, etcd would use an existing storage class for its storage // Name of existing storage class to use for the Etcd persistent volume. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage Class",xDescriptors={"urn:alm:descriptor:io.kubernetes:StorageClass","urn:alm:descriptor:io.kubernetes:custom"} StorageClass string `json:"storageClass,omitempty"` // The size of the storage to use for etcd. // For example: "100Gi" //+kubebuilder:default:="10Gi" //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage Size",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"} StorageSize string `json:"storageSize,omitempty"` // Service overrides Service *ServiceOverrides `json:"service,omitempty"` }
EtcdOptions allows users to change the etcd statefulset
func (*EtcdOptions) DeepCopy ¶
func (in *EtcdOptions) DeepCopy() *EtcdOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdOptions.
func (*EtcdOptions) DeepCopyInto ¶
func (in *EtcdOptions) DeepCopyInto(out *EtcdOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GoogleStorageOptions ¶
type GoogleStorageOptions struct { // Name of GCS bucket to hold objects //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Bucket",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Bucket string `json:"bucket,omitempty"` // Credentials json file //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Credential Secret",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} CredentialSecret string `json:"credentialSecret,omitempty"` // Contents of the "credentials.json" key from the CredentialSecret CredentialsData []byte `json:"-"` // ServiceAccount used for Google container storage //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Service Account Name",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text","urn:alm:descriptor:io.kubernetes:custom"} ServiceAccountName string `json:"serviceAccountName,omitempty"` }
GoogleStorageOptions exposes options to configure Google Cloud Storage
func (*GoogleStorageOptions) DeepCopy ¶
func (in *GoogleStorageOptions) DeepCopy() *GoogleStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GoogleStorageOptions.
func (*GoogleStorageOptions) DeepCopyInto ¶
func (in *GoogleStorageOptions) DeepCopyInto(out *GoogleStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageOverride ¶
type ImageOverride struct { // This option dictates the particular image to pull e.g. quay.io/app-sre/ubi8-ubi-minimal //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Image Repo",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Repository string `json:"repository,omitempty"` // Used with the image registry to choose a specific // image in a cointainer registry to pull e.g. latest //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tag",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Tag string `json:"tag,omitempty"` // Determines when images should be pulled. // It accepts, "IfNotPresent","Never" or "Always" //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Pull Policy",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} //+kubebuilder:validation:Enum:=IfNotPresent;Always;Never PullPolicy string `json:"pullPolicy,omitempty"` }
ImageOverride allows the user to override the default image and change the image pull policy
func (*ImageOverride) DeepCopy ¶
func (in *ImageOverride) DeepCopy() *ImageOverride
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageOverride.
func (*ImageOverride) DeepCopyInto ¶
func (in *ImageOverride) DeepCopyInto(out *ImageOverride)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImageOverride) ImagePullPolicy ¶
func (o *ImageOverride) ImagePullPolicy() corev1.PullPolicy
ImagePullPolicy returns the image pull policy
func (*ImageOverride) Name ¶
func (o *ImageOverride) Name() string
Name represents the full name of the image being override
type MetricsOptions ¶
type MetricsOptions struct { // If true, this option allows user to disable metrics endpoint. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} Disable bool `json:"disable,omitempty"` // Option to customize pachd metrics endpoint. // When not set, defaults to /metrics //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Endpoint",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Endpoint string `json:"endpoint,omitempty"` }
MetricsOptions allows the user to enable/disable pachyderm metrics
func (*MetricsOptions) DeepCopy ¶
func (in *MetricsOptions) DeepCopy() *MetricsOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsOptions.
func (*MetricsOptions) DeepCopyInto ¶
func (in *MetricsOptions) DeepCopyInto(out *MetricsOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MicrosoftStorageOptions ¶
type MicrosoftStorageOptions struct { //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Container",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Container string `json:"container,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ID",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} ID string `json:"id,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Secret string `json:"secret,omitempty"` }
MicrosoftStorageOptions exposes options to configure Microsoft storage
func (*MicrosoftStorageOptions) DeepCopy ¶
func (in *MicrosoftStorageOptions) DeepCopy() *MicrosoftStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicrosoftStorageOptions.
func (*MicrosoftStorageOptions) DeepCopyInto ¶
func (in *MicrosoftStorageOptions) DeepCopyInto(out *MicrosoftStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MinioStorageOptions ¶
type MinioStorageOptions struct { // Name of minio bucket to store pachd objects //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Bucket",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Bucket string `json:"bucket,omitempty"` // The hostname and port that are used to access the minio object store // Example: "minio-server:9000" //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Endpoint",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Endpoint string `json:"endpoint,omitempty"` // The user access ID that is used to access minio object store. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ID",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} ID string `json:"id,omitempty"` // The associated password that is used with the user access ID //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Secret string `json:"secret,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secure",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Secure string `json:"secure,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Signature",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Signature string `json:"signature,omitempty"` }
MinioStorageOptions exposes options to confugure Minio object store
func (*MinioStorageOptions) DeepCopy ¶
func (in *MinioStorageOptions) DeepCopy() *MinioStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinioStorageOptions.
func (*MinioStorageOptions) DeepCopyInto ¶
func (in *MinioStorageOptions) DeepCopyInto(out *MinioStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStorageOptions ¶
type ObjectStorageOptions struct { // The maximum number of files to upload or fetch from remote sources (HTTP, blob storage) using PutFile concurrently. // Default: 100 //+kubebuilder:default:=100 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Put File Concurrency Limit",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} PutFileConcurrencyLimit int32 `json:"putFileConcurrencyLimit,omitempty"` // The maximum number of concurrent object storage uploads per Pachd instance. // Default: 100 //+kubebuilder:default:=100 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Upload File Concurrency Limit",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number"} UploadFileConcurrencyLimit int32 `json:"uploadFileConcurrencyLimit,omitempty"` // Sets the type of storage backend. // Should be one of "GOOGLE", "AMAZON", "MINIO" or "MICROSOFT" //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backend",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} //+kubebuilder:validation:Enum:=AMAZON;MINIO;MICROSOFT;GOOGLE Backend string `json:"backend"` // Configures the Amazon storage backend Amazon *AmazonStorageOptions `json:"amazon,omitempty"` // Configures the Google storage backend Google *GoogleStorageOptions `json:"google,omitempty"` // Configures Microsoft storage backend Microsoft *MicrosoftStorageOptions `json:"microsoft,omitempty"` // Configures Minio object store Minio *MinioStorageOptions `json:"minio,omitempty"` }
ObjectStorageOptions exposes options to configure object store backend for Pachyderm resource
func (*ObjectStorageOptions) DeepCopy ¶
func (in *ObjectStorageOptions) DeepCopy() *ObjectStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageOptions.
func (*ObjectStorageOptions) DeepCopyInto ¶
func (in *ObjectStorageOptions) DeepCopyInto(out *ObjectStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachdOptions ¶
type PachdOptions struct { // Disable pachd //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} Disable bool `json:"disable,omitempty"` // Set an ID for the cluster deployment. // Defaults to a random value if none is provided //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Cluster ID",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} ClusterID string `json:"clusterDeploymentID,omitempty"` // Resource requests and limits for Pachd //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"} Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // Require only critical Pachd servers to startup and run without errors. //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Require Critical Servers Only",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} RequireCriticalServers bool `json:"requireCriticalServersOnly,omitempty"` // Object storage options for Pachd Storage ObjectStorageOptions `json:"storage,omitempty"` // Optional image overrides. // Used to specify alternative images to use to deploy dash Image *ImageOverride `json:"image,omitempty"` // The log level option determines the severity of logs // that are of interest to the user //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Log Level",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=info LogLevel string `json:"logLevel,omitempty"` // Optional value to determine the format of the logs // Default: false //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Loki Logging",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} LokiLogging bool `json:"lokiLogging,omitempty"` // Pachyderm Pipeline System(PPS) worker GRPC port. // Defaults to port 1080 //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PPS Worker GRPC Port",xDescriptors={"urn:alm:descriptor:number","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default=1080 PPSWorkerGRPCPort int32 `json:"ppsWorkerGRPCPort,omitempty"` // Service overrides for pachd Service *ServiceOverrides `json:"service,omitempty"` // Allows user to customize metrics options Metrics MetricsOptions `json:"metrics,omitempty"` // Service Account Name to use for the pachd pod //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Service Account Name",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} ServiceAccountName string `json:"serviceAccountName,omitempty"` // Postgresql server connection credentials Postgres PachdPostgresConfig `json:"postgresql,omitempty"` }
PachdOptions allows the user to customize pachd
func (*PachdOptions) DeepCopy ¶
func (in *PachdOptions) DeepCopy() *PachdOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachdOptions.
func (*PachdOptions) DeepCopyInto ¶
func (in *PachdOptions) DeepCopyInto(out *PachdOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachdPostgresConfig ¶
type PachdPostgresConfig struct { // Hostname opr address of the postgresql host //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Host",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=postgres Host string `json:"host,omitempty"` // Postgresql port number. // Defaults to 5432 when not set //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Port",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:number","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=5432 Port int32 `json:"port,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="SSL",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=disable SSL string `json:"ssl,omitempty"` // Username to use to connect to the database. // Defaults to pachyderm //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="User",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=pachyderm User string `json:"user,omitempty"` // The password field is used internally by the operator. // If the PasswordSecretName is set, it will contain the password // read from the secret. // Field is not visible to the user Password string `json:"-"` // Name of the kubernetes secret containing the database password. // Password should have the key postgres-password //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Password Secret",xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret","urn:alm:descriptor:io.kubernetes:advanced"} PasswordSecretName string `json:"passwordSecret,omitempty"` // Name of the database into which the table schemas will live //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Database",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=pachyderm Database string `json:"database,omitempty"` }
PachdPostgresConfig sets up storage for pachd
func (*PachdPostgresConfig) DeepCopy ¶
func (in *PachdPostgresConfig) DeepCopy() *PachdPostgresConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachdPostgresConfig.
func (*PachdPostgresConfig) DeepCopyInto ¶
func (in *PachdPostgresConfig) DeepCopyInto(out *PachdPostgresConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Pachyderm ¶
type Pachyderm struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PachydermSpec `json:"spec,omitempty"` Status PachydermStatus `json:"status,omitempty"` }
Pachyderm is the Schema for the pachyderms API
func (*Pachyderm) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pachyderm.
func (*Pachyderm) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pachyderm) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Pachyderm) Default ¶
func (r *Pachyderm) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*Pachyderm) DeployPostgres ¶
func (*Pachyderm) IsDeleted ¶
IsDeleted returns true if the pachyderm resource has been marked for deletion
func (*Pachyderm) SetGoogleCredentials ¶
func (*Pachyderm) SetupWebhookWithManager ¶
SetupWebhookWithManager setups the webhook
func (*Pachyderm) ValidateCreate ¶
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Pachyderm) ValidateDelete ¶
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type PachydermExport ¶
type PachydermExport struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PachydermExportSpec `json:"spec,omitempty"` Status PachydermExportStatus `json:"status,omitempty"` }
PachydermExport is the Schema for the pachydermexports API
func (*PachydermExport) DeepCopy ¶
func (in *PachydermExport) DeepCopy() *PachydermExport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermExport.
func (*PachydermExport) DeepCopyInto ¶
func (in *PachydermExport) DeepCopyInto(out *PachydermExport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PachydermExport) DeepCopyObject ¶
func (in *PachydermExport) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PachydermExportList ¶
type PachydermExportList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []PachydermExport `json:"items"` }
PachydermExportList contains a list of PachydermExport
func (*PachydermExportList) DeepCopy ¶
func (in *PachydermExportList) DeepCopy() *PachydermExportList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermExportList.
func (*PachydermExportList) DeepCopyInto ¶
func (in *PachydermExportList) DeepCopyInto(out *PachydermExportList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PachydermExportList) DeepCopyObject ¶
func (in *PachydermExportList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PachydermExportSpec ¶
type PachydermExportSpec struct { // Name of Pachyderm instance to backup. Target string `json:"target"` // Storage Secret containing credentials to // upload the backup to an S3-compatible object store //+kubebuilder:validation:required=true //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="S3 Upload Secret",xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret"} StorageSecret string `json:"storageSecret,omitempty"` }
PachydermExportSpec defines the desired state of PachydermExport
func (*PachydermExportSpec) DeepCopy ¶
func (in *PachydermExportSpec) DeepCopy() *PachydermExportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermExportSpec.
func (*PachydermExportSpec) DeepCopyInto ¶
func (in *PachydermExportSpec) DeepCopyInto(out *PachydermExportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachydermExportStatus ¶
type PachydermExportStatus struct { // Phase of the export status Phase string `json:"phase,omitempty"` // Unique ID of the backup ID string `json:"id,omitempty"` // Time the backup process commenced StartedAt string `json:"startedAt,omitempty"` // Time the backup process completed CompletedAt string `json:"completedAt,omitempty"` // Name of backup resource created Name string `json:"name,omitempty"` // Location of pachyderm backup on the S3 bucket Location string `json:"location,omitempty"` // Status reports the state of the restore request Status string `json:"status,omitempty"` }
PachydermExportStatus defines the observed state of PachydermExport
func (*PachydermExportStatus) DeepCopy ¶
func (in *PachydermExportStatus) DeepCopy() *PachydermExportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermExportStatus.
func (*PachydermExportStatus) DeepCopyInto ¶
func (in *PachydermExportStatus) DeepCopyInto(out *PachydermExportStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachydermImport ¶
type PachydermImport struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PachydermImportSpec `json:"spec,omitempty"` Status PachydermImportStatus `json:"status,omitempty"` }
PachydermImport is the Schema for the pachydermimports API
func (*PachydermImport) DeepCopy ¶
func (in *PachydermImport) DeepCopy() *PachydermImport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermImport.
func (*PachydermImport) DeepCopyInto ¶
func (in *PachydermImport) DeepCopyInto(out *PachydermImport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PachydermImport) DeepCopyObject ¶
func (in *PachydermImport) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PachydermImportList ¶
type PachydermImportList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []PachydermImport `json:"items"` }
PachydermImportList contains a list of PachydermImport
func (*PachydermImportList) DeepCopy ¶
func (in *PachydermImportList) DeepCopy() *PachydermImportList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermImportList.
func (*PachydermImportList) DeepCopyInto ¶
func (in *PachydermImportList) DeepCopyInto(out *PachydermImportList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PachydermImportList) DeepCopyObject ¶
func (in *PachydermImportList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PachydermImportSpec ¶
type PachydermImportSpec struct { // Name of the pachyderm instance to restore the backup to //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Restore Destination",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Destination RestoreDestination `json:"destination,omitempty"` // Name of backup resource in S3 to restore //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup Name",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} BackupName string `json:"backup,omitempty"` // Storage Secret containing credentials to // upload the backup to an S3-compatible object store //+kubebuilder:validation:required=true //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="S3 Upload Secret",xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret"} StorageSecret string `json:"storageSecret,omitempty"` }
PachydermImportSpec defines the desired state of PachydermImport
func (*PachydermImportSpec) DeepCopy ¶
func (in *PachydermImportSpec) DeepCopy() *PachydermImportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermImportSpec.
func (*PachydermImportSpec) DeepCopyInto ¶
func (in *PachydermImportSpec) DeepCopyInto(out *PachydermImportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachydermImportStatus ¶
type PachydermImportStatus struct { // Phase reports the status of the restore Phase string `json:"phase,omitempty"` // Unique ID of the backup ID string `json:"id,omitempty"` // Time the restore process commenced StartedAt string `json:"startedAt,omitempty"` // Time the restore process completed CompletedAt string `json:"completedAt,omitempty"` // Status reports the state of the restore request Status string `json:"status,omitempty"` }
PachydermImportStatus defines the observed state of PachydermImport
func (*PachydermImportStatus) DeepCopy ¶
func (in *PachydermImportStatus) DeepCopy() *PachydermImportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermImportStatus.
func (*PachydermImportStatus) DeepCopyInto ¶
func (in *PachydermImportStatus) DeepCopyInto(out *PachydermImportStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachydermList ¶
type PachydermList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Pachyderm `json:"items"` }
PachydermList contains a list of Pachyderm
func (*PachydermList) DeepCopy ¶
func (in *PachydermList) DeepCopy() *PachydermList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermList.
func (*PachydermList) DeepCopyInto ¶
func (in *PachydermList) DeepCopyInto(out *PachydermList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PachydermList) DeepCopyObject ¶
func (in *PachydermList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PachydermPhase ¶
type PachydermPhase string
PachydermPhase defines the data type used to report the status of a Pachyderm resource
const ( // PhaseInitializing sets the Pachyderm status to initilizing PhaseInitializing PachydermPhase = "Initializing" // PhaseRunning sets the resource status to running PhaseRunning PachydermPhase = "Running" // PhaseDeleting reports the resource status to deleting PhaseDeleting PachydermPhase = "Deleting" // PhaseUpgrading denotes the pachyderm resource is // updating from one version to another PhaseUpgrading PachydermPhase = "Upgrading" )
type PachydermSpec ¶
type PachydermSpec struct { // Allows user to change version of Pachyderm to deploy //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Version",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} Version string `json:"version,omitempty"` // Allows the user to customize the etcd key-value store Etcd EtcdOptions `json:"etcd,omitempty"` // Allows the user to customize the pachd instance(s) Pachd PachdOptions `json:"pachd,omitempty"` // Allows the user to customize the console instance(s) Console ConsoleOptions `json:"console,omitempty"` // Allows user to customize worker instance(s) Worker WorkerOptions `json:"worker,omitempty"` // Allows user to customize Postgresql database Postgres PostgresOptions `json:"postgresql,omitempty"` // Allow user to provide an image pull secret ImagePullSecret *string `json:"imagePullSecret,omitempty"` // License for pachyderm enterprise. // Takes the name of the secret containing the 'license' string //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enterprise License Secret",xDescriptors={"urn:alm:descriptor:io.kubernetes:Secret"} License string `json:"license,omitempty"` // The enterprise license string EnterpriseLicense string `json:"-"` }
PachydermSpec defines the desired state of Pachyderm
func (*PachydermSpec) DeepCopy ¶
func (in *PachydermSpec) DeepCopy() *PachydermSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermSpec.
func (*PachydermSpec) DeepCopyInto ¶
func (in *PachydermSpec) DeepCopyInto(out *PachydermSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PachydermStatus ¶
type PachydermStatus struct { // Deployment phase of the pachyderm cluster //+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Phase",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:phase"} Phase PachydermPhase `json:"phase,omitempty"` // Address of the pachyderm cluster //+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Pachd Address",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:pachdAddress"} PachdAddress string `json:"pachdAddress,omitempty"` // Version of the deployed pachyderm cluster //+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Version",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:version"} CurrentVersion string `json:"currentVersion,omitempty"` }
PachydermStatus defines the observed state of Pachyderm
func (*PachydermStatus) DeepCopy ¶
func (in *PachydermStatus) DeepCopy() *PachydermStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PachydermStatus.
func (*PachydermStatus) DeepCopyInto ¶
func (in *PachydermStatus) DeepCopyInto(out *PachydermStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PostgresOptions ¶
type PostgresOptions struct { // Set disabled to true if you choose to provide // an external postgresql database //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Disable",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:booleanSwitch","urn:alm:descriptor:com.tectonic.ui:custom"} Disable bool `json:"disable,omitempty"` // Storage class for the postgresql persistent storage //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Storage Class",xDescriptors={"urn:alm:descriptor:io.kubernetes:StorageClass","urn:alm:descriptor:io.kubernetes:custom"} StorageClass string `json:"storageClass,omitempty"` // Service overrides Service ServiceOverrides `json:"service,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:resourceRequirements"} Resources *corev1.ResourceRequirements `json:"resources,omitempty"` }
PostgresOptions allows user to customize Postgresql
func (*PostgresOptions) DeepCopy ¶
func (in *PostgresOptions) DeepCopy() *PostgresOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresOptions.
func (*PostgresOptions) DeepCopyInto ¶
func (in *PostgresOptions) DeepCopyInto(out *PostgresOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreDestination ¶
type RestoreDestination struct { //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Restore Target",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Name string `json:"name,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Pachyderm Namespace",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Namespace string `json:"namespace,omitempty"` }
RestoreDestination name of pachyderm instance to restore to
func (*RestoreDestination) DeepCopy ¶
func (in *RestoreDestination) DeepCopy() *RestoreDestination
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreDestination.
func (*RestoreDestination) DeepCopyInto ¶
func (in *RestoreDestination) DeepCopyInto(out *RestoreDestination)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceOverrides ¶
type ServiceOverrides struct { //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Annotations",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Annotations []string `json:"annotations,omitempty"` //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Type",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:custom"} Type string `json:"type"` }
ServiceOverrides allows user to customize k8s service type and annotations
func (*ServiceOverrides) DeepCopy ¶
func (in *ServiceOverrides) DeepCopy() *ServiceOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceOverrides.
func (*ServiceOverrides) DeepCopyInto ¶
func (in *ServiceOverrides) DeepCopyInto(out *ServiceOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerOptions ¶
type WorkerOptions struct { // Optional image overrides. // Used to specify alternative images to use to deploy dash Image *ImageOverride `json:"image,omitempty"` // Name of worker service account. // Defaults to pachyderm-worker service account //+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Service Account Name",xDescriptors={"urn:alm:descriptor:text","urn:alm:descriptor:io.kubernetes:advanced"} //+kubebuilder:default:=pachyderm-worker ServiceAccountName string `json:"serviceAccountName,omitempty"` }
WorkerOptions allows the user to configure workers
func (*WorkerOptions) DeepCopy ¶
func (in *WorkerOptions) DeepCopy() *WorkerOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerOptions.
func (*WorkerOptions) DeepCopyInto ¶
func (in *WorkerOptions) DeepCopyInto(out *WorkerOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.