Files
cozystack/packages/system/backup-controller/definitions/backups.cozystack.io_backupclasses.yaml

181 lines
8.5 KiB
YAML
Generated

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
name: backupclasses.backups.cozystack.io
spec:
group: backups.cozystack.io
names:
kind: BackupClass
listKind: BackupClassList
plural: backupclasses
singular: backupclass
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: |-
BackupClass defines a class of backup configurations that can be referenced
by BackupJob and Plan resources. It encapsulates strategy and storage configuration
per application type.
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: BackupClassSpec defines the desired state of a BackupClass.
properties:
strategies:
description: Strategies is a list of backup strategies, each matching
a specific application type.
items:
description: BackupClassStrategy defines a backup strategy for a
specific application type.
properties:
application:
description: Application specifies which application types this
strategy applies to.
properties:
apiGroup:
description: |-
APIGroup is the API group of the application.
If not specified, defaults to "apps.cozystack.io".
type: string
kind:
description: Kind is the kind of the application (e.g.,
VirtualMachine, MariaDB).
type: string
required:
- kind
type: object
parameters:
additionalProperties:
type: string
description: |-
Parameters holds strategy-specific and storage-specific parameters.
Common parameters include:
- backupStorageLocationName: Name of Velero BackupStorageLocation
SECURITY: parameter values MUST NOT contain credentials, access keys,
passwords, or any other secret material. The CNPG driver persists this
map verbatim into Backup.status.underlyingResources at backup time so
that restore-time template rendering reproduces the exact values used
at backup time; that status field is tenant-readable and replicated
through every Backup artifact derived from a strategy. Route credentials
through the Secret references on the strategy template instead
(e.g. CNPG's barmanObjectStore.s3Credentials.secretRef and endpointCA).
type: object
strategyRef:
description: StrategyRef references the driver-specific BackupStrategy
(e.g., Velero).
properties:
apiGroup:
description: |-
APIGroup is the group for the resource being referenced.
If APIGroup is not specified, the specified Kind must be in the core API group.
For any other third-party types, APIGroup is required.
type: string
kind:
description: Kind is the type of resource being referenced
type: string
name:
description: Name is the name of resource being referenced
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
required:
- application
- strategyRef
type: object
type: array
required:
- strategies
type: object
status:
description: BackupClassStatus defines the observed state of a BackupClass.
properties:
conditions:
description: Conditions represents the latest available observations
of a BackupClass's state.
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}