CephFilesystem
ceph.rook.io / v1
apiVersion: ceph.rook.io/v1
kind: CephFilesystem
metadata:
name: example
apiVersion
string
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
kind
string
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
metadata
object required
spec object required
FilesystemSpec represents the spec of a file system
dataPools []object required
The data pool settings, with optional predefined pool name.
application
string
The application name to set on the pool. Only expected to be set for rgw pools.
compressionMode
string
DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
Do NOT set a default value for kubebuilder as this will override the Parameters
enum:
none, passive, aggressive, force,
crushRoot
string
The root of the crush hierarchy utilized by the pool
deviceClass
string
The device class the OSD should set to for use in the pool
enableCrushUpdates
boolean
Allow rook operator to change the pool CRUSH tunables once the pool is created
enableRBDStats
boolean
EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
erasureCoded object
The erasure code settings
algorithm
string
The algorithm for erasure coding.
If absent, defaults to the plugin specified in osd_pool_default_erasure_code_profile.
enum:
isa, jerasure
codingChunks
integer required
Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
minimum:
0
dataChunks
integer required
Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
The number of chunks required to recover an object when any single OSD is lost is the same
as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
minimum:
0
failureDomain
string
The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map
mirroring object
The mirroring settings
enabled
boolean
Enabled whether this pool is mirrored or not
mode
string
Mode is the mirroring mode: pool, image or init-only.
enum:
pool, image, init-onlypeers object
Peers represents the peers spec
secretNames
[]string
SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
snapshotSchedules []object
SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
interval
string
Interval represent the periodicity of the snapshot.
path
string
Path is the path to snapshot, only valid for CephFS
startTime
string
StartTime indicates when to start the snapshot
name
string
Name of the pool
parameters
object
Parameters is a list of properties to enable on a given pool
quotas object
The quota settings
maxBytes
integer
MaxBytes represents the quota in bytes
Deprecated in favor of MaxSize
format:
int64
maxObjects
integer
MaxObjects represents the quota in objects
format:
int64
maxSize
string
MaxSize represents the quota in bytes as a string
pattern:
^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$replicated object
The replication settings
hybridStorage object
HybridStorage represents hybrid storage tier settings
primaryDeviceClass
string required
PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
minLength:
1
secondaryDeviceClass
string required
SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
minLength:
1
replicasPerFailureDomain
integer
ReplicasPerFailureDomain the number of replica in the specified failure domain
minimum:
1
requireSafeReplicaSize
boolean
RequireSafeReplicaSize if false allows you to set replica 1
size
integer required
Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
minimum:
0
subFailureDomain
string
SubFailureDomain the name of the sub-failure domain
targetSizeRatio
number
TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
minimum:
0statusCheck object
The mirroring statusCheck
mirror object
HealthCheckSpec represents the health check of an object store bucket
disabled
boolean
interval
string
Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
timeout
string
metadataPool object required
The metadata pool settings
application
string
The application name to set on the pool. Only expected to be set for rgw pools.
compressionMode
string
DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
Do NOT set a default value for kubebuilder as this will override the Parameters
enum:
none, passive, aggressive, force,
crushRoot
string
The root of the crush hierarchy utilized by the pool
deviceClass
string
The device class the OSD should set to for use in the pool
enableCrushUpdates
boolean
Allow rook operator to change the pool CRUSH tunables once the pool is created
enableRBDStats
boolean
EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
erasureCoded object
The erasure code settings
algorithm
string
The algorithm for erasure coding.
If absent, defaults to the plugin specified in osd_pool_default_erasure_code_profile.
enum:
isa, jerasure
codingChunks
integer required
Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
minimum:
0
dataChunks
integer required
Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
The number of chunks required to recover an object when any single OSD is lost is the same
as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
minimum:
0
failureDomain
string
The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map
mirroring object
The mirroring settings
enabled
boolean
Enabled whether this pool is mirrored or not
mode
string
Mode is the mirroring mode: pool, image or init-only.
enum:
pool, image, init-onlypeers object
Peers represents the peers spec
secretNames
[]string
SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
snapshotSchedules []object
SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
interval
string
Interval represent the periodicity of the snapshot.
path
string
Path is the path to snapshot, only valid for CephFS
startTime
string
StartTime indicates when to start the snapshot
name
string
Name of the pool
parameters
object
Parameters is a list of properties to enable on a given pool
quotas object
The quota settings
maxBytes
integer
MaxBytes represents the quota in bytes
Deprecated in favor of MaxSize
format:
int64
maxObjects
integer
MaxObjects represents the quota in objects
format:
int64
maxSize
string
MaxSize represents the quota in bytes as a string
pattern:
^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$replicated object
The replication settings
hybridStorage object
HybridStorage represents hybrid storage tier settings
primaryDeviceClass
string required
PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
minLength:
1
secondaryDeviceClass
string required
SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
minLength:
1
replicasPerFailureDomain
integer
ReplicasPerFailureDomain the number of replica in the specified failure domain
minimum:
1
requireSafeReplicaSize
boolean
RequireSafeReplicaSize if false allows you to set replica 1
size
integer required
Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
minimum:
0
subFailureDomain
string
SubFailureDomain the name of the sub-failure domain
targetSizeRatio
number
TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
minimum:
0statusCheck object
The mirroring statusCheck
mirror object
HealthCheckSpec represents the health check of an object store bucket
disabled
boolean
interval
string
Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
timeout
string
metadataServer object required
The mds pod info
activeCount
integer required
The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
format:
int32minimum:
1maximum:
50
activeStandby
boolean
Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover.
If false, standbys will still be available, but will not have a warm metadata cache.
annotations
object
The annotations-related configuration to add/set on each Pod related object.
cacheMemoryLimitFactor
number
CacheMemoryLimitFactor is the factor applied to the memory limit to determine the MDS cache memory limit.
MDS cache memory limit should be set to 50-60% of RAM reserved for the MDS container.
MDS uses approximately 125% of the value of mds_cache_memory_limit in RAM.
This factor is applied when resources.limits.memory is set.
minimum:
0maximum:
1
cacheMemoryRequestFactor
number
CacheMemoryRequestFactor is the factor applied to the memory request to determine the MDS cache memory limit.
This factor is applied when resources.requests.memory is set and resources.limits.memory is not set.
minimum:
0maximum:
1
labels
object
The labels-related configuration to add/set on each Pod related object.
livenessProbe object
ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
disabled
boolean
Disabled determines whether probe is disable or not
probe object
Probe describes a health check to be performed against a container to determine whether it is
alive or ready to receive traffic.
exec object
Exec specifies a command to execute in the container.
command
[]string
Command is the command line to execute inside the container, the working directory for the
command is root ('/') in the container's filesystem. The command is simply exec'd, it is
not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
a shell, you need to explicitly call out to that shell.
Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
failureThreshold
integer
Minimum consecutive failures for the probe to be considered failed after having succeeded.
Defaults to 3. Minimum value is 1.
format:
int32grpc object
GRPC specifies a GRPC HealthCheckRequest.
port
integer required
Port number of the gRPC service. Number must be in the range 1 to 65535.
format:
int32
service
string
Service is the name of the service to place in the gRPC HealthCheckRequest
(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
If this is not specified, the default behavior is defined by gRPC.
httpGet object
HTTPGet specifies an HTTP GET request to perform.
host
string
Host name to connect to, defaults to the pod IP. You probably want to set
"Host" in httpHeaders instead.
httpHeaders []object
Custom headers to set in the request. HTTP allows repeated headers.
name
string required
The header field name.
This will be canonicalized upon output, so case-variant names will be understood as the same header.
value
string required
The header field value
path
string
Path to access on the HTTP server.
port
string | integer required
Name or number of the port to access on the container.
Number must be in the range 1 to 65535.
Name must be an IANA_SVC_NAME.
scheme
string
Scheme to use for connecting to the host.
Defaults to HTTP.
initialDelaySeconds
integer
Number of seconds after the container has started before liveness probes are initiated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
format:
int32
periodSeconds
integer
How often (in seconds) to perform the probe.
Default to 10 seconds. Minimum value is 1.
format:
int32
successThreshold
integer
Minimum consecutive successes for the probe to be considered successful after having failed.
Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
format:
int32tcpSocket object
TCPSocket specifies a connection to a TCP port.
host
string
Optional: Host name to connect to, defaults to the pod IP.
port
string | integer required
Number or name of the port to access on the container.
Number must be in the range 1 to 65535.
Name must be an IANA_SVC_NAME.
terminationGracePeriodSeconds
integer
format:
int64
timeoutSeconds
integer
Number of seconds after which the probe times out.
Defaults to 1 second. Minimum value is 1.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
format:
int32placement object
nodeAffinity object
preferredDuringSchedulingIgnoredDuringExecution []object
preference object required
matchExpressions []object
key
string required
operator
string required
values
[]string
matchFields []object
key
string required
operator
string required
values
[]string
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
nodeSelectorTerms []object required
matchExpressions []object
key
string required
operator
string required
values
[]string
matchFields []object
key
string required
operator
string required
values
[]string
podAffinity object
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
labelSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
matchLabelKeys
[]string
mismatchLabelKeys
[]string
namespaceSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
namespaces
[]string
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
matchLabelKeys
[]string
mismatchLabelKeys
[]string
namespaceSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
namespaces
[]string
topologyKey
string required
podAntiAffinity object
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
labelSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
matchLabelKeys
[]string
mismatchLabelKeys
[]string
namespaceSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
namespaces
[]string
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
matchLabelKeys
[]string
mismatchLabelKeys
[]string
namespaceSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
namespaces
[]string
topologyKey
string required
tolerations []object
effect
string
key
string
operator
string
tolerationSeconds
integer
format:
int64
value
string
topologySpreadConstraints []object
labelSelector object
matchExpressions []object
key
string required
operator
string required
values
[]string
matchLabels
object
matchLabelKeys
[]string
maxSkew
integer required
format:
int32
minDomains
integer
format:
int32
nodeAffinityPolicy
string
nodeTaintsPolicy
string
topologyKey
string required
whenUnsatisfiable
string required
priorityClassName
string
PriorityClassName sets priority classes on components
resources object
The resource requirements for the mds pods
claims []object
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This field depends on the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
name
string required
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
request
string
Request is the name chosen for a request in the referenced claim.
If empty, everything from the claim is made available, otherwise
only the result of this request.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
startupProbe object
ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
disabled
boolean
Disabled determines whether probe is disable or not
probe object
Probe describes a health check to be performed against a container to determine whether it is
alive or ready to receive traffic.
exec object
Exec specifies a command to execute in the container.
command
[]string
Command is the command line to execute inside the container, the working directory for the
command is root ('/') in the container's filesystem. The command is simply exec'd, it is
not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
a shell, you need to explicitly call out to that shell.
Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
failureThreshold
integer
Minimum consecutive failures for the probe to be considered failed after having succeeded.
Defaults to 3. Minimum value is 1.
format:
int32grpc object
GRPC specifies a GRPC HealthCheckRequest.
port
integer required
Port number of the gRPC service. Number must be in the range 1 to 65535.
format:
int32
service
string
Service is the name of the service to place in the gRPC HealthCheckRequest
(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
If this is not specified, the default behavior is defined by gRPC.
httpGet object
HTTPGet specifies an HTTP GET request to perform.
host
string
Host name to connect to, defaults to the pod IP. You probably want to set
"Host" in httpHeaders instead.
httpHeaders []object
Custom headers to set in the request. HTTP allows repeated headers.
name
string required
The header field name.
This will be canonicalized upon output, so case-variant names will be understood as the same header.
value
string required
The header field value
path
string
Path to access on the HTTP server.
port
string | integer required
Name or number of the port to access on the container.
Number must be in the range 1 to 65535.
Name must be an IANA_SVC_NAME.
scheme
string
Scheme to use for connecting to the host.
Defaults to HTTP.
initialDelaySeconds
integer
Number of seconds after the container has started before liveness probes are initiated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
format:
int32
periodSeconds
integer
How often (in seconds) to perform the probe.
Default to 10 seconds. Minimum value is 1.
format:
int32
successThreshold
integer
Minimum consecutive successes for the probe to be considered successful after having failed.
Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
format:
int32tcpSocket object
TCPSocket specifies a connection to a TCP port.
host
string
Optional: Host name to connect to, defaults to the pod IP.
port
string | integer required
Number or name of the port to access on the container.
Number must be in the range 1 to 65535.
Name must be an IANA_SVC_NAME.
terminationGracePeriodSeconds
integer
format:
int64
timeoutSeconds
integer
Number of seconds after which the probe times out.
Defaults to 1 second. Minimum value is 1.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
format:
int32mirroring object
The mirroring settings
enabled
boolean
Enabled whether this filesystem is mirrored or not
peers object
Peers represents the peers spec
secretNames
[]string
SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
snapshotRetention []object
Retention is the retention policy for a snapshot schedule
One path has exactly one retention policy.
A policy can however contain multiple count-time period pairs in order to specify complex retention policies
duration
string
Duration represents the retention duration for a snapshot
path
string
Path is the path to snapshot
snapshotSchedules []object
SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
interval
string
Interval represent the periodicity of the snapshot.
path
string
Path is the path to snapshot, only valid for CephFS
startTime
string
StartTime indicates when to start the snapshot
preserveFilesystemOnDelete
boolean
Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
preservePoolNames
boolean
Preserve pool names as specified
preservePoolsOnDelete
boolean
Preserve pools on filesystem deletion
statusCheck object
The mirroring statusCheck
mirror object
HealthCheckSpec represents the health check of an object store bucket
disabled
boolean
interval
string
Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
timeout
string
status object
CephFilesystemStatus represents the status of a Ceph Filesystem
cephx object
daemon object
Daemon shows the CephX key status for local Ceph daemons associated with this resources.
keyCephVersion
string
KeyCephVersion reports the Ceph version that created the current generation's keys. This is
same string format as reported by `CephCluster.status.version.version` to allow them to be
compared. E.g., `20.2.0-0`.
For all newly-created resources, this field set to the version of Ceph that created the key.
The special value "Uninitialized" indicates that keys are being created for the first time.
An empty string indicates that the version is unknown, as expected in brownfield deployments.
keyGeneration
integer
KeyGeneration represents the CephX key generation for the last successful reconcile.
For all newly-created resources, this field is set to `1`.
When keys are rotated due to any rotation policy, the generation is incremented or updated to
the configured policy generation.
Generation `0` indicates that keys existed prior to the implementation of key tracking.
format:
int32conditions []object
lastHeartbeatTime
string
format:
date-time
lastTransitionTime
string
format:
date-time
message
string
reason
string
ConditionReason is a reason for a condition
status
string
type
string
ConditionType represent a resource's status
info
object
Use only info and put mirroringStatus in it?
mirroringStatus object
MirroringStatus is the filesystem mirroring status
daemonsStatus []object
PoolMirroringStatus is the mirroring status of a filesystem
daemon_id
integer
DaemonID is the cephfs-mirror name
filesystems []object
Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
directory_count
integer
DirectoryCount is the number of directories in the filesystem
filesystem_id
integer
FilesystemID is the filesystem identifier
name
string
Name is name of the filesystem
peers []object
Peers represents the mirroring peers
remote object
Remote are the remote cluster information
client_name
string
ClientName is cephx name
cluster_name
string
ClusterName is the name of the cluster
fs_name
string
FsName is the filesystem name
stats object
Stats are the stat a peer mirror
failure_count
integer
FailureCount is the number of mirroring failure
recovery_count
integer
RecoveryCount is the number of recovery attempted after failures
uuid
string
UUID is the peer unique identifier
details
string
Details contains potential status errors
lastChanged
string
LastChanged is the last time time the status last changed
lastChecked
string
LastChecked is the last time time the status was checked
observedGeneration
integer
ObservedGeneration is the latest generation observed by the controller.
format:
int64
phase
string
ConditionType represent a resource's status
snapshotScheduleStatus object
FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
details
string
Details contains potential status errors
lastChanged
string
LastChanged is the last time time the status last changed
lastChecked
string
LastChecked is the last time time the status was checked
snapshotSchedules []object
SnapshotSchedules is the list of snapshots scheduled
fs
string
Fs is the name of the Ceph Filesystem
path
string
Path is the path on the filesystem
rel_path
string
retention object
FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
active
boolean
Active is whether the scheduled is active or not
created
string
Created is when the snapshot schedule was created
created_count
integer
CreatedCount is total amount of snapshots
first
string
First is when the first snapshot schedule was taken
last
string
Last is when the last snapshot schedule was taken
last_pruned
string
LastPruned is when the last snapshot schedule was pruned
pruned_count
integer
PrunedCount is total amount of pruned snapshots
start
string
Start is when the snapshot schedule starts
schedule
string
subvol
string
Subvol is the name of the sub volume
No matches. Try .spec.dataPools for an exact path