5.2. Adding a namespace bucket using the Multicloud Object Gateway CLI and YAML
For more information about namespace buckets, see Managing namespace buckets.
Depending on the type of your deployment and whether you want to use YAML or the Multicloud Object Gateway (MCG) CLI, choose one of the following procedures to add a namespace bucket:
5.2.1. Adding an AWS S3 namespace bucket using YAML リンクのコピーリンクがクリップボードにコピーされました!
Prerequisites
- Openshift Container Platform with OpenShift Data Foundation operator installed.
Access to the Multicloud Object Gateway (MCG).
For information, see Chapter 2, Accessing the Multicloud Object Gateway with your applications.
Procedure
Create a secret with the credentials:
apiVersion: v1 kind: Secret metadata: name: <namespacestore-secret-name> type: Opaque data: AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64> AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>where
<namespacestore-secret-name>is a unique NamespaceStore name.You must provide and encode your own AWS access key ID and secret access key using
Base64, and use the results in place of<AWS ACCESS KEY ID ENCODED IN BASE64>and<AWS SECRET ACCESS KEY ENCODED IN BASE64>.Create a NamespaceStore resource using OpenShift custom resource definitions (CRDs).
A NamespaceStore represents underlying storage to be used as a
readorwritetarget for the data in the MCG namespace buckets.To create a NamespaceStore resource, apply the following YAML:
apiVersion: noobaa.io/v1alpha1 kind: NamespaceStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <resource-name> namespace: openshift-storage spec: awsS3: secret: name: <namespacestore-secret-name> namespace: <namespace-secret> targetBucket: <target-bucket> type: aws-s3<resource-name>- The name you want to give to the resource.
<namespacestore-secret-name>- The secret created in the previous step.
<namespace-secret>- The namespace where the secret can be found.
<target-bucket>- The target bucket you created for the NamespaceStore.
Create a namespace bucket class that defines a namespace policy for the namespace buckets. The namespace policy requires a type of either
singleormulti.A namespace policy of type
singlerequires the following configuration:apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Single single: resource: <resource><my-bucket-class>- The unique namespace bucket class name.
<resource>- The name of a single NamespaceStore that defines the read and write target of the namespace bucket.
A namespace policy of type
multirequires the following configuration:apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Multi multi: writeResource: <write-resource> readResources: - <read-resources> - <read-resources><my-bucket-class>- A unique bucket class name.
<write-resource>-
The name of a single NamespaceStore that defines the
writetarget of the namespace bucket. <read-resources>-
A list of the names of the NamespaceStores that defines the
readtargets of the namespace bucket.
Create a bucket using an Object Bucket Class (OBC) resource that uses the bucket class defined in the earlier step using the following YAML:
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <resource-name> namespace: openshift-storage spec: generateBucketName: <my-bucket> storageClassName: openshift-storage.noobaa.io additionalConfig: bucketclass: <my-bucket-class><resource-name>- The name you want to give to the resource.
<my-bucket>- The name you want to give to the bucket.
<my-bucket-class>- The bucket class created in the previous step.
After the OBC is provisioned by the operator, a bucket is created in the MCG, and the operator creates a Secret and ConfigMap with the same name and in the same namespace as that of the OBC.
5.2.2. Adding an IBM COS namespace bucket using YAML リンクのコピーリンクがクリップボードにコピーされました!
Prerequisites
- Openshift Container Platform with OpenShift Data Foundation operator installed.
- Access to the Multicloud Object Gateway (MCG), see Chapter 2, Accessing the Multicloud Object Gateway with your applications.
Procedure
Create a secret with the credentials:
apiVersion: v1 kind: Secret metadata: name: <namespacestore-secret-name> type: Opaque data: IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64> IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64><namespacestore-secret-name>A unique NamespaceStore name.
You must provide and encode your own IBM COS access key ID and secret access key using
Base64, and use the results in place of<IBM COS ACCESS KEY ID ENCODED IN BASE64>and<IBM COS SECRET ACCESS KEY ENCODED IN BASE64>.
Create a NamespaceStore resource using OpenShift custom resource definitions (CRDs).
A NamespaceStore represents underlying storage to be used as a
readorwritetarget for the data in the MCG namespace buckets.To create a NamespaceStore resource, apply the following YAML:
apiVersion: noobaa.io/v1alpha1 kind: NamespaceStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: s3Compatible: endpoint: <IBM COS ENDPOINT> secret: name: <namespacestore-secret-name> namespace: <namespace-secret> signatureVersion: v2 targetBucket: <target-bucket> type: ibm-cos<IBM COS ENDPOINT>- The appropriate IBM COS endpoint.
<namespacestore-secret-name>- The secret created in the previous step.
<namespace-secret>- The namespace where the secret can be found.
<target-bucket>- The target bucket you created for the NamespaceStore.
Create a namespace bucket class that defines a namespace policy for the namespace buckets. The namespace policy requires a type of either
singleormulti.The namespace policy of type
singlerequires the following configuration:apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Single single: resource: <resource><my-bucket-class>- The unique namespace bucket class name.
<resource>-
The name of a single NamespaceStore that defines the
readandwritetarget of the namespace bucket.
The namespace policy of type
multirequires the following configuration:apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Multi multi: writeResource: <write-resource> readResources: - <read-resources> - <read-resources><my-bucket-class>- The unique bucket class name.
<write-resource>- The name of a single NamespaceStore that defines the write target of the namespace bucket.
<read-resources>-
A list of the NamespaceStores names that defines the
readtargets of the namespace bucket.
To create a bucket using an Object Bucket Class (OBC) resource that uses the bucket class defined in the previous step, apply the following YAML:
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <resource-name> namespace: openshift-storage spec: generateBucketName: <my-bucket> storageClassName: openshift-storage.noobaa.io additionalConfig: bucketclass: <my-bucket-class><resource-name>- The name you want to give to the resource.
<my-bucket>- The name you want to give to the bucket.
<my-bucket-class>The bucket class created in the previous step.
After the OBC is provisioned by the operator, a bucket is created in the MCG, and the operator creates a
SecretandConfigMapwith the same name and in the same namespace as that of the OBC.
5.2.3. Adding an AWS S3 namespace bucket using the Multicloud Object Gateway CLI リンクのコピーリンクがクリップボードにコピーされました!
Prerequisites
- Openshift Container Platform with OpenShift Data Foundation operator installed.
- Access to the Multicloud Object Gateway (MCG), see Chapter 2, Accessing the Multicloud Object Gateway with your applications.
Download the Multicloud Object Gateway (MCG) command-line interface binary from the customer portal and make it executable.
注記Choose the correct product variant according to your architecture. Available platforms are Linux(x86_64), Windows, and Mac OS
Procedure
In the MCG command-line interface, create a NamespaceStore resource.
A NamespaceStore represents an underlying storage to be used as a
readorwritetarget for the data in MCG namespace buckets.$ noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage<namespacestore>- The name of the NamespaceStore.
<AWS ACCESS KEY>and<AWS SECRET ACCESS KEY>- The AWS access key ID and secret access key you created for this purpose.
<bucket-name>- The existing AWS bucket name. This argument tells the MCG which bucket to use as a target bucket for its backing store, and subsequently, data storage and administration.
Create a namespace bucket class that defines a namespace policy for the namespace buckets. The namespace policy can be either
singleormulti.To create a namespace bucket class with a namespace policy of type
single:$ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage<resource-name>- The name you want to give the resource.
<my-bucket-class>- A unique bucket class name.
<resource>-
A single namespace-store that defines the
readandwritetarget of the namespace bucket.
To create a namespace bucket class with a namespace policy of type
multi:$ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage<resource-name>- The name you want to give the resource.
<my-bucket-class>- A unique bucket class name.
<write-resource>-
A single namespace-store that defines the
writetarget of the namespace bucket. <read-resources>s-
A list of namespace-stores separated by commas that defines the
readtargets of the namespace bucket.
Create a bucket using an Object Bucket Class (OBC) resource that uses the bucket class defined in the previous step.
$ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class><bucket-name>- A bucket name of your choice.
<custom-bucket-class>- The name of the bucket class created in the previous step.
After the OBC is provisioned by the operator, a bucket is created in the MCG, and the operator creates a
Secretand aConfigMapwith the same name and in the same namespace as that of the OBC.
5.2.4. Adding an IBM COS namespace bucket using the Multicloud Object Gateway CLI リンクのコピーリンクがクリップボードにコピーされました!
Prerequisites
- Openshift Container Platform with OpenShift Data Foundation operator installed.
- Access to the Multicloud Object Gateway (MCG), see Chapter 2, Accessing the Multicloud Object Gateway with your applications.
Download the MCG command-line interface binary from the customer portal and make it executable.
注記Choose either Linux(x86_64), Windows, or Mac OS.
Procedure
In the MCG command-line interface, create a NamespaceStore resource.
A NamespaceStore represents an underlying storage to be used as a
readorwritetarget for the data in the MCG namespace buckets.$ noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage<namespacestore>- The name of the NamespaceStore.
<IBM ACCESS KEY>,<IBM SECRET ACCESS KEY>,<IBM COS ENDPOINT>- An IBM access key ID, secret access key, and the appropriate regional endpoint that corresponds to the location of the existing IBM bucket.
<bucket-name>- An existing IBM bucket name. This argument tells the MCG which bucket to use as a target bucket for its backing store, and subsequently, data storage and administration.
Create a namespace bucket class that defines a namespace policy for the namespace buckets. The namespace policy requires a type of either
singleormulti.To create a namespace bucket class with a namespace policy of type
single:$ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage<resource-name>- The name you want to give the resource.
<my-bucket-class>- A unique bucket class name.
<resource>-
A single NamespaceStore that defines the
readandwritetarget of the namespace bucket.
To create a namespace bucket class with a namespace policy of type
multi:$ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage<resource-name>- The name you want to give the resource.
<my-bucket-class>- A unique bucket class name.
<write-resource>-
A single NamespaceStore that defines the
writetarget of the namespace bucket. <read-resources>-
A comma-separated list of NamespaceStores that defines the
readtargets of the namespace bucket.
Create a bucket using an Object Bucket Class (OBC) resource that uses the bucket class defined in the earlier step.
$ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class><bucket-name>- A bucket name of your choice.
<custom-bucket-class>- The name of the bucket class created in the previous step.
After the OBC is provisioned by the operator, a bucket is created in the MCG, and the operator creates a Secret and ConfigMap with the same name and in the same namespace as that of the OBC.