--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.1 name: objectstores.barmancloud.cnpg.io spec: group: barmancloud.cnpg.io names: kind: ObjectStore listKind: ObjectStoreList plural: objectstores singular: objectstore scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: ObjectStore is the Schema for the objectstores API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: ObjectStoreSpec defines the desired state of ObjectStore properties: configuration: description: |- BarmanObjectStoreConfiguration contains the backup configuration using Barman against an S3-compatible object storage properties: azureCredentials: description: The credentials to use to upload data to Azure Blob Storage properties: connectionString: description: The connection string to be used properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object inheritFromAzureAD: description: Use the Azure AD based authentication without providing explicitly the keys. type: boolean storageAccount: description: The storage account where to upload data properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object storageKey: description: |- The storage account key to be used in conjunction with the storage account name properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object storageSasToken: description: |- A shared-access-signature to be used in conjunction with the storage account name properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object type: object data: description: |- The configuration to be used to backup the data files When not defined, base backups files will be stored uncompressed and may be unencrypted in the object store, according to the bucket default policy. properties: additionalCommandArgs: description: |- AdditionalCommandArgs represents additional arguments that can be appended to the 'barman-cloud-backup' command-line invocation. These arguments provide flexibility to customize the backup process further according to specific requirements or configurations. Example: In a scenario where specialized backup options are required, such as setting a specific timeout or defining custom behavior, users can use this field to specify additional command arguments. Note: It's essential to ensure that the provided arguments are valid and supported by the 'barman-cloud-backup' command, to avoid potential errors or unintended behavior during execution. items: type: string type: array compression: description: |- Compress a backup file (a tar file per tablespace) while streaming it to the object store. Available options are empty string (no compression, default), `gzip`, `bzip2` or `snappy`. enum: - gzip - bzip2 - snappy type: string encryption: description: |- Whenever to force the encryption of files (if the bucket is not already configured for that). Allowed options are empty string (use the bucket policy, default), `AES256` and `aws:kms` enum: - AES256 - aws:kms type: string immediateCheckpoint: description: |- Control whether the I/O workload for the backup initial checkpoint will be limited, according to the `checkpoint_completion_target` setting on the PostgreSQL server. If set to true, an immediate checkpoint will be used, meaning PostgreSQL will complete the checkpoint as soon as possible. `false` by default. type: boolean jobs: description: |- The number of parallel jobs to be used to upload the backup, defaults to 2 format: int32 minimum: 1 type: integer type: object destinationPath: description: |- The path where to store the backup (i.e. s3://bucket/path/to/folder) this path, with different destination folders, will be used for WALs and for data minLength: 1 type: string endpointCA: description: |- EndpointCA store the CA bundle of the barman endpoint. Useful when using self-signed certificates to avoid errors with certificate issuer and barman-cloud-wal-archive properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object endpointURL: description: |- Endpoint to be used to upload data to the cloud, overriding the automatic endpoint discovery type: string googleCredentials: description: The credentials to use to upload data to Google Cloud Storage properties: applicationCredentials: description: The secret containing the Google Cloud Storage JSON file with the credentials properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object gkeEnvironment: description: |- If set to true, will presume that it's running inside a GKE environment, default to false. type: boolean type: object historyTags: additionalProperties: type: string description: |- HistoryTags is a list of key value pairs that will be passed to the Barman --history-tags option. type: object s3Credentials: description: The credentials to use to upload data to S3 properties: accessKeyId: description: The reference to the access key id properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object inheritFromIAMRole: description: Use the role based authentication without providing explicitly the keys. type: boolean region: description: The reference to the secret containing the region name properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object secretAccessKey: description: The reference to the secret access key properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object sessionToken: description: The references to the session key properties: key: description: The key to select type: string name: description: Name of the referent. type: string required: - key - name type: object type: object serverName: description: |- The server name on S3, the cluster name is used if this parameter is omitted type: string tags: additionalProperties: type: string description: |- Tags is a list of key value pairs that will be passed to the Barman --tags option. type: object wal: description: |- The configuration for the backup of the WAL stream. When not defined, WAL files will be stored uncompressed and may be unencrypted in the object store, according to the bucket default policy. properties: archiveAdditionalCommandArgs: description: |- Additional arguments that can be appended to the 'barman-cloud-wal-archive' command-line invocation. These arguments provide flexibility to customize the WAL archive process further, according to specific requirements or configurations. Example: In a scenario where specialized backup options are required, such as setting a specific timeout or defining custom behavior, users can use this field to specify additional command arguments. Note: It's essential to ensure that the provided arguments are valid and supported by the 'barman-cloud-wal-archive' command, to avoid potential errors or unintended behavior during execution. items: type: string type: array compression: description: |- Compress a WAL file before sending it to the object store. Available options are empty string (no compression, default), `gzip`, `bzip2` or `snappy`. enum: - gzip - bzip2 - snappy type: string encryption: description: |- Whenever to force the encryption of files (if the bucket is not already configured for that). Allowed options are empty string (use the bucket policy, default), `AES256` and `aws:kms` enum: - AES256 - aws:kms type: string maxParallel: description: |- Number of WAL files to be either archived in parallel (when the PostgreSQL instance is archiving to a backup object store) or restored in parallel (when a PostgreSQL standby is fetching WAL files from a recovery object store). If not specified, WAL files will be processed one at a time. It accepts a positive integer as a value - with 1 being the minimum accepted value. minimum: 1 type: integer restoreAdditionalCommandArgs: description: |- Additional arguments that can be appended to the 'barman-cloud-wal-restore' command-line invocation. These arguments provide flexibility to customize the WAL restore process further, according to specific requirements or configurations. Example: In a scenario where specialized backup options are required, such as setting a specific timeout or defining custom behavior, users can use this field to specify additional command arguments. Note: It's essential to ensure that the provided arguments are valid and supported by the 'barman-cloud-wal-restore' command, to avoid potential errors or unintended behavior during execution. items: type: string type: array type: object required: - destinationPath type: object required: - configuration type: object status: description: ObjectStoreStatus defines the observed state of ObjectStore type: object type: object served: true storage: true subresources: status: {}