From d321663872badfc1ef91b4214db1876edc697368 Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Mon, 26 Jul 2021 17:58:26 +0530 Subject: [PATCH] deploy: add template changes for mapping added template changes for the clusterID and poolID,fsID mapping details for the pod templates. Signed-off-by: Madhu Rajanna --- charts/ceph-csi-rbd/README.md | 1 + .../templates/csiplugin-configmap.yaml | 2 ++ charts/ceph-csi-rbd/values.yaml | 10 ++++++++ examples/csi-config-map-sample.yaml | 25 +++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/charts/ceph-csi-rbd/README.md b/charts/ceph-csi-rbd/README.md index 246348bfa..9f26025ed 100644 --- a/charts/ceph-csi-rbd/README.md +++ b/charts/ceph-csi-rbd/README.md @@ -85,6 +85,7 @@ charts and their default values. | `serviceAccounts.provisioner.create` | Specifies whether a provisioner ServiceAccount should be created | `true` | | `serviceAccounts.provisioner.name` | The name of the provisioner ServiceAccount to use. If not set and create is true, a name is generated using the fullname | "" | | `csiConfig` | Configuration for the CSI to connect to the cluster | [] | +| `csiMapping` | Configuration details of clusterID,PoolID,FscID mapping | [] | | `encryptionKMSConfig` | Configuration for the encryption KMS | `{}` | | `logLevel` | Set logging level for csi containers. Supported values from 0 to 5. 0 for general useful logs, 5 for trace level verbosity. | `5` | | `nodeplugin.name` | Specifies the nodeplugins name | `nodeplugin` | diff --git a/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml b/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml index 67cb22f1a..3cec53e6e 100644 --- a/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml +++ b/charts/ceph-csi-rbd/templates/csiplugin-configmap.yaml @@ -13,4 +13,6 @@ metadata: data: config.json: |- {{ toJson .Values.csiConfig | indent 4 -}} + cluster-mapping.json: |- +{{ toJson .Values.csiMapping | indent 4 -}} {{- end }} diff --git a/charts/ceph-csi-rbd/values.yaml b/charts/ceph-csi-rbd/values.yaml index 7993927dc..19a6e134f 100644 --- a/charts/ceph-csi-rbd/values.yaml +++ b/charts/ceph-csi-rbd/values.yaml @@ -27,6 +27,16 @@ serviceAccounts: # - "" csiConfig: [] +# Configuration details of clusterID,PoolID and FscID mapping +# csiMapping: +# - clusterIDMapping: +# clusterID on site1: clusterID on site2 +# RBDPoolIDMapping: +# - poolID on site1: poolID on site2 +# CephFSFscIDMapping: +# - CephFS FscID on site1: CephFS FscID on site2 +csiMapping: [] + # Configuration for the encryption KMS # Ref: https://github.com/ceph/ceph-csi/blob/devel/docs/deploy-rbd.md # Example: diff --git a/examples/csi-config-map-sample.yaml b/examples/csi-config-map-sample.yaml index 524671c69..806abee2f 100644 --- a/examples/csi-config-map-sample.yaml +++ b/examples/csi-config-map-sample.yaml @@ -3,6 +3,7 @@ # as required by the CSI plugins. apiVersion: v1 kind: ConfigMap +# Lets see the different configuration under config.json key. # The is used by the CSI plugin to uniquely identify and use a # Ceph cluster, the value MUST match the value provided as `clusterID` in the # StorageClass @@ -22,6 +23,14 @@ kind: ConfigMap # NOTE: Changes to the configmap is automatically updated in the running pods, # thus restarting existing pods using the configmap is NOT required on edits # to the configmap. + +# Lets see the different configuration under cluster-mapping.json key. +# This configuration is needed when volumes are mirrored using the Ceph-CSI. +# clusterIDMapping holds the mapping between two clusterId's of storage +# clusters. +# RBDPoolIDMapping holds the mapping between two poolId's of storage clusters. +# CephFSFscIDMapping holds the mapping between two FscId's of storage +# clusters. data: config.json: |- [ @@ -39,5 +48,21 @@ data: } } ] + cluster-mapping.json: |- + [ + { + "clusterIDMapping": { + "clusterID on site1": "clusterID on site2" + }, + "RBDPoolIDMapping": [{ + "poolID on site1": "poolID on site2" + ... + }], + "CephFSFscIDMapping": [{ + "CephFS FscID on site1": "CephFS FscID on site2" + ... + }] + } + ] metadata: name: ceph-csi-config