Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ceph: Create resources automatically for external Cluster #500

Merged
merged 4 commits into from May 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions deploy/crds/ocs.openshift.io_storageclusters_crd.yaml
Expand Up @@ -1377,6 +1377,10 @@ spec:
- type
type: object
type: array
externalSecretFound:
description: ExternalSecretFound indicates whether a Secret containing
information about an external CephCluster was found or not
type: boolean
failureDomain:
description: FailureDomain is the base CRUSH element Ceph will use to
distribute its data replicas for the default CephBlockPool
Expand Down
325 changes: 325 additions & 0 deletions deploy/olm-catalog/ocs-operator/manifests/backingstore.crd.yaml
@@ -0,0 +1,325 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: backingstores.noobaa.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.type
description: Type
name: Type
type: string
- JSONPath: .status.phase
description: Phase
name: Phase
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: noobaa.io
names:
kind: BackingStore
listKind: BackingStoreList
plural: backingstores
singular: backingstore
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: BackingStore is the Schema for the backingstores API
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: Specification of the desired behavior of the noobaa BackingStore.
properties:
awsS3:
description: AWSS3Spec specifies a backing store of type aws-s3
properties:
region:
description: Region is the AWS region
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
properties:
name:
description: Name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: Namespace defines the space within which the secret
name must be unique.
type: string
type: object
sslDisabled:
description: SSLDisabled allows to disable SSL and use plain http
type: boolean
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- secret
- targetBucket
type: object
azureBlob:
description: AzureBlob specifies a backing store of type azure-blob
properties:
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AccountName and AccountKey as provided
by Azure Blob.
properties:
name:
description: Name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: Namespace defines the space within which the secret
name must be unique.
type: string
type: object
targetBlobContainer:
description: TargetBlobContainer is the name of the target Azure
Blob container
type: string
required:
- secret
- targetBlobContainer
type: object
googleCloudStorage:
description: GoogleCloudStorage specifies a backing store of type google-cloud-storage
properties:
secret:
description: Secret refers to a secret that provides the credentials
The secret should define GoogleServiceAccountPrivateKeyJson containing
the entire json string as provided by Google.
properties:
name:
description: Name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: Namespace defines the space within which the secret
name must be unique.
type: string
type: object
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- secret
- targetBucket
type: object
ibmCos:
description: IBMCos specifies a backing store of type ibm-cos
properties:
endpoint:
description: 'Endpoint is the IBM COS compatible endpoint: http(s)://host:port'
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define IBM_COS_ACCESS_KEY_ID and IBM_COS_SECRET_ACCESS_KEY
properties:
name:
description: Name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: Namespace defines the space within which the secret
name must be unique.
type: string
type: object
signatureVersion:
description: SignatureVersion specifies the client signature version
to use when signing requests.
type: string
targetBucket:
description: TargetBucket is the name of the target IBM COS bucket
type: string
required:
- endpoint
- secret
- targetBucket
type: object
pvPool:
description: PVPool specifies a backing store of type pv-pool
properties:
numVolumes:
description: NumVolumes is the number of volumes to allocate
type: integer
resources:
description: VolumeResources represents the minimum resources each
volume should have.
properties:
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-compute-resources-container/'
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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
type: object
storageClass:
description: StorageClass is the name of the storage class to use
for the PV's
type: string
required:
- numVolumes
type: object
s3Compatible:
description: S3Compatible specifies a backing store of type s3-compatible
properties:
endpoint:
description: 'Endpoint is the S3 compatible endpoint: http(s)://host:port'
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
properties:
name:
description: Name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: Namespace defines the space within which the secret
name must be unique.
type: string
type: object
signatureVersion:
description: SignatureVersion specifies the client signature version
to use when signing requests.
type: string
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- endpoint
- secret
- targetBucket
type: object
type:
description: Type is an enum of supported types
type: string
required:
- type
type: object
status:
description: Most recently observed status of the noobaa BackingStore.
properties:
conditions:
description: Conditions is a list of conditions related to operator
reconciliation
items:
description: Condition represents the state of the operator's reconciliation
functionality.
properties:
lastHeartbeatTime:
format: date-time
type: string
lastTransitionTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
description: ConditionType is the state of the operator's reconciliation
functionality.
type: string
required:
- status
- type
type: object
type: array
mode:
description: Mode specifies the updating mode of a BackingStore
properties:
modeCode:
description: ModeCode specifies the updated mode of backingstore
type: string
timeStamp:
description: TimeStamp specifies the update time of backingstore
new mode
type: string
type: object
phase:
description: Phase is a simple, high-level summary of where the backing
store is in its lifecycle
type: string
relatedObjects:
description: RelatedObjects is a list of objects related to this operator.
items:
description: ObjectReference contains enough information to let you
inspect or modify the referred object.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of
an entire object, this string should contain a valid JSON/Go
field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part of
an object. TODO: this design is not final and this field is
subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true