4.2.2. YAML を使用した IBM COS namespace バケットの追加
前提条件
- OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
- Multicloud Object Gateway (MCG) へのアクセス。第 2 章 アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。
手順
認証情報でシークレットを作成します。
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>一意の NamespaceStore 名。
Base64を使用して独自の IBM COS アクセスキー ID およびシークレットアクセスキーを指定してエンコードし、その結果を<IBM COS ACCESS KEY ID ENCODED IN BASE64>および<IBM COS SECRET ACCESS KEY ENCODED IN BASE64>の代わりに使用する必要があります。
OpenShift カスタムリソース定義 (CRD) を使用して NamespaceStore リソースを作成します。
NamespaceStore は、MCG namespace バケットでデータの
readまたはwriteターゲットとして使用される基礎となるストレージを表します。NamespaceStore リソースを作成するには、以下の 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>- 適切な IBM COS エンドポイント。
<namespacestore-secret-name>- 前の手順で作成されたシークレット
<namespace-secret>- シークレットが見つかる namespace。
<target-bucket>- NamespaceStore 用に作成したターゲットバケット。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
singleまたはmultiのタイプが必要です。タイプ
singleの namespace ポリシーには、以下の設定が必要です。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>- 一意の namespace バケットクラス名。
<resource>-
namespace バケットの
readおよびwriteターゲットを定義する単一の NamespaceStore の名前。
タイプが
multiの namespace ポリシーには、以下の設定が必要です。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>- 一意のバケットクラス名。
<write-resource>- namespace バケットの書き込みターゲットを定義する単一の NamespaceStore の名前。
<read-resources>-
namespace バケットの
readターゲットを定義する NamespaceStores 名のリスト。
以下の YAML を適用して、前の手順で定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用してバケットを作成します。
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>- リソースに指定する名前。
<my-bucket>- バケットに指定したい名前。
<my-bucket-class>前のステップで作成されたバケットクラス。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で
SecretおよびConfigMapを作成します。