Initial release
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephblockpoolradosnamespaces.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephBlockPoolRadosNamespace
|
||||
listKind: CephBlockPoolRadosNamespaceList
|
||||
plural: cephblockpoolradosnamespaces
|
||||
singular: cephblockpoolradosnamespace
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
|
||||
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: Spec represents the specification of a Ceph BlockPool Rados Namespace
|
||||
properties:
|
||||
blockPoolName:
|
||||
description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR.
|
||||
type: string
|
||||
x-kubernetes-validations:
|
||||
- message: blockPoolName is immutable
|
||||
rule: self == oldSelf
|
||||
name:
|
||||
description: The name of the CephBlockPoolRadosNamespaceSpec namespace. If not set, the default is the name of the CR.
|
||||
type: string
|
||||
x-kubernetes-validations:
|
||||
- message: name is immutable
|
||||
rule: self == oldSelf
|
||||
required:
|
||||
- blockPoolName
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of a CephBlockPool Rados Namespace
|
||||
properties:
|
||||
info:
|
||||
additionalProperties:
|
||||
type: string
|
||||
nullable: true
|
||||
type: object
|
||||
phase:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,381 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephblockpools.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephBlockPool
|
||||
listKind: CephBlockPoolList
|
||||
plural: cephblockpools
|
||||
singular: cephblockpool
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephBlockPool represents a Ceph Storage Pool
|
||||
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: NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.
|
||||
properties:
|
||||
compressionMode:
|
||||
description: '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
|
||||
- ""
|
||||
nullable: true
|
||||
type: string
|
||||
crushRoot:
|
||||
description: The root of the crush hierarchy utilized by the pool
|
||||
nullable: true
|
||||
type: string
|
||||
deviceClass:
|
||||
description: The device class the OSD should set to for use in the pool
|
||||
nullable: true
|
||||
type: string
|
||||
enableRBDStats:
|
||||
description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
|
||||
type: boolean
|
||||
erasureCoded:
|
||||
description: The erasure code settings
|
||||
properties:
|
||||
algorithm:
|
||||
description: The algorithm for erasure coding
|
||||
type: string
|
||||
codingChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
dataChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
required:
|
||||
- codingChunks
|
||||
- dataChunks
|
||||
type: object
|
||||
failureDomain:
|
||||
description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
|
||||
type: string
|
||||
mirroring:
|
||||
description: The mirroring settings
|
||||
properties:
|
||||
enabled:
|
||||
description: Enabled whether this pool is mirrored or not
|
||||
type: boolean
|
||||
mode:
|
||||
description: 'Mode is the mirroring mode: either pool or image'
|
||||
type: string
|
||||
peers:
|
||||
description: Peers represents the peers spec
|
||||
nullable: true
|
||||
properties:
|
||||
secretNames:
|
||||
description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
snapshotSchedules:
|
||||
description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
|
||||
items:
|
||||
description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
|
||||
properties:
|
||||
interval:
|
||||
description: Interval represent the periodicity of the snapshot.
|
||||
type: string
|
||||
path:
|
||||
description: Path is the path to snapshot, only valid for CephFS
|
||||
type: string
|
||||
startTime:
|
||||
description: StartTime indicates when to start the snapshot
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
name:
|
||||
description: The desired name of the pool if different from the CephBlockPool CR name.
|
||||
enum:
|
||||
- device_health_metrics
|
||||
- .nfs
|
||||
- .mgr
|
||||
type: string
|
||||
parameters:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Parameters is a list of properties to enable on a given pool
|
||||
nullable: true
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
quotas:
|
||||
description: The quota settings
|
||||
nullable: true
|
||||
properties:
|
||||
maxBytes:
|
||||
description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
|
||||
format: int64
|
||||
type: integer
|
||||
maxObjects:
|
||||
description: MaxObjects represents the quota in objects
|
||||
format: int64
|
||||
type: integer
|
||||
maxSize:
|
||||
description: MaxSize represents the quota in bytes as a string
|
||||
pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
|
||||
type: string
|
||||
type: object
|
||||
replicated:
|
||||
description: The replication settings
|
||||
properties:
|
||||
hybridStorage:
|
||||
description: HybridStorage represents hybrid storage tier settings
|
||||
nullable: true
|
||||
properties:
|
||||
primaryDeviceClass:
|
||||
description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
|
||||
minLength: 1
|
||||
type: string
|
||||
secondaryDeviceClass:
|
||||
description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- primaryDeviceClass
|
||||
- secondaryDeviceClass
|
||||
type: object
|
||||
replicasPerFailureDomain:
|
||||
description: ReplicasPerFailureDomain the number of replica in the specified failure domain
|
||||
minimum: 1
|
||||
type: integer
|
||||
requireSafeReplicaSize:
|
||||
description: RequireSafeReplicaSize if false allows you to set replica 1
|
||||
type: boolean
|
||||
size:
|
||||
description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
|
||||
minimum: 0
|
||||
type: integer
|
||||
subFailureDomain:
|
||||
description: SubFailureDomain the name of the sub-failure domain
|
||||
type: string
|
||||
targetSizeRatio:
|
||||
description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
|
||||
type: number
|
||||
required:
|
||||
- size
|
||||
type: object
|
||||
statusCheck:
|
||||
description: The mirroring statusCheck
|
||||
properties:
|
||||
mirror:
|
||||
description: HealthCheckSpec represents the health check of an object store bucket
|
||||
nullable: true
|
||||
properties:
|
||||
disabled:
|
||||
type: boolean
|
||||
interval:
|
||||
description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
|
||||
type: string
|
||||
timeout:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: object
|
||||
status:
|
||||
description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
info:
|
||||
additionalProperties:
|
||||
type: string
|
||||
nullable: true
|
||||
type: object
|
||||
mirroringInfo:
|
||||
description: MirroringInfoSpec is the status of the pool mirroring
|
||||
properties:
|
||||
details:
|
||||
type: string
|
||||
lastChanged:
|
||||
type: string
|
||||
lastChecked:
|
||||
type: string
|
||||
mode:
|
||||
description: Mode is the mirroring mode
|
||||
type: string
|
||||
peers:
|
||||
description: Peers are the list of peer sites connected to that cluster
|
||||
items:
|
||||
description: PeersSpec contains peer details
|
||||
properties:
|
||||
client_name:
|
||||
description: ClientName is the CephX user used to connect to the peer
|
||||
type: string
|
||||
direction:
|
||||
description: Direction is the peer mirroring direction
|
||||
type: string
|
||||
mirror_uuid:
|
||||
description: MirrorUUID is the mirror UUID
|
||||
type: string
|
||||
site_name:
|
||||
description: SiteName is the current site name
|
||||
type: string
|
||||
uuid:
|
||||
description: UUID is the peer UUID
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
site_name:
|
||||
description: SiteName is the current site name
|
||||
type: string
|
||||
type: object
|
||||
mirroringStatus:
|
||||
description: MirroringStatusSpec is the status of the pool mirroring
|
||||
properties:
|
||||
details:
|
||||
description: Details contains potential status errors
|
||||
type: string
|
||||
lastChanged:
|
||||
description: LastChanged is the last time time the status last changed
|
||||
type: string
|
||||
lastChecked:
|
||||
description: LastChecked is the last time time the status was checked
|
||||
type: string
|
||||
summary:
|
||||
description: Summary is the mirroring status summary
|
||||
properties:
|
||||
daemon_health:
|
||||
description: DaemonHealth is the health of the mirroring daemon
|
||||
type: string
|
||||
health:
|
||||
description: Health is the mirroring health
|
||||
type: string
|
||||
image_health:
|
||||
description: ImageHealth is the health of the mirrored image
|
||||
type: string
|
||||
states:
|
||||
description: States is the various state for all mirrored images
|
||||
nullable: true
|
||||
properties:
|
||||
error:
|
||||
description: Error is when the mirroring state is errored
|
||||
type: integer
|
||||
replaying:
|
||||
description: Replaying is when the replay of the mirroring journal is on-going
|
||||
type: integer
|
||||
starting_replay:
|
||||
description: StartingReplay is when the replay of the mirroring journal starts
|
||||
type: integer
|
||||
stopped:
|
||||
description: Stopped is when the mirroring state is stopped
|
||||
type: integer
|
||||
stopping_replay:
|
||||
description: StopReplaying is when the replay of the mirroring journal stops
|
||||
type: integer
|
||||
syncing:
|
||||
description: Syncing is when the image is syncing
|
||||
type: integer
|
||||
unknown:
|
||||
description: Unknown is when the mirroring state is unknown
|
||||
type: integer
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
snapshotScheduleStatus:
|
||||
description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
|
||||
properties:
|
||||
details:
|
||||
description: Details contains potential status errors
|
||||
type: string
|
||||
lastChanged:
|
||||
description: LastChanged is the last time time the status last changed
|
||||
type: string
|
||||
lastChecked:
|
||||
description: LastChecked is the last time time the status was checked
|
||||
type: string
|
||||
snapshotSchedules:
|
||||
description: SnapshotSchedules is the list of snapshots scheduled
|
||||
items:
|
||||
description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
|
||||
properties:
|
||||
image:
|
||||
description: Image is the mirrored image
|
||||
type: string
|
||||
items:
|
||||
description: Items is the list schedules times for a given snapshot
|
||||
items:
|
||||
description: SnapshotSchedule is a schedule
|
||||
properties:
|
||||
interval:
|
||||
description: Interval is the interval in which snapshots will be taken
|
||||
type: string
|
||||
start_time:
|
||||
description: StartTime is the snapshot starting time
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
namespace:
|
||||
description: Namespace is the RADOS namespace the image is part of
|
||||
type: string
|
||||
pool:
|
||||
description: Pool is the pool name
|
||||
type: string
|
||||
type: object
|
||||
nullable: true
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,152 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephbucketnotifications.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephBucketNotification
|
||||
listKind: CephBucketNotificationList
|
||||
plural: cephbucketnotifications
|
||||
singular: cephbucketnotification
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephBucketNotification represents a Bucket Notifications
|
||||
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: BucketNotificationSpec represent the spec of a Bucket Notification
|
||||
properties:
|
||||
events:
|
||||
description: List of events that should trigger the notification
|
||||
items:
|
||||
description: BucketNotificationSpec represent the event type of the bucket notification
|
||||
enum:
|
||||
- s3:ObjectCreated:*
|
||||
- s3:ObjectCreated:Put
|
||||
- s3:ObjectCreated:Post
|
||||
- s3:ObjectCreated:Copy
|
||||
- s3:ObjectCreated:CompleteMultipartUpload
|
||||
- s3:ObjectRemoved:*
|
||||
- s3:ObjectRemoved:Delete
|
||||
- s3:ObjectRemoved:DeleteMarkerCreated
|
||||
type: string
|
||||
type: array
|
||||
filter:
|
||||
description: Spec of notification filter
|
||||
properties:
|
||||
keyFilters:
|
||||
description: Filters based on the object's key
|
||||
items:
|
||||
description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
|
||||
properties:
|
||||
name:
|
||||
description: Name of the filter - prefix/suffix/regex
|
||||
enum:
|
||||
- prefix
|
||||
- suffix
|
||||
- regex
|
||||
type: string
|
||||
value:
|
||||
description: Value to filter on
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
metadataFilters:
|
||||
description: Filters based on the object's metadata
|
||||
items:
|
||||
description: NotificationFilterRule represent a single rule in the Notification Filter spec
|
||||
properties:
|
||||
name:
|
||||
description: Name of the metadata or tag
|
||||
minLength: 1
|
||||
type: string
|
||||
value:
|
||||
description: Value to filter on
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
tagFilters:
|
||||
description: Filters based on the object's tags
|
||||
items:
|
||||
description: NotificationFilterRule represent a single rule in the Notification Filter spec
|
||||
properties:
|
||||
name:
|
||||
description: Name of the metadata or tag
|
||||
minLength: 1
|
||||
type: string
|
||||
value:
|
||||
description: Value to filter on
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
topic:
|
||||
description: The name of the topic associated with this notification
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- topic
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,146 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephbuckettopics.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephBucketTopic
|
||||
listKind: CephBucketTopicList
|
||||
plural: cephbuckettopics
|
||||
singular: cephbuckettopic
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
|
||||
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: BucketTopicSpec represent the spec of a Bucket Topic
|
||||
properties:
|
||||
endpoint:
|
||||
description: Contains the endpoint spec of the topic
|
||||
properties:
|
||||
amqp:
|
||||
description: Spec of AMQP endpoint
|
||||
properties:
|
||||
ackLevel:
|
||||
default: broker
|
||||
description: The ack level required for this topic (none/broker/routeable)
|
||||
enum:
|
||||
- none
|
||||
- broker
|
||||
- routeable
|
||||
type: string
|
||||
disableVerifySSL:
|
||||
description: Indicate whether the server certificate is validated by the client or not
|
||||
type: boolean
|
||||
exchange:
|
||||
description: Name of the exchange that is used to route messages based on topics
|
||||
minLength: 1
|
||||
type: string
|
||||
uri:
|
||||
description: The URI of the AMQP endpoint to push notification to
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- exchange
|
||||
- uri
|
||||
type: object
|
||||
http:
|
||||
description: Spec of HTTP endpoint
|
||||
properties:
|
||||
disableVerifySSL:
|
||||
description: Indicate whether the server certificate is validated by the client or not
|
||||
type: boolean
|
||||
sendCloudEvents:
|
||||
description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md'
|
||||
type: boolean
|
||||
uri:
|
||||
description: The URI of the HTTP endpoint to push notification to
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- uri
|
||||
type: object
|
||||
kafka:
|
||||
description: Spec of Kafka endpoint
|
||||
properties:
|
||||
ackLevel:
|
||||
default: broker
|
||||
description: The ack level required for this topic (none/broker)
|
||||
enum:
|
||||
- none
|
||||
- broker
|
||||
type: string
|
||||
disableVerifySSL:
|
||||
description: Indicate whether the server certificate is validated by the client or not
|
||||
type: boolean
|
||||
uri:
|
||||
description: The URI of the Kafka endpoint to push notification to
|
||||
minLength: 1
|
||||
type: string
|
||||
useSSL:
|
||||
description: Indicate whether to use SSL when communicating with the broker
|
||||
type: boolean
|
||||
required:
|
||||
- uri
|
||||
type: object
|
||||
type: object
|
||||
objectStoreName:
|
||||
description: The name of the object store on which to define the topic
|
||||
minLength: 1
|
||||
type: string
|
||||
objectStoreNamespace:
|
||||
description: The namespace of the object store on which to define the topic
|
||||
minLength: 1
|
||||
type: string
|
||||
opaqueData:
|
||||
description: Data which is sent in each event
|
||||
type: string
|
||||
persistent:
|
||||
description: Indication whether notifications to this endpoint are persistent or not
|
||||
type: boolean
|
||||
required:
|
||||
- endpoint
|
||||
- objectStoreName
|
||||
- objectStoreNamespace
|
||||
type: object
|
||||
status:
|
||||
description: BucketTopicStatus represents the Status of a CephBucketTopic
|
||||
properties:
|
||||
ARN:
|
||||
description: The ARN of the topic generated by the RGW
|
||||
nullable: true
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,70 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephclients.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephClient
|
||||
listKind: CephClientList
|
||||
plural: cephclients
|
||||
singular: cephclient
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephClient represents a Ceph Client
|
||||
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: Spec represents the specification of a Ceph Client
|
||||
properties:
|
||||
caps:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- caps
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of a Ceph Client
|
||||
properties:
|
||||
info:
|
||||
additionalProperties:
|
||||
type: string
|
||||
nullable: true
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,523 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephcosidrivers.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephCOSIDriver
|
||||
listKind: CephCOSIDriverList
|
||||
plural: cephcosidrivers
|
||||
shortNames:
|
||||
- cephcosi
|
||||
singular: cephcosidriver
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment
|
||||
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: Spec represents the specification of a Ceph COSI Driver
|
||||
properties:
|
||||
deploymentStrategy:
|
||||
description: DeploymentStrategy is the strategy to use to deploy the COSI driver.
|
||||
enum:
|
||||
- Never
|
||||
- Auto
|
||||
- Always
|
||||
type: string
|
||||
image:
|
||||
description: Image is the container image to run the Ceph COSI driver
|
||||
type: string
|
||||
objectProvisionerImage:
|
||||
description: ObjectProvisionerImage is the container image to run the COSI driver sidecar
|
||||
type: string
|
||||
placement:
|
||||
properties:
|
||||
nodeAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
preference:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- preference
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
properties:
|
||||
nodeSelectorTerms:
|
||||
items:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: array
|
||||
required:
|
||||
- nodeSelectorTerms
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
podAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
podAntiAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
topologySpreadConstraints:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
matchLabelKeys:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
x-kubernetes-list-type: atomic
|
||||
maxSkew:
|
||||
format: int32
|
||||
type: integer
|
||||
minDomains:
|
||||
format: int32
|
||||
type: integer
|
||||
nodeAffinityPolicy:
|
||||
type: string
|
||||
nodeTaintsPolicy:
|
||||
type: string
|
||||
topologyKey:
|
||||
type: string
|
||||
whenUnsatisfiable:
|
||||
type: string
|
||||
required:
|
||||
- maxSkew
|
||||
- topologyKey
|
||||
- whenUnsatisfiable
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
resources:
|
||||
description: Resources is the resource requirements for the COSI driver
|
||||
properties:
|
||||
claims:
|
||||
description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
|
||||
items:
|
||||
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: 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.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: '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/'
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
@@ -0,0 +1,563 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephfilesystemmirrors.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephFilesystemMirror
|
||||
listKind: CephFilesystemMirrorList
|
||||
plural: cephfilesystemmirrors
|
||||
singular: cephfilesystemmirror
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
|
||||
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: FilesystemMirroringSpec is the filesystem mirroring specification
|
||||
properties:
|
||||
annotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: The annotations-related configuration to add/set on each Pod related object.
|
||||
nullable: true
|
||||
type: object
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: The labels-related configuration to add/set on each Pod related object.
|
||||
nullable: true
|
||||
type: object
|
||||
placement:
|
||||
nullable: true
|
||||
properties:
|
||||
nodeAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
preference:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- preference
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
properties:
|
||||
nodeSelectorTerms:
|
||||
items:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: array
|
||||
required:
|
||||
- nodeSelectorTerms
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
podAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
podAntiAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
topologySpreadConstraints:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
matchLabelKeys:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
x-kubernetes-list-type: atomic
|
||||
maxSkew:
|
||||
format: int32
|
||||
type: integer
|
||||
minDomains:
|
||||
format: int32
|
||||
type: integer
|
||||
nodeAffinityPolicy:
|
||||
type: string
|
||||
nodeTaintsPolicy:
|
||||
type: string
|
||||
topologyKey:
|
||||
type: string
|
||||
whenUnsatisfiable:
|
||||
type: string
|
||||
required:
|
||||
- maxSkew
|
||||
- topologyKey
|
||||
- whenUnsatisfiable
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
priorityClassName:
|
||||
description: PriorityClassName sets priority class on the cephfs-mirror pods
|
||||
type: string
|
||||
resources:
|
||||
description: The resource requirements for the cephfs-mirror pods
|
||||
nullable: true
|
||||
properties:
|
||||
claims:
|
||||
description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
|
||||
items:
|
||||
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: 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.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: '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/'
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,97 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephfilesystemsubvolumegroups.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephFilesystemSubVolumeGroup
|
||||
listKind: CephFilesystemSubVolumeGroupList
|
||||
plural: cephfilesystemsubvolumegroups
|
||||
singular: cephfilesystemsubvolumegroup
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
|
||||
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: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
|
||||
properties:
|
||||
filesystemName:
|
||||
description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
|
||||
type: string
|
||||
x-kubernetes-validations:
|
||||
- message: filesystemName is immutable
|
||||
rule: self == oldSelf
|
||||
name:
|
||||
description: The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR.
|
||||
type: string
|
||||
x-kubernetes-validations:
|
||||
- message: name is immutable
|
||||
rule: self == oldSelf
|
||||
pinning:
|
||||
description: Pinning configuration of CephFilesystemSubVolumeGroup, reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups only one out of (export, distributed, random) can be set at a time
|
||||
properties:
|
||||
distributed:
|
||||
maximum: 1
|
||||
minimum: 0
|
||||
nullable: true
|
||||
type: integer
|
||||
export:
|
||||
maximum: 256
|
||||
minimum: -1
|
||||
nullable: true
|
||||
type: integer
|
||||
random:
|
||||
maximum: 1
|
||||
minimum: 0
|
||||
nullable: true
|
||||
type: number
|
||||
type: object
|
||||
x-kubernetes-validations:
|
||||
- message: only one pinning type should be set
|
||||
rule: (has(self.export) && !has(self.distributed) && !has(self.random)) || (!has(self.export) && has(self.distributed) && !has(self.random)) || (!has(self.export) && !has(self.distributed) && has(self.random)) || (!has(self.export) && !has(self.distributed) && !has(self.random))
|
||||
required:
|
||||
- filesystemName
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of a CephFilesystem SubvolumeGroup
|
||||
properties:
|
||||
info:
|
||||
additionalProperties:
|
||||
type: string
|
||||
nullable: true
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,80 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephobjectrealms.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephObjectRealm
|
||||
listKind: CephObjectRealmList
|
||||
plural: cephobjectrealms
|
||||
singular: cephobjectrealm
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephObjectRealm represents a Ceph Object Store Gateway Realm
|
||||
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: ObjectRealmSpec represent the spec of an ObjectRealm
|
||||
nullable: true
|
||||
properties:
|
||||
pull:
|
||||
description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
|
||||
properties:
|
||||
endpoint:
|
||||
pattern: ^https*://
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,227 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephobjectstoreusers.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephObjectStoreUser
|
||||
listKind: CephObjectStoreUserList
|
||||
plural: cephobjectstoreusers
|
||||
shortNames:
|
||||
- rcou
|
||||
- objectuser
|
||||
singular: cephobjectstoreuser
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephObjectStoreUser represents a Ceph Object Store Gateway User
|
||||
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: ObjectStoreUserSpec represent the spec of an Objectstoreuser
|
||||
properties:
|
||||
capabilities:
|
||||
description: Additional admin-level capabilities for the Ceph object store user
|
||||
nullable: true
|
||||
properties:
|
||||
amz-cache:
|
||||
description: Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/quincy/radosgw/rgw-cache/#cache-api
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
bilog:
|
||||
description: Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
bucket:
|
||||
description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
buckets:
|
||||
description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
datalog:
|
||||
description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
info:
|
||||
description: Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
mdlog:
|
||||
description: Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
metadata:
|
||||
description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
oidc-provider:
|
||||
description: Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
ratelimit:
|
||||
description: Add capabilities for user to set rate limiter for user and bucket. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
roles:
|
||||
description: Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
usage:
|
||||
description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
user:
|
||||
description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
user-policy:
|
||||
description: Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
users:
|
||||
description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
zone:
|
||||
description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
|
||||
enum:
|
||||
- '*'
|
||||
- read
|
||||
- write
|
||||
- read, write
|
||||
type: string
|
||||
type: object
|
||||
clusterNamespace:
|
||||
description: The namespace where the parent CephCluster and CephObjectStore are found
|
||||
type: string
|
||||
displayName:
|
||||
description: The display name for the ceph users
|
||||
type: string
|
||||
quotas:
|
||||
description: ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more
|
||||
nullable: true
|
||||
properties:
|
||||
maxBuckets:
|
||||
description: Maximum bucket limit for the ceph user
|
||||
nullable: true
|
||||
type: integer
|
||||
maxObjects:
|
||||
description: Maximum number of objects across all the user's buckets
|
||||
format: int64
|
||||
nullable: true
|
||||
type: integer
|
||||
maxSize:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Maximum size limit of all objects across all the user's buckets See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
|
||||
nullable: true
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
type: object
|
||||
store:
|
||||
description: The store the user will be created in
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
|
||||
properties:
|
||||
info:
|
||||
additionalProperties:
|
||||
type: string
|
||||
nullable: true
|
||||
type: object
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,82 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephobjectzonegroups.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephObjectZoneGroup
|
||||
listKind: CephObjectZoneGroupList
|
||||
plural: cephobjectzonegroups
|
||||
singular: cephobjectzonegroup
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
|
||||
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: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
|
||||
properties:
|
||||
realm:
|
||||
description: The display name for the ceph users
|
||||
type: string
|
||||
required:
|
||||
- realm
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,420 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephobjectzones.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephObjectZone
|
||||
listKind: CephObjectZoneList
|
||||
plural: cephobjectzones
|
||||
singular: cephobjectzone
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephObjectZone represents a Ceph Object Store Gateway Zone
|
||||
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: ObjectZoneSpec represent the spec of an ObjectZone
|
||||
properties:
|
||||
customEndpoints:
|
||||
description: "If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may include the port in the definition. For example: \"https://my-object-store.my-domain.net:443\". In many cases, you should set this to the endpoint of the ingress resource that makes the CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters. The list can have one or more endpoints pointing to different RGW servers in the zone. \n If a CephObjectStore endpoint is omitted from this list, that object store's gateways will not receive multisite replication data (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic)."
|
||||
items:
|
||||
type: string
|
||||
nullable: true
|
||||
type: array
|
||||
dataPool:
|
||||
description: The data pool settings
|
||||
nullable: true
|
||||
properties:
|
||||
compressionMode:
|
||||
description: '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
|
||||
- ""
|
||||
nullable: true
|
||||
type: string
|
||||
crushRoot:
|
||||
description: The root of the crush hierarchy utilized by the pool
|
||||
nullable: true
|
||||
type: string
|
||||
deviceClass:
|
||||
description: The device class the OSD should set to for use in the pool
|
||||
nullable: true
|
||||
type: string
|
||||
enableRBDStats:
|
||||
description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
|
||||
type: boolean
|
||||
erasureCoded:
|
||||
description: The erasure code settings
|
||||
properties:
|
||||
algorithm:
|
||||
description: The algorithm for erasure coding
|
||||
type: string
|
||||
codingChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
dataChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
required:
|
||||
- codingChunks
|
||||
- dataChunks
|
||||
type: object
|
||||
failureDomain:
|
||||
description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
|
||||
type: string
|
||||
mirroring:
|
||||
description: The mirroring settings
|
||||
properties:
|
||||
enabled:
|
||||
description: Enabled whether this pool is mirrored or not
|
||||
type: boolean
|
||||
mode:
|
||||
description: 'Mode is the mirroring mode: either pool or image'
|
||||
type: string
|
||||
peers:
|
||||
description: Peers represents the peers spec
|
||||
nullable: true
|
||||
properties:
|
||||
secretNames:
|
||||
description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
snapshotSchedules:
|
||||
description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
|
||||
items:
|
||||
description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
|
||||
properties:
|
||||
interval:
|
||||
description: Interval represent the periodicity of the snapshot.
|
||||
type: string
|
||||
path:
|
||||
description: Path is the path to snapshot, only valid for CephFS
|
||||
type: string
|
||||
startTime:
|
||||
description: StartTime indicates when to start the snapshot
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
parameters:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Parameters is a list of properties to enable on a given pool
|
||||
nullable: true
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
quotas:
|
||||
description: The quota settings
|
||||
nullable: true
|
||||
properties:
|
||||
maxBytes:
|
||||
description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
|
||||
format: int64
|
||||
type: integer
|
||||
maxObjects:
|
||||
description: MaxObjects represents the quota in objects
|
||||
format: int64
|
||||
type: integer
|
||||
maxSize:
|
||||
description: MaxSize represents the quota in bytes as a string
|
||||
pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
|
||||
type: string
|
||||
type: object
|
||||
replicated:
|
||||
description: The replication settings
|
||||
properties:
|
||||
hybridStorage:
|
||||
description: HybridStorage represents hybrid storage tier settings
|
||||
nullable: true
|
||||
properties:
|
||||
primaryDeviceClass:
|
||||
description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
|
||||
minLength: 1
|
||||
type: string
|
||||
secondaryDeviceClass:
|
||||
description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- primaryDeviceClass
|
||||
- secondaryDeviceClass
|
||||
type: object
|
||||
replicasPerFailureDomain:
|
||||
description: ReplicasPerFailureDomain the number of replica in the specified failure domain
|
||||
minimum: 1
|
||||
type: integer
|
||||
requireSafeReplicaSize:
|
||||
description: RequireSafeReplicaSize if false allows you to set replica 1
|
||||
type: boolean
|
||||
size:
|
||||
description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
|
||||
minimum: 0
|
||||
type: integer
|
||||
subFailureDomain:
|
||||
description: SubFailureDomain the name of the sub-failure domain
|
||||
type: string
|
||||
targetSizeRatio:
|
||||
description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
|
||||
type: number
|
||||
required:
|
||||
- size
|
||||
type: object
|
||||
statusCheck:
|
||||
description: The mirroring statusCheck
|
||||
properties:
|
||||
mirror:
|
||||
description: HealthCheckSpec represents the health check of an object store bucket
|
||||
nullable: true
|
||||
properties:
|
||||
disabled:
|
||||
type: boolean
|
||||
interval:
|
||||
description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
|
||||
type: string
|
||||
timeout:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: object
|
||||
metadataPool:
|
||||
description: The metadata pool settings
|
||||
nullable: true
|
||||
properties:
|
||||
compressionMode:
|
||||
description: '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
|
||||
- ""
|
||||
nullable: true
|
||||
type: string
|
||||
crushRoot:
|
||||
description: The root of the crush hierarchy utilized by the pool
|
||||
nullable: true
|
||||
type: string
|
||||
deviceClass:
|
||||
description: The device class the OSD should set to for use in the pool
|
||||
nullable: true
|
||||
type: string
|
||||
enableRBDStats:
|
||||
description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
|
||||
type: boolean
|
||||
erasureCoded:
|
||||
description: The erasure code settings
|
||||
properties:
|
||||
algorithm:
|
||||
description: The algorithm for erasure coding
|
||||
type: string
|
||||
codingChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
dataChunks:
|
||||
description: 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
|
||||
type: integer
|
||||
required:
|
||||
- codingChunks
|
||||
- dataChunks
|
||||
type: object
|
||||
failureDomain:
|
||||
description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
|
||||
type: string
|
||||
mirroring:
|
||||
description: The mirroring settings
|
||||
properties:
|
||||
enabled:
|
||||
description: Enabled whether this pool is mirrored or not
|
||||
type: boolean
|
||||
mode:
|
||||
description: 'Mode is the mirroring mode: either pool or image'
|
||||
type: string
|
||||
peers:
|
||||
description: Peers represents the peers spec
|
||||
nullable: true
|
||||
properties:
|
||||
secretNames:
|
||||
description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
snapshotSchedules:
|
||||
description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
|
||||
items:
|
||||
description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
|
||||
properties:
|
||||
interval:
|
||||
description: Interval represent the periodicity of the snapshot.
|
||||
type: string
|
||||
path:
|
||||
description: Path is the path to snapshot, only valid for CephFS
|
||||
type: string
|
||||
startTime:
|
||||
description: StartTime indicates when to start the snapshot
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
parameters:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: Parameters is a list of properties to enable on a given pool
|
||||
nullable: true
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
quotas:
|
||||
description: The quota settings
|
||||
nullable: true
|
||||
properties:
|
||||
maxBytes:
|
||||
description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
|
||||
format: int64
|
||||
type: integer
|
||||
maxObjects:
|
||||
description: MaxObjects represents the quota in objects
|
||||
format: int64
|
||||
type: integer
|
||||
maxSize:
|
||||
description: MaxSize represents the quota in bytes as a string
|
||||
pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
|
||||
type: string
|
||||
type: object
|
||||
replicated:
|
||||
description: The replication settings
|
||||
properties:
|
||||
hybridStorage:
|
||||
description: HybridStorage represents hybrid storage tier settings
|
||||
nullable: true
|
||||
properties:
|
||||
primaryDeviceClass:
|
||||
description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
|
||||
minLength: 1
|
||||
type: string
|
||||
secondaryDeviceClass:
|
||||
description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
|
||||
minLength: 1
|
||||
type: string
|
||||
required:
|
||||
- primaryDeviceClass
|
||||
- secondaryDeviceClass
|
||||
type: object
|
||||
replicasPerFailureDomain:
|
||||
description: ReplicasPerFailureDomain the number of replica in the specified failure domain
|
||||
minimum: 1
|
||||
type: integer
|
||||
requireSafeReplicaSize:
|
||||
description: RequireSafeReplicaSize if false allows you to set replica 1
|
||||
type: boolean
|
||||
size:
|
||||
description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
|
||||
minimum: 0
|
||||
type: integer
|
||||
subFailureDomain:
|
||||
description: SubFailureDomain the name of the sub-failure domain
|
||||
type: string
|
||||
targetSizeRatio:
|
||||
description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
|
||||
type: number
|
||||
required:
|
||||
- size
|
||||
type: object
|
||||
statusCheck:
|
||||
description: The mirroring statusCheck
|
||||
properties:
|
||||
mirror:
|
||||
description: HealthCheckSpec represents the health check of an object store bucket
|
||||
nullable: true
|
||||
properties:
|
||||
disabled:
|
||||
type: boolean
|
||||
interval:
|
||||
description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
|
||||
type: string
|
||||
timeout:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: object
|
||||
preservePoolsOnDelete:
|
||||
default: true
|
||||
description: Preserve pools on object zone deletion
|
||||
type: boolean
|
||||
zoneGroup:
|
||||
description: The display name for the ceph users
|
||||
type: string
|
||||
required:
|
||||
- dataPool
|
||||
- metadataPool
|
||||
- zoneGroup
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,584 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.11.3
|
||||
name: cephrbdmirrors.ceph.rook.io
|
||||
spec:
|
||||
group: ceph.rook.io
|
||||
names:
|
||||
kind: CephRBDMirror
|
||||
listKind: CephRBDMirrorList
|
||||
plural: cephrbdmirrors
|
||||
singular: cephrbdmirror
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.phase
|
||||
name: Phase
|
||||
type: string
|
||||
name: v1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: CephRBDMirror represents a Ceph RBD Mirror
|
||||
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: RBDMirroringSpec represents the specification of an RBD mirror daemon
|
||||
properties:
|
||||
annotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: The annotations-related configuration to add/set on each Pod related object.
|
||||
nullable: true
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
count:
|
||||
description: Count represents the number of rbd mirror instance to run
|
||||
minimum: 1
|
||||
type: integer
|
||||
labels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: The labels-related configuration to add/set on each Pod related object.
|
||||
nullable: true
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
peers:
|
||||
description: Peers represents the peers spec
|
||||
nullable: true
|
||||
properties:
|
||||
secretNames:
|
||||
description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
placement:
|
||||
nullable: true
|
||||
properties:
|
||||
nodeAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
preference:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- preference
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
properties:
|
||||
nodeSelectorTerms:
|
||||
items:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchFields:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: array
|
||||
required:
|
||||
- nodeSelectorTerms
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
type: object
|
||||
podAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
podAntiAffinity:
|
||||
properties:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
podAffinityTerm:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
weight:
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- podAffinityTerm
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaceSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
namespaces:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
topologyKey:
|
||||
type: string
|
||||
required:
|
||||
- topologyKey
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
tolerations:
|
||||
items:
|
||||
properties:
|
||||
effect:
|
||||
type: string
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
tolerationSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
topologySpreadConstraints:
|
||||
items:
|
||||
properties:
|
||||
labelSelector:
|
||||
properties:
|
||||
matchExpressions:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
operator:
|
||||
type: string
|
||||
values:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
matchLabelKeys:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
x-kubernetes-list-type: atomic
|
||||
maxSkew:
|
||||
format: int32
|
||||
type: integer
|
||||
minDomains:
|
||||
format: int32
|
||||
type: integer
|
||||
nodeAffinityPolicy:
|
||||
type: string
|
||||
nodeTaintsPolicy:
|
||||
type: string
|
||||
topologyKey:
|
||||
type: string
|
||||
whenUnsatisfiable:
|
||||
type: string
|
||||
required:
|
||||
- maxSkew
|
||||
- topologyKey
|
||||
- whenUnsatisfiable
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
priorityClassName:
|
||||
description: PriorityClassName sets priority class on the rbd mirror pods
|
||||
type: string
|
||||
resources:
|
||||
description: The resource requirements for the rbd mirror pods
|
||||
nullable: true
|
||||
properties:
|
||||
claims:
|
||||
description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
|
||||
items:
|
||||
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
||||
properties:
|
||||
name:
|
||||
description: 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.
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
x-kubernetes-list-map-keys:
|
||||
- name
|
||||
x-kubernetes-list-type: map
|
||||
limits:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||
x-kubernetes-int-or-string: true
|
||||
description: '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/'
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- count
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the status of an object
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: Condition represents a status condition on any Rook-Ceph Custom Resource.
|
||||
properties:
|
||||
lastHeartbeatTime:
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
reason:
|
||||
description: ConditionReason is a reason for a condition
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
type:
|
||||
description: ConditionType represent a resource's status
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the latest generation observed by the controller.
|
||||
format: int64
|
||||
type: integer
|
||||
phase:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- metadata
|
||||
- spec
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,43 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: objectbucketclaims.objectbucket.io
|
||||
spec:
|
||||
group: objectbucket.io
|
||||
names:
|
||||
kind: ObjectBucketClaim
|
||||
listKind: ObjectBucketClaimList
|
||||
plural: objectbucketclaims
|
||||
singular: objectbucketclaim
|
||||
shortNames:
|
||||
- obc
|
||||
- obcs
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
storage: true
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
properties:
|
||||
spec:
|
||||
type: object
|
||||
properties:
|
||||
storageClassName:
|
||||
type: string
|
||||
bucketName:
|
||||
type: string
|
||||
generateBucketName:
|
||||
type: string
|
||||
additionalConfig:
|
||||
type: object
|
||||
nullable: true
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
objectBucketName:
|
||||
type: string
|
||||
status:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,68 @@
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: objectbuckets.objectbucket.io
|
||||
spec:
|
||||
group: objectbucket.io
|
||||
names:
|
||||
kind: ObjectBucket
|
||||
listKind: ObjectBucketList
|
||||
plural: objectbuckets
|
||||
singular: objectbucket
|
||||
shortNames:
|
||||
- ob
|
||||
- obs
|
||||
scope: Cluster
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
storage: true
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
type: object
|
||||
properties:
|
||||
spec:
|
||||
type: object
|
||||
properties:
|
||||
storageClassName:
|
||||
type: string
|
||||
endpoint:
|
||||
type: object
|
||||
nullable: true
|
||||
properties:
|
||||
bucketHost:
|
||||
type: string
|
||||
bucketPort:
|
||||
type: integer
|
||||
format: int32
|
||||
bucketName:
|
||||
type: string
|
||||
region:
|
||||
type: string
|
||||
subRegion:
|
||||
type: string
|
||||
additionalConfig:
|
||||
type: object
|
||||
nullable: true
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
authentication:
|
||||
type: object
|
||||
nullable: true
|
||||
items:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
additionalState:
|
||||
type: object
|
||||
nullable: true
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
reclaimPolicy:
|
||||
type: string
|
||||
claimRef:
|
||||
type: object
|
||||
nullable: true
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
status:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
subresources:
|
||||
status: {}
|
||||
17
crd/rook/datas.tf
Normal file
17
crd/rook/datas.tf
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
locals {
|
||||
common-labels = {
|
||||
"vynil.solidite.fr/owner-name" = var.instance
|
||||
"vynil.solidite.fr/owner-namespace" = var.namespace
|
||||
"vynil.solidite.fr/owner-category" = var.category
|
||||
"vynil.solidite.fr/owner-component" = var.component
|
||||
"app.kubernetes.io/managed-by" = "vynil"
|
||||
"app.kubernetes.io/name" = var.component
|
||||
"app.kubernetes.io/instance" = var.instance
|
||||
}
|
||||
}
|
||||
data "kustomization_overlay" "data" {
|
||||
common_labels = local.common-labels
|
||||
namespace = var.namespace
|
||||
resources = []
|
||||
}
|
||||
50
crd/rook/index.rhai
Normal file
50
crd/rook/index.rhai
Normal file
@@ -0,0 +1,50 @@
|
||||
const VERSION="1.13";
|
||||
const SRC=src;
|
||||
const DEST=dest;
|
||||
const DOIT=config.apply;
|
||||
const sourcesDir=`https://github.com/rook/rook/raw/release-${VERSION}/deploy/examples`;
|
||||
const sources=[
|
||||
"crds.yaml"
|
||||
];
|
||||
const crdFiles=[
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephblockpoolradosnamespaces.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephblockpools.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephbucketnotifications.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephbuckettopics.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephclients.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephclusters.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephcosidrivers.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephfilesystemmirrors.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephfilesystems.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephfilesystemsubvolumegroups.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephnfses.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephobjectrealms.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephobjectstores.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephobjectstoreusers.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephobjectzonegroups.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephobjectzones.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_cephrbdmirrors.ceph.rook.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_objectbucketclaims.objectbucket.io.yaml",
|
||||
"apiextensions.k8s.io_v1_CustomResourceDefinition_objectbuckets.objectbucket.io.yaml",
|
||||
];
|
||||
fn pre_pack() {
|
||||
for file in global::sources {
|
||||
shell(`curl -sL ${global::sourcesDir}/${file} > ${global::SRC}/${file}`);
|
||||
}
|
||||
}
|
||||
fn pre_install() {
|
||||
if ! global::DOIT {
|
||||
return;
|
||||
}
|
||||
for file in global::crdFiles {
|
||||
shell(`kubectl replace -f ${global::SRC}/${file} || kubectl create -f ${global::SRC}/${file}`);
|
||||
}
|
||||
}
|
||||
fn post_destroy() {
|
||||
if ! global::DOIT {
|
||||
return;
|
||||
}
|
||||
for file in global::crdFiles {
|
||||
shell(`kubectl delete -f ${global::SRC}/${file}`);
|
||||
}
|
||||
}
|
||||
16
crd/rook/index.yaml
Normal file
16
crd/rook/index.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: vinyl.solidite.fr/v1beta1
|
||||
kind: Component
|
||||
category: crd
|
||||
metadata:
|
||||
name: rook
|
||||
description: CRD for Rook
|
||||
options:
|
||||
apply:
|
||||
default: true
|
||||
examples:
|
||||
- true
|
||||
type: boolean
|
||||
dependencies: []
|
||||
providers: null
|
||||
tfaddtype: null
|
||||
Reference in New Issue
Block a user