From 7598d0d45c282519440f704fbf9d1683fe378a5c Mon Sep 17 00:00:00 2001 From: Kyle Bader Date: Thu, 13 Jun 2019 13:58:47 -0700 Subject: [PATCH] Add rook-ceph upstream operator to okd/openshift The rook-ceph operator already existed in the catalog for kubernetes by way of PR #348. This adds those same files to the catalog for okd/openshift. There is precedent for both upstream and downstream operators: * Strimzi / AMQ Streams * Infinispan / JBOSS Data Grid --- community-operators/rook-ceph/ceph_crd.yaml | 89 ++++ .../rook-ceph/rook-ceph.package.yaml | 4 + ...ook-ceph.v1.0.0.clusterserviceversion.yaml | 454 +++++++++++++++++ ...ook-ceph.v1.0.1.clusterserviceversion.yaml | 455 ++++++++++++++++++ .../rook-ceph/rookcephblockpools.crd.yaml | 15 + .../rook-ceph/rookcephobjectstores.crd.yaml | 15 + .../rookcephobjectstoreusers.crd.yaml | 15 + 7 files changed, 1047 insertions(+) create mode 100644 community-operators/rook-ceph/ceph_crd.yaml create mode 100644 community-operators/rook-ceph/rook-ceph.package.yaml create mode 100644 community-operators/rook-ceph/rook-ceph.v1.0.0.clusterserviceversion.yaml create mode 100644 community-operators/rook-ceph/rook-ceph.v1.0.1.clusterserviceversion.yaml create mode 100644 community-operators/rook-ceph/rookcephblockpools.crd.yaml create mode 100644 community-operators/rook-ceph/rookcephobjectstores.crd.yaml create mode 100644 community-operators/rook-ceph/rookcephobjectstoreusers.crd.yaml diff --git a/community-operators/rook-ceph/ceph_crd.yaml b/community-operators/rook-ceph/ceph_crd.yaml new file mode 100644 index 0000000000..5071237f45 --- /dev/null +++ b/community-operators/rook-ceph/ceph_crd.yaml @@ -0,0 +1,89 @@ +# TAG: BEGIN CEPH CRD +# The CRD declarations +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: cephclusters.ceph.rook.io +spec: + group: ceph.rook.io + names: + kind: CephCluster + listKind: CephClusterList + plural: cephclusters + singular: cephcluster + scope: Namespaced + version: v1 + validation: + openAPIV3Schema: + properties: + spec: + properties: + cephVersion: + properties: + allowUnsupported: + type: boolean + image: + type: string + name: + pattern: ^(luminous|mimic|nautilus)$ + type: string + dashboard: + properties: + enabled: + type: boolean + urlPrefix: + type: string + port: + type: integer + dataDirHostPath: + pattern: ^/(\S+) + type: string + mon: + properties: + allowMultiplePerNode: + type: boolean + count: + maximum: 9 + minimum: 1 + type: integer + preferredCount: + maximum: 9 + minimum: 0 + type: integer + required: + - count + network: + properties: + hostNetwork: + type: boolean + storage: + properties: + nodes: + items: {} + type: array + useAllDevices: {} + useAllNodes: + type: boolean + required: + - mon + additionalPrinterColumns: + - name: DataDirHostPath + type: string + description: Directory used on the K8s nodes + JSONPath: .spec.dataDirHostPath + - name: MonCount + type: string + description: Number of MONs + JSONPath: .spec.mon.count + - name: Age + type: date + JSONPath: .metadata.creationTimestamp + - name: State + type: string + description: Current State + JSONPath: .status.state + - name: Health + type: string + description: Ceph Health + JSONPath: .status.ceph.health +# TAG: END CEPH CRD diff --git a/community-operators/rook-ceph/rook-ceph.package.yaml b/community-operators/rook-ceph/rook-ceph.package.yaml new file mode 100644 index 0000000000..64c531bd87 --- /dev/null +++ b/community-operators/rook-ceph/rook-ceph.package.yaml @@ -0,0 +1,4 @@ +packageName: rook-ceph +channels: +- name: beta + currentCSV: rook-ceph.v1.0.1 diff --git a/community-operators/rook-ceph/rook-ceph.v1.0.0.clusterserviceversion.yaml b/community-operators/rook-ceph/rook-ceph.v1.0.0.clusterserviceversion.yaml new file mode 100644 index 0000000000..6a2f245762 --- /dev/null +++ b/community-operators/rook-ceph/rook-ceph.v1.0.0.clusterserviceversion.yaml @@ -0,0 +1,454 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephCluster", + "metadata": { + "name": "my-rook-ceph", + "namespace": "my-rook-ceph" + }, + "spec": { + "cephVersion": { + "image": "ceph/ceph:v14.2.1-20190430" + }, + "dataDirHostPath": "/var/lib/rook", + "mon": { + "count": 3 + }, + "dashboard": { + "enabled": true + }, + "network": { + "hostNetwork": false + }, + "rbdMirroring": { + "workers": "0" + }, + "storage": { + "useAllNodes": true, + "useAllDevices": true + } + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephBlockPool", + "metadata": { + "name": "replicapool", + "namespace": "my-rook-ceph" + }, + "spec": { + "failureDomain": "host", + "replicated": { + "size": 3 + }, + "annotations": null + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephObjectStore", + "metadata": { + "name": "my-store", + "namespace": "my-rook-ceph" + }, + "spec": { + "metadataPool": { + "failureDomain": "host", + "replicated": { + "size": 3 + } + }, + "dataPool": { + "failureDomain": "host", + "replicated": { + "size": 3 + } + }, + "gateway": { + "type": "s3", + "sslCertificateRef": null, + "port": 8080, + "securePort": null, + "instances": 1, + "allNodes": false, + "placement": null, + "annotations": null, + "resources": null + } + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephObjectStoreUser", + "metadata": { + "name": "my-user", + "namespace": "my-rook-ceph" + }, + "spec": { + "store": "my-store", + "displayName": "my display name" + } + } + ] + capabilities: Full Lifecycle + categories: Storage + certified: "false" + containerImage: rook/ceph:v1.0.0 + createdAt: 2019-05-15T18-21-49Z + description: Install and maintain Ceph Storage cluster + repository: https://github.com/rook/rook + support: https://slack.rook.io/ + tectonic-visibility: ocs + name: rook-ceph.v1.0.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Represents a Ceph cluster. + displayName: Ceph Cluster + kind: CephCluster + name: cephclusters.ceph.rook.io + version: v1 + - description: Represents a Ceph Block Pool. + displayName: Ceph Block Pool + kind: CephBlockPool + name: cephblockpools.ceph.rook.io + version: v1 + - description: Represents a Ceph Object Store. + displayName: Ceph Object Store + kind: CephObjectStore + name: cephobjectstores.ceph.rook.io + version: v1 + - description: Represents a Ceph Object Store User. + displayName: Ceph Object Store User + kind: CephObjectStoreUser + name: cephobjectstoreusers.ceph.rook.io + version: v1 + description: |2 + + The Rook-Ceph storage operator packages, deploys, manages, upgrades and scales Ceph storage for providing persistent storage to infrastructure services (Logging, metrics, registry) as well as stateful applications. + + ## Rook Ceph Storage Operator + + Rook runs as a cloud-native service for optimal integration with applications in need of storage, and handles the heavy-lifting behind the scenes such as provisioning and management. + Rook orchestrates battle-tested open-source storage technology Ceph, which has years of production deployments and runs some of the worlds largest clusters. + + Ceph is a massively scalable, software-defined, cloud native storage platform that offers block, file and object storage services. + Ceph can be used to back a wide variety of applications including relational databases, noSQL databases, CI/CD tool-sets, messaging, AI/ML and analytics apps. + Ceph is a proven storage platform that backs some of the world's largest storage deployments and has a large vibrant open source community backing the project. + + ## Supported features + * **High Availability and resiliency** - Ceph has no SPOF and all its components work natively in a highly available fashion + * **Data Protection** - Ceph periodically scrub for inconsistent objects and repair them if necessary, making sure your replicas are always coherent + * **Consistent storage platform across hybrid cloud** - Ceph can be deployed anywhere (on-premise or bare metal) and thus offers a similar experience regardless + * **Block, File & Object storage service** - Ceph can expose your data through several storage interfaces, solving all the application use cases + * **Scale up/down** - addition and removal of storage is fully covered by the operator. + * **Dashboard** - The Operator deploys a dashboard for monitoring and introspecting your cluster. + + ## Before you start + https://rook.io/docs/rook/v1.0/k8s-pre-reqs.html + displayName: Rook Ceph + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA3MCA3MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNzAgNzA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMkIyQjJCO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTUwLjUsNjcuNkgxOS45Yy04LDAtMTQuNS02LjUtMTQuNS0xNC41VjI5LjJjMC0xLjEsMC45LTIuMSwyLjEtMi4xaDU1LjRjMS4xLDAsMi4xLDAuOSwyLjEsMi4xdjIzLjkKCQkJCUM2NSw2MS4xLDU4LjUsNjcuNiw1MC41LDY3LjZ6IE05LjYsMzEuMnYyMS45YzAsNS43LDQuNiwxMC4zLDEwLjMsMTAuM2gzMC42YzUuNywwLDEwLjMtNC42LDEwLjMtMTAuM1YzMS4ySDkuNnoiLz4KCQk8L2c+CgkJPGc+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00Mi40LDU2LjdIMjhjLTEuMSwwLTIuMS0wLjktMi4xLTIuMXYtNy4yYzAtNS4xLDQuMi05LjMsOS4zLTkuM3M5LjMsNC4yLDkuMyw5LjN2Ny4yCgkJCQlDNDQuNSw1NS43LDQzLjYsNTYuNyw0Mi40LDU2Ljd6IE0zMCw1Mi41aDEwLjN2LTUuMmMwLTIuOS0yLjMtNS4yLTUuMi01LjJjLTIuOSwwLTUuMiwyLjMtNS4yLDUuMlY1Mi41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYyLjksMjMuMkM2Mi45LDIzLjIsNjIuOSwyMy4yLDYyLjksMjMuMmwtMTEuMSwwYy0xLjEsMC0yLjEtMC45LTIuMS0yLjFjMC0xLjEsMC45LTIuMSwyLjEtMi4xCgkJCQljMCwwLDAsMCwwLDBsOS4xLDBWNi43aC02Ljl2My41YzAsMC41LTAuMiwxLjEtMC42LDEuNWMtMC40LDAuNC0wLjksMC42LTEuNSwwLjZsMCwwbC0xMS4xLDBjLTEuMSwwLTIuMS0wLjktMi4xLTIuMVY2LjdoLTYuOQoJCQkJdjMuNWMwLDEuMS0wLjksMi4xLTIuMSwyLjFsLTExLjEsMGMtMC41LDAtMS4xLTAuMi0xLjUtMC42Yy0wLjQtMC40LTAuNi0wLjktMC42LTEuNVY2LjdIOS42djEyLjRoOWMxLjEsMCwyLjEsMC45LDIuMSwyLjEKCQkJCXMtMC45LDIuMS0yLjEsMi4xaC0xMWMtMS4xLDAtMi4xLTAuOS0yLjEtMi4xVjQuNmMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMWMxLjEsMCwyLjEsMC45LDIuMSwyLjF2My41bDcsMFY0LjYKCQkJCWMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMWMxLjEsMCwyLjEsMC45LDIuMSwyLjF2My41bDYuOSwwVjQuNmMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMUM2NCwyLjYsNjUsMy41LDY1LDQuNnYxNi41CgkJCQljMCwwLjUtMC4yLDEuMS0wLjYsMS41QzY0LDIzLDYzLjQsMjMuMiw2Mi45LDIzLjJ6Ii8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: [] + serviceAccountName: rook-ceph-cluster-mgmt + - rules: + - apiGroups: + - "" + resources: + - secrets + - pods + - pods/log + - services + - configmaps + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - apps + resources: + - deployments + - daemonsets + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-system + - rules: [] + serviceAccountName: rook-ceph-global + - rules: + - apiGroups: + - "" + resources: + - pods + - nodes + - nodes/proxy + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - events + - persistentvolumes + - persistentvolumeclaims + - endpoints + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - ceph.rook.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - rook.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: rook-ceph-system + - rules: [] + serviceAccountName: rook-ceph-mgr-cluster + - rules: + - apiGroups: + - "" + resources: + - configmaps + - nodes + - nodes/proxy + verbs: + - get + - list + - watch + serviceAccountName: rook-ceph-mgr + - rules: [] + serviceAccountName: rook-ceph-mgr-system + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + serviceAccountName: rook-ceph-mgr + deployments: + - name: rook-ceph-operator + spec: + replicas: 1 + selector: + matchLabels: + app: rook-ceph-operator + strategy: {} + template: + metadata: + labels: + app: rook-ceph-operator + spec: + containers: + - args: + - ceph + - operator + env: + - name: ROOK_CURRENT_NAMESPACE_ONLY + value: "true" + - name: ROOK_ALLOW_MULTIPLE_FILESYSTEMS + value: "false" + - name: ROOK_LOG_LEVEL + value: INFO + - name: ROOK_CEPH_STATUS_CHECK_INTERVAL + value: 60s + - name: ROOK_MON_HEALTHCHECK_INTERVAL + value: 45s + - name: ROOK_MON_OUT_TIMEOUT + value: 600s + - name: ROOK_DISCOVER_DEVICES_INTERVAL + value: 60m + - name: ROOK_HOSTPATH_REQUIRES_PRIVILEGED + value: "false" + - name: ROOK_ENABLE_SELINUX_RELABELING + value: "true" + - name: ROOK_ENABLE_FSGROUP + value: "true" + - name: ROOK_DISABLE_DEVICE_HOTPLUG + value: "false" + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: rook/ceph:v1.0.0 + name: rook-ceph-operator + resources: {} + volumeMounts: + - mountPath: /var/lib/rook + name: rook-config + - mountPath: /etc/ceph + name: default-config-dir + serviceAccountName: rook-ceph-system + volumes: + - emptyDir: {} + name: rook-config + - emptyDir: {} + name: default-config-dir + permissions: + - rules: + - apiGroups: + - "" + resources: + - pods + - configmaps + - services + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - apps + resources: + - daemonsets + - statefulsets + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-system + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-osd + - rules: + - apiGroups: + - "" + resources: + - pods + - services + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - ceph.rook.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: rook-ceph-mgr + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - rook + - ceph + - storage + - object storage + - open source + - block storage + - shared filesystem + labels: + alm-owner-etcd: rookoperator + operated-by: rookoperator + links: + - name: Blog + url: https://blog.rook.io + - name: Documentation + url: https://rook.github.io/docs/rook/v1.0/ + maintainers: + - email: info@rook.io + name: The Rook Authors + maturity: alpha + minKubeVersion: 1.10.0 + provider: + name: The Rook Authors + selector: + matchLabels: + alm-owner-etcd: rookoperator + operated-by: rookoperator + version: 1.0.0 diff --git a/community-operators/rook-ceph/rook-ceph.v1.0.1.clusterserviceversion.yaml b/community-operators/rook-ceph/rook-ceph.v1.0.1.clusterserviceversion.yaml new file mode 100644 index 0000000000..5b8449a42a --- /dev/null +++ b/community-operators/rook-ceph/rook-ceph.v1.0.1.clusterserviceversion.yaml @@ -0,0 +1,455 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephCluster", + "metadata": { + "name": "my-rook-ceph", + "namespace": "my-rook-ceph" + }, + "spec": { + "cephVersion": { + "image": "ceph/ceph:v14.2.1-20190430" + }, + "dataDirHostPath": "/var/lib/rook", + "mon": { + "count": 3 + }, + "dashboard": { + "enabled": true + }, + "network": { + "hostNetwork": false + }, + "rbdMirroring": { + "workers": 0 + }, + "storage": { + "useAllNodes": true, + "useAllDevices": true + } + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephBlockPool", + "metadata": { + "name": "replicapool", + "namespace": "my-rook-ceph" + }, + "spec": { + "failureDomain": "host", + "replicated": { + "size": 3 + }, + "annotations": null + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephObjectStore", + "metadata": { + "name": "my-store", + "namespace": "my-rook-ceph" + }, + "spec": { + "metadataPool": { + "failureDomain": "host", + "replicated": { + "size": 3 + } + }, + "dataPool": { + "failureDomain": "host", + "replicated": { + "size": 3 + } + }, + "gateway": { + "type": "s3", + "sslCertificateRef": null, + "port": 8080, + "securePort": null, + "instances": 1, + "allNodes": false, + "placement": null, + "annotations": null, + "resources": null + } + } + }, + { + "apiVersion": "ceph.rook.io/v1", + "kind": "CephObjectStoreUser", + "metadata": { + "name": "my-user", + "namespace": "my-rook-ceph" + }, + "spec": { + "store": "my-store", + "displayName": "my display name" + } + } + ] + capabilities: Full Lifecycle + categories: Storage + certified: "false" + containerImage: rook/ceph:v1.0.1 + createdAt: 2019-05-16T22-53-57Z + description: Install and maintain Ceph Storage cluster + repository: https://github.com/rook/rook + support: https://slack.rook.io/ + tectonic-visibility: ocs + name: rook-ceph.v1.0.1 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Represents a Ceph cluster. + displayName: Ceph Cluster + kind: CephCluster + name: cephclusters.ceph.rook.io + version: v1 + - description: Represents a Ceph Block Pool. + displayName: Ceph Block Pool + kind: CephBlockPool + name: cephblockpools.ceph.rook.io + version: v1 + - description: Represents a Ceph Object Store. + displayName: Ceph Object Store + kind: CephObjectStore + name: cephobjectstores.ceph.rook.io + version: v1 + - description: Represents a Ceph Object Store User. + displayName: Ceph Object Store User + kind: CephObjectStoreUser + name: cephobjectstoreusers.ceph.rook.io + version: v1 + description: |2 + + The Rook-Ceph storage operator packages, deploys, manages, upgrades and scales Ceph storage for providing persistent storage to infrastructure services (Logging, Metrics, Registry) as well as stateful applications in Kubernetes clusters. + + ## Rook-Ceph Storage Operator + + Rook runs as a cloud-native service in Kubernetes clusters for optimal integration with applications in need of storage, and handles the heavy-lifting behind the scenes such as provisioning and management. + Rook orchestrates battle-tested open-source storage technology Ceph, which has years of production deployments and runs some of the worlds largest clusters. + + Ceph is a massively scalable, software-defined, cloud native storage platform that offers block, file and object storage services. + Ceph can be used to back a wide variety of applications including relational databases, NoSQL databases, CI/CD tool-sets, messaging, AI/ML and analytics applications. + Ceph is a proven storage platform that backs some of the world's largest storage deployments and has a large vibrant open source community backing the project. + + ## Supported features + * **High Availability and resiliency** - Ceph has no single point of failures (SPOF) and all its components work natively in a highly available fashion + * **Data Protection** - Ceph periodically scrub for inconsistent objects and repair them if necessary, making sure your replicas are always coherent + * **Consistent storage platform across hybrid cloud** - Ceph can be deployed anywhere (on-premise or bare metal) and thus offers a similar experience regardless + * **Block, File & Object storage service** - Ceph can expose your data through several storage interfaces, solving all the application use cases + * **Scale up/down** - addition and removal of storage is fully covered by the operator. + * **Dashboard** - The Operator deploys a dashboard for monitoring and introspecting your cluster. + + ## Before you start + https://rook.io/docs/rook/v1.0/k8s-pre-reqs.html + displayName: Rook-Ceph + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA3MCA3MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNzAgNzA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMkIyQjJCO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTUwLjUsNjcuNkgxOS45Yy04LDAtMTQuNS02LjUtMTQuNS0xNC41VjI5LjJjMC0xLjEsMC45LTIuMSwyLjEtMi4xaDU1LjRjMS4xLDAsMi4xLDAuOSwyLjEsMi4xdjIzLjkKCQkJCUM2NSw2MS4xLDU4LjUsNjcuNiw1MC41LDY3LjZ6IE05LjYsMzEuMnYyMS45YzAsNS43LDQuNiwxMC4zLDEwLjMsMTAuM2gzMC42YzUuNywwLDEwLjMtNC42LDEwLjMtMTAuM1YzMS4ySDkuNnoiLz4KCQk8L2c+CgkJPGc+CgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00Mi40LDU2LjdIMjhjLTEuMSwwLTIuMS0wLjktMi4xLTIuMXYtNy4yYzAtNS4xLDQuMi05LjMsOS4zLTkuM3M5LjMsNC4yLDkuMyw5LjN2Ny4yCgkJCQlDNDQuNSw1NS43LDQzLjYsNTYuNyw0Mi40LDU2Ljd6IE0zMCw1Mi41aDEwLjN2LTUuMmMwLTIuOS0yLjMtNS4yLTUuMi01LjJjLTIuOSwwLTUuMiwyLjMtNS4yLDUuMlY1Mi41eiIvPgoJCTwvZz4KCQk8Zz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYyLjksMjMuMkM2Mi45LDIzLjIsNjIuOSwyMy4yLDYyLjksMjMuMmwtMTEuMSwwYy0xLjEsMC0yLjEtMC45LTIuMS0yLjFjMC0xLjEsMC45LTIuMSwyLjEtMi4xCgkJCQljMCwwLDAsMCwwLDBsOS4xLDBWNi43aC02Ljl2My41YzAsMC41LTAuMiwxLjEtMC42LDEuNWMtMC40LDAuNC0wLjksMC42LTEuNSwwLjZsMCwwbC0xMS4xLDBjLTEuMSwwLTIuMS0wLjktMi4xLTIuMVY2LjdoLTYuOQoJCQkJdjMuNWMwLDEuMS0wLjksMi4xLTIuMSwyLjFsLTExLjEsMGMtMC41LDAtMS4xLTAuMi0xLjUtMC42Yy0wLjQtMC40LTAuNi0wLjktMC42LTEuNVY2LjdIOS42djEyLjRoOWMxLjEsMCwyLjEsMC45LDIuMSwyLjEKCQkJCXMtMC45LDIuMS0yLjEsMi4xaC0xMWMtMS4xLDAtMi4xLTAuOS0yLjEtMi4xVjQuNmMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMWMxLjEsMCwyLjEsMC45LDIuMSwyLjF2My41bDcsMFY0LjYKCQkJCWMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMWMxLjEsMCwyLjEsMC45LDIuMSwyLjF2My41bDYuOSwwVjQuNmMwLTEuMSwwLjktMi4xLDIuMS0yLjFoMTEuMUM2NCwyLjYsNjUsMy41LDY1LDQuNnYxNi41CgkJCQljMCwwLjUtMC4yLDEuMS0wLjYsMS41QzY0LDIzLDYzLjQsMjMuMiw2Mi45LDIzLjJ6Ii8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: [] + serviceAccountName: rook-ceph-cluster-mgmt + - rules: + - apiGroups: + - "" + resources: + - secrets + - pods + - pods/log + - services + - configmaps + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - apps + resources: + - deployments + - daemonsets + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-system + - rules: [] + serviceAccountName: rook-ceph-global + - rules: + - apiGroups: + - "" + resources: + - pods + - nodes + - nodes/proxy + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - events + - persistentvolumes + - persistentvolumeclaims + - endpoints + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - ceph.rook.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - rook.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: rook-ceph-system + - rules: [] + serviceAccountName: rook-ceph-mgr-cluster + - rules: + - apiGroups: + - "" + resources: + - configmaps + - nodes + - nodes/proxy + verbs: + - get + - list + - watch + serviceAccountName: rook-ceph-mgr + - rules: [] + serviceAccountName: rook-ceph-mgr-system + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + serviceAccountName: rook-ceph-mgr + deployments: + - name: rook-ceph-operator + spec: + replicas: 1 + selector: + matchLabels: + app: rook-ceph-operator + strategy: {} + template: + metadata: + labels: + app: rook-ceph-operator + spec: + containers: + - args: + - ceph + - operator + env: + - name: ROOK_CURRENT_NAMESPACE_ONLY + value: "true" + - name: ROOK_ALLOW_MULTIPLE_FILESYSTEMS + value: "false" + - name: ROOK_LOG_LEVEL + value: INFO + - name: ROOK_CEPH_STATUS_CHECK_INTERVAL + value: 60s + - name: ROOK_MON_HEALTHCHECK_INTERVAL + value: 45s + - name: ROOK_MON_OUT_TIMEOUT + value: 600s + - name: ROOK_DISCOVER_DEVICES_INTERVAL + value: 60m + - name: ROOK_HOSTPATH_REQUIRES_PRIVILEGED + value: "false" + - name: ROOK_ENABLE_SELINUX_RELABELING + value: "true" + - name: ROOK_ENABLE_FSGROUP + value: "true" + - name: ROOK_DISABLE_DEVICE_HOTPLUG + value: "false" + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: rook/ceph:v1.0.1 + name: rook-ceph-operator + resources: {} + volumeMounts: + - mountPath: /var/lib/rook + name: rook-config + - mountPath: /etc/ceph + name: default-config-dir + serviceAccountName: rook-ceph-system + volumes: + - emptyDir: {} + name: rook-config + - emptyDir: {} + name: default-config-dir + permissions: + - rules: + - apiGroups: + - "" + resources: + - pods + - configmaps + - services + verbs: + - get + - list + - watch + - patch + - create + - update + - delete + - apiGroups: + - apps + resources: + - daemonsets + - statefulsets + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-system + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - delete + serviceAccountName: rook-ceph-osd + - rules: + - apiGroups: + - "" + resources: + - pods + - services + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - ceph.rook.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: rook-ceph-mgr + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - rook + - ceph + - storage + - object storage + - open source + - block storage + - shared filesystem + labels: + alm-owner-etcd: rookoperator + operated-by: rookoperator + links: + - name: Blog + url: https://blog.rook.io + - name: Documentation + url: https://rook.github.io/docs/rook/v1.0/ + maintainers: + - email: info@rook.io + name: The Rook Authors + maturity: alpha + replaces: rook-ceph.v1.0.0 + minKubeVersion: 1.10.0 + provider: + name: The Rook Authors + selector: + matchLabels: + alm-owner-etcd: rookoperator + operated-by: rookoperator + version: 1.0.1 diff --git a/community-operators/rook-ceph/rookcephblockpools.crd.yaml b/community-operators/rook-ceph/rookcephblockpools.crd.yaml new file mode 100644 index 0000000000..0f0d17b771 --- /dev/null +++ b/community-operators/rook-ceph/rookcephblockpools.crd.yaml @@ -0,0 +1,15 @@ +# TAG: BEGIN CEPH BLOCK POOL CRD +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: cephblockpools.ceph.rook.io +spec: + group: ceph.rook.io + names: + kind: CephBlockPool + listKind: CephBlockPoolList + plural: cephblockpools + singular: cephblockpool + scope: Namespaced + version: v1 +# TAG: END CEPH BLOCK POOL CRD diff --git a/community-operators/rook-ceph/rookcephobjectstores.crd.yaml b/community-operators/rook-ceph/rookcephobjectstores.crd.yaml new file mode 100644 index 0000000000..85cf437138 --- /dev/null +++ b/community-operators/rook-ceph/rookcephobjectstores.crd.yaml @@ -0,0 +1,15 @@ +# TAG: BEGIN CEPH OBJECT STORE CRD +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: cephobjectstores.ceph.rook.io +spec: + group: ceph.rook.io + names: + kind: CephObjectStore + listKind: CephObjectStoreList + plural: cephobjectstores + singular: cephobjectstore + scope: Namespaced + version: v1 +# TAG: END CEPH OBJECT STORE CRD diff --git a/community-operators/rook-ceph/rookcephobjectstoreusers.crd.yaml b/community-operators/rook-ceph/rookcephobjectstoreusers.crd.yaml new file mode 100644 index 0000000000..f684729fae --- /dev/null +++ b/community-operators/rook-ceph/rookcephobjectstoreusers.crd.yaml @@ -0,0 +1,15 @@ +# TAG: BEGIN CEPH OBJECT STORE USERS CRD +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: cephobjectstoreusers.ceph.rook.io +spec: + group: ceph.rook.io + names: + kind: CephObjectStoreUser + listKind: CephObjectStoreUserList + plural: cephobjectstoreusers + singular: cephobjectstoreuser + scope: Namespaced + version: v1 +# TAG: END CEPH OBJECT STORE USERS CRD