Mission Control Custom Resource Definition (CRD)
medusa.k8ssandra.io/v1alpha1
Resource Types:
MedusaBackupJob
MedusaBackupJob is the Schema for the medusabackupjobs API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaBackupJob |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaBackupJobSpec defines the desired state of MedusaBackupJob |
false |
|
object |
MedusaBackupJobStatus defines the observed state of MedusaBackupJob |
false |
MedusaBackupJob.spec
MedusaBackupJobSpec defines the desired state of MedusaBackupJob
Name | Type | Description | Required |
---|---|---|---|
cassandraDatacenter |
string |
The name of the CassandraDatacenter to back up |
true |
backupType |
enum |
The type of the backup: "full" or "differential"
|
false |
MedusaBackup
MedusaBackup is the Schema for the medusabackups API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaBackup |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaBackupSpec defines the desired state of MedusaBackup |
false |
|
object |
MedusaBackupStatus defines the observed state of MedusaBackup |
false |
MedusaBackup.spec
MedusaBackupSpec defines the desired state of MedusaBackup
Name | Type | Description | Required |
---|---|---|---|
cassandraDatacenter |
string |
The name of the CassandraDatacenter to back up |
true |
backupType |
enum |
The type of the backup: "full" or "differential"
|
false |
MedusaBackup.status
MedusaBackupStatus defines the observed state of MedusaBackup
Name | Type | Description | Required |
---|---|---|---|
finishTime |
string |
|
false |
finishedNodes |
integer |
|
false |
[]object |
false |
||
startTime |
string |
|
false |
status |
string |
false |
|
totalFiles |
integer |
|
false |
totalNodes |
integer |
|
false |
totalSize |
string |
false |
MedusaBackupSchedule
MedusaBackupSchedule is the Schema for the medusabackupschedules API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaBackupSchedule |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaBackupScheduleSpec defines the desired state of MedusaBackupSchedule |
false |
|
object |
MedusaBackupScheduleStatus defines the observed state of MedusaBackupSchedule |
false |
MedusaBackupSchedule.spec
MedusaBackupScheduleSpec defines the desired state of MedusaBackupSchedule
Name | Type | Description | Required |
---|---|---|---|
object |
BackupSpec defines the MedusaBackup to be created for this job |
true |
|
cronSchedule |
string |
CronSchedule is a cronjob format schedule for backups. Overrides any easier methods of defining the schedule |
true |
concurrencyPolicy |
string |
Specifics if this backup task can be run concurrently with other active backup tasks. Valid values are: - "Allow": allows multiple Tasks to run concurrently on Cassandra cluster - "Forbid" (default): only a single task is executed at once The "Allow" property is only valid if all the other active Tasks have "Allow" as well. |
false |
disabled |
boolean |
Disabled if set ensures this job is not scheduling anything |
false |
operationType |
enum |
Specifies the type of operation to be performed
|
false |
MedusaBackupSchedule.spec.backupSpec
BackupSpec defines the MedusaBackup to be created for this job
Name | Type | Description | Required |
---|---|---|---|
cassandraDatacenter |
string |
The name of the CassandraDatacenter to back up |
true |
backupType |
enum |
The type of the backup: "full" or "differential"
|
false |
MedusaBackupSchedule.status
MedusaBackupScheduleStatus defines the observed state of MedusaBackupSchedule
Name | Type | Description | Required |
---|---|---|---|
lastExecution |
string |
LastExecution tells when the backup was last time taken. If empty, the backup has never been taken
|
false |
nextSchedule |
string |
NextSchedule indicates when the next backup is going to be done
|
false |
MedusaConfiguration
MedusaConfiguration is the Schema for the medusaconfigurations API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaConfiguration |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaConfigurationSpec defines the desired state of MedusaConfiguration |
false |
|
object |
MedusaConfigurationStatus defines the observed state of MedusaConfiguration |
false |
MedusaConfiguration.spec
MedusaConfigurationSpec defines the desired state of MedusaConfiguration
Name | Type | Description | Required |
---|---|---|---|
object |
StorageProperties defines the storage backend settings to use for the backups. |
false |
MedusaConfiguration.spec.storageProperties
StorageProperties defines the storage backend settings to use for the backups.
Name | Type | Description | Required |
---|---|---|---|
apiProfile |
string |
AWS Profile to use for authentication. |
false |
backupGracePeriodInDays |
integer |
Age after which orphan sstables can be deleted from the storage backend. Protects from race conditions between purge and ongoing backups. Defaults to 10 days. |
false |
bucketName |
string |
The name of the bucket to use for the backups. |
false |
concurrentTransfers |
integer |
Number of concurrent uploads. Helps maximizing the speed of uploads but puts more pressure on the network. Defaults to 0.
|
false |
credentialsType |
enum |
Type of credentials to use for authentication. Can be "role-based", "credential-based" or empty.
|
false |
host |
string |
Host to connect to for the storage backend. |
false |
maxBackupAge |
integer |
Maximum backup age that the purge process should observe.
|
false |
maxBackupCount |
integer |
Maximum number of backups to keep (used by the purge process). Default is unlimited.
|
false |
multiPartUploadThreshold |
integer |
File size over which cloud specific cli tools are used for transfer. Defaults to 100 MB.
|
false |
object |
Pod storage settings for the local storage provider |
false |
|
port |
integer |
Port to connect to for the storage backend. |
false |
prefix |
string |
Name of the top level folder in the backup bucket. If empty, the cluster name will be used. |
false |
region |
string |
Region of the storage bucket. Defaults to "default". |
false |
secure |
boolean |
Whether to use SSL for the storage backend. |
false |
sslVerify |
boolean |
When using SSL, whether to also verify the certificate. |
false |
storageProvider |
enum |
The storage backend to use for the backups.
|
false |
object |
Kubernetes Secret that stores the key file for the storage provider’s API. If using 'local' storage, this value is ignored. |
false |
|
transferMaxBandwidth |
string |
Max upload bandwidth in MB/s. Defaults to 50 MB/s.
|
false |
MedusaConfiguration.spec.storageProperties.podStorage
Pod storage settings for the local storage provider
Name | Type | Description | Required |
---|---|---|---|
accessModes |
[]string |
Pod local storage access modes |
false |
size |
int or string |
Size of the pod’s storage in bytes. Defaults to 10 GB.
|
false |
storageClassName |
string |
Storage class name to use for the pod’s storage. |
false |
MedusaConfiguration.spec.storageProperties.storageSecretRef
Kubernetes Secret that stores the key file for the storage provider’s API. If using 'local' storage, this value is ignored.
Name | Type | Description | Required |
---|---|---|---|
name |
string |
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
false |
MedusaConfiguration.status
MedusaConfigurationStatus defines the observed state of MedusaConfiguration
Name | Type | Description | Required |
---|---|---|---|
[]object |
false |
MedusaConfiguration.status.conditions[index]
Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
// other fields }
Name | Type | Description | Required |
---|---|---|---|
lastTransitionTime |
string |
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.
|
true |
message |
string |
message is a human readable message indicating details about the transition. This may be an empty string. |
true |
reason |
string |
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. |
true |
status |
enum |
status of the condition, one of True, False, Unknown.
|
true |
type |
string |
type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) |
true |
observedGeneration |
integer |
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.
|
false |
MedusaRestoreJob
MedusaRestoreJob is the Schema for the medusarestorejobs API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaRestoreJob |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaRestoreJobSpec defines the desired state of MedusaRestoreJob |
false |
|
object |
MedusaRestoreJobStatus defines the observed state of MedusaRestoreJob |
false |
MedusaRestoreJob.spec
MedusaRestoreJobSpec defines the desired state of MedusaRestoreJob
Name | Type | Description | Required |
---|---|---|---|
backup |
string |
The name of the MedusaBackup to restore. |
true |
cassandraDatacenter |
string |
Name of the Cassandra datacenter to perform the restore on. |
true |
MedusaRestoreJob.status
MedusaRestoreJobStatus defines the observed state of MedusaRestoreJob
Name | Type | Description | Required |
---|---|---|---|
restoreKey |
string |
A unique key that identifies the restore operation. |
true |
datacenterStopped |
string |
|
false |
failed |
[]string |
false |
|
finishTime |
string |
|
false |
finished |
[]string |
false |
|
inProgress |
[]string |
false |
|
message |
string |
Message gives the reason why restore operation failed |
false |
object |
Mapping between source and target nodes for a restore |
false |
|
restorePrepared |
boolean |
false |
|
startTime |
string |
|
false |
MedusaRestoreJob.status.restoreMapping
Mapping between source and target nodes for a restore
Name | Type | Description | Required |
---|---|---|---|
map[string]object |
Mapping between source and target nodes for a restore |
false |
|
in_place |
boolean |
Whether the restore is in-place or not |
false |
Medusa
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
Medusa |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaSpec defines the desired state of Medusa. |
false |
Medusa.spec
MedusaSpec defines the desired state of Medusa.
Name | Type | Description | Required |
---|---|---|---|
cassandraUserSecretRef |
string |
Defines the username and password that Medusa will use to authenticate CQL connections to Cassandra clusters. These credentials will be automatically turned into CQL roles by cass-operator when bootstrapping the datacenter, then passed to the Medusa instances, so that it can authenticate against nodes in the datacenter using CQL. The secret must be in the same namespace as Cassandra and must contain two keys: "username" and "password". |
false |
object |
MedusaContainerImage is the image characteristics to use for Medusa containers. Leave nil to use a default image. |
false |
|
object |
SecurityContext applied to the Medusa containers. |
false |
|
object |
Provides all storage backend related properties for backups. |
false |
Medusa.spec.containerImage
MedusaContainerImage is the image characteristics to use for Medusa containers. Leave nil to use a default image.
Name | Type | Description | Required |
---|---|---|---|
repository |
string |
|
true |
object |
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. |
false |
|
pullPolicy |
string |
PullPolicy describes a policy for if/when to pull a container image
|
false |
registry |
string |
|
false |
tag |
string |
|
false |
Medusa.spec.containerImage.imagePullSecret
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
Name | Type | Description | Required |
---|---|---|---|
name |
string |
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? |
false |
Medusa.spec.securityContext
SecurityContext applied to the Medusa containers.
Name | Type | Description | Required |
---|---|---|---|
allowPrivilegeEscalation |
boolean |
AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN |
false |
object |
The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. |
false |
|
privileged |
boolean |
Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. |
false |
procMount |
string |
procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. |
false |
readOnlyRootFilesystem |
boolean |
Whether this container has a read-only root filesystem. Default is false. |
false |
runAsGroup |
integer |
The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
|
false |
runAsNonRoot |
boolean |
Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. |
false |
runAsUser |
integer |
The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
|
false |
object |
The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. |
false |
|
object |
The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. |
false |
|
object |
The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. |
false |
Medusa.spec.securityContext.capabilities
The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.
Name | Type | Description | Required |
---|---|---|---|
add |
[]string |
Added capabilities |
false |
drop |
[]string |
Removed capabilities |
false |
Medusa.spec.securityContext.seLinuxOptions
The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
Name | Type | Description | Required |
---|---|---|---|
level |
string |
Level is SELinux level label that applies to the container. |
false |
role |
string |
Role is a SELinux role label that applies to the container. |
false |
type |
string |
Type is a SELinux type label that applies to the container. |
false |
user |
string |
User is a SELinux user label that applies to the container. |
false |
Medusa.spec.securityContext.seccompProfile
The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options.
Name | Type | Description | Required |
---|---|---|---|
type |
string |
type indicates which kind of seccomp profile will be applied. Valid options are: Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. |
true |
localhostProfile |
string |
localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet’s configured seccomp profile location. Must only be set if type is "Localhost". |
false |
Medusa.spec.securityContext.windowsOptions
The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
Name | Type | Description | Required |
---|---|---|---|
gmsaCredentialSpec |
string |
GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. |
false |
gmsaCredentialSpecName |
string |
GMSACredentialSpecName is the name of the GMSA credential spec to use. |
false |
hostProcess |
boolean |
HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod’s containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. |
false |
runAsUserName |
string |
The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. |
false |
Medusa.spec.storageProperties
Provides all storage backend related properties for backups.
Name | Type | Description | Required |
---|---|---|---|
apiProfile |
string |
AWS Profile to use for authentication. |
false |
backupGracePeriodInDays |
integer |
Age after which orphan sstables can be deleted from the storage backend. Protects from race conditions between purge and ongoing backups. Defaults to 10 days. |
false |
bucketName |
string |
The name of the bucket to use for the backups. |
false |
concurrentTransfers |
integer |
Number of concurrent uploads. Helps maximizing the speed of uploads but puts more pressure on the network. Defaults to 1.
|
false |
host |
string |
Host to connect to for the storage backend. |
false |
maxBackupAge |
integer |
Maximum backup age that the purge process should observe.
|
false |
maxBackupCount |
integer |
Maximum number of backups to keep (used by the purge process). Default is unlimited.
|
false |
multiPartUploadThreshold |
integer |
File size over which cloud specific cli tools are used for transfer. Defaults to 100 MB.
|
false |
port |
integer |
Port to connect to for the storage backend. |
false |
prefix |
string |
Name of the top level folder in the backup bucket. If empty, the cluster name will be used. |
false |
region |
string |
Region of the storage bucket. Defaults to "default". |
false |
secure |
boolean |
Whether to use SSL for the storage backend. |
false |
storageProvider |
enum |
The storage backend to use for the backups.
|
false |
storageSecretRef |
string |
Kubernetes Secret that stores the key file for the storage provider’s API. If using 'local' storage, this value is ignored. |
false |
transferMaxBandwidth |
string |
Max upload bandwidth in MB/s. Defaults to 50 MB/s.
|
false |
MedusaTask
MedusaTask is the Schema for the MedusaTasks API
Name | Type | Description | Required |
---|---|---|---|
apiVersion |
string |
medusa.k8ssandra.io.v1alpha1 |
true |
kind |
string |
MedusaTask |
true |
object |
Refer to the Kubernetes API documentation for the fields of the |
true |
|
object |
MedusaTaskSpec defines the desired state of MedusaTask |
false |
|
object |
MedusaTaskStatus defines the observed state of MedusaTask |
false |
MedusaTask.spec
MedusaTaskSpec defines the desired state of MedusaTask
Name | Type | Description | Required |
---|---|---|---|
cassandraDatacenter |
string |
The name of the CassandraDatacenter to run the task on |
true |
backupName |
string |
Name of the backup. Will be necessary for operations such as verify or status. |
false |
operation |
enum |
Requested operation to perform.
|
false |
restoreKey |
string |
Restore key to use for the prepare_restore operation. |
false |
MedusaTask.status
MedusaTaskStatus defines the observed state of MedusaTask
Name | Type | Description | Required |
---|---|---|---|
failed |
[]string |
false |
|
finishTime |
string |
|
false |
[]object |
false |
||
inProgress |
[]string |
false |
|
startTime |
string |
|
false |
MedusaTask.status.finished[index]
Name | Type | Description | Required |
---|---|---|---|
nbBackupsPurged |
integer |
Number of backups that were purged. Only populated for purge tasks. |
false |
nbObjectsPurged |
integer |
Number of objects/files that were purged. Only populated for purge tasks. |
false |
podName |
string |
Name of the pod that ran the task. Always populated. |
false |
totalObjectsWithinGcGrace |
integer |
Number of objects that couldn’t be deleted due to Medusa GC grace. Only populated for purge tasks. |
false |
totalPurgedSize |
integer |
Total size of purged files. Only populated for purge tasks. |
false |