From f361721bb835c8becc12a77813e72522db2a3735 Mon Sep 17 00:00:00 2001 From: Arun Kumar Mohan Date: Wed, 12 Aug 2020 00:19:53 +0530 Subject: [PATCH 1/2] ceph: a minor refactoring of external cluster resources script Signed-off-by: Arun Kumar Mohan (cherry picked from commit 940118af828d9ac04c7901513e10a8504e75d3ae) --- .../ceph/create-external-cluster-resources.py | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py index 83141e639a8e..b7e19af14803 100644 --- a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py +++ b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py @@ -459,25 +459,24 @@ def gen_json_out(self): ] # if 'CEPHFS_FS_NAME' exists, then only add 'cephfs' StorageClass if self.out_map['CEPHFS_FS_NAME']: - json_out.append( - { - "name": "cephfs", - "kind": "StorageClass", - "data": { - "fsName": self.out_map['CEPHFS_FS_NAME'], - "pool": self.out_map['CEPHFS_POOL_NAME'] - } - }) + json_out.append({ + "name": "cephfs", + "kind": "StorageClass", + "data": { + "fsName": self.out_map['CEPHFS_FS_NAME'], + "pool": self.out_map['CEPHFS_POOL_NAME'] + } + }) # if 'RGW_ENDPOINT' exists, then only add 'ceph-rgw' StorageClass if self.out_map['RGW_ENDPOINT']: - json_out.append( - { - "name": "ceph-rgw", - "kind": "StorageClass", - "data": { - "endpoint": self.out_map['RGW_ENDPOINT'] - } - }) + json_out.append({ + "name": "ceph-rgw", + "kind": "StorageClass", + "data": { + "endpoint": self.out_map['RGW_ENDPOINT'], + "poolPrefix": self.out_map['RGW_POOL_PREFIX'] + } + }) return json.dumps(json_out)+LINESEP def main(self): From 4850dd0335b97a8155be8638eaa75ad6ea9113a9 Mon Sep 17 00:00:00 2001 From: Arun Kumar Mohan Date: Wed, 12 Aug 2020 00:22:07 +0530 Subject: [PATCH 2/2] ceph: making rbd / cephs provisioner and nodes optional Some more optional items in json output. RBD Provisioner, CSI CephFS node and provisioner are now optional and will only be populated if they are available. Signed-off-by: Arun Kumar Mohan (cherry picked from commit a5b4020d80960e694b59c244081be59d01c4155f) --- .../ceph/create-external-cluster-resources.py | 52 ++++++++++++------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py index b7e19af14803..189aa2683109 100644 --- a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py +++ b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py @@ -369,11 +369,16 @@ def _gen_output_map(self): self.out_map['ROOK_EXTERNAL_USER_SECRET'] = self.create_checkerKey() self.out_map['CSI_RBD_NODE_SECRET_SECRET'] = self.create_cephCSIKeyring_RBDNode() self.out_map['CSI_RBD_PROVISIONER_SECRET'] = self.create_cephCSIKeyring_RBDProvisioner() - self.out_map['CSI_CEPHFS_NODE_SECRET'] = self.create_cephCSIKeyring_cephFSNode() - self.out_map['CSI_CEPHFS_PROVISIONER_SECRET'] = self.create_cephCSIKeyring_cephFSProvisioner() - self.out_map['RGW_ENDPOINT'] = self._arg_parser.rgw_endpoint self.out_map['CEPHFS_POOL_NAME'] = self._arg_parser.cephfs_data_pool_name self.out_map['CEPHFS_FS_NAME'] = self._arg_parser.cephfs_filesystem_name + self.out_map['CSI_CEPHFS_NODE_SECRET'] = '' + self.out_map['CSI_CEPHFS_PROVISIONER_SECRET'] = '' + # create CephFS node and provisioner keyring only when MDS exists + if self.out_map['CEPHFS_FS_NAME'] and self.out_map['CEPHFS_POOL_NAME']: + self.out_map['CSI_CEPHFS_NODE_SECRET'] = self.create_cephCSIKeyring_cephFSNode( + ) + self.out_map['CSI_CEPHFS_PROVISIONER_SECRET'] = self.create_cephCSIKeyring_cephFSProvisioner() + self.out_map['RGW_ENDPOINT'] = self._arg_parser.rgw_endpoint self.out_map['RBD_POOL_NAME'] = self._arg_parser.rbd_data_pool_name self.out_map['RGW_POOL_PREFIX'] = self._arg_parser.rgw_pool_prefix @@ -426,37 +431,44 @@ def gen_json_out(self): } }, { + "name": "ceph-rbd", + "kind": "StorageClass", + "data": { + "pool": self.out_map['RBD_POOL_NAME'] + } + } + ] + + # if 'CSI_RBD_PROVISIONER_SECRET' exists, then only add 'rook-csi-rbd-provisioner' Secret + if self.out_map['CSI_RBD_PROVISIONER_SECRET']: + json_out.append({ "name": "rook-csi-rbd-provisioner", "kind": "Secret", "data": { "userID": 'csi-rbd-provisioner', "userKey": self.out_map['CSI_RBD_PROVISIONER_SECRET'] }, - }, - { - "name": "rook-csi-cephfs-node", - "kind": "Secret", - "data": { - "adminID": 'csi-cephfs-node', - "adminKey": self.out_map['CSI_CEPHFS_NODE_SECRET'] - } - }, - { + }) + # if 'CSI_CEPHFS_PROVISIONER_SECRET' exists, then only add 'rook-csi-cephfs-provisioner' Secret + if self.out_map['CSI_CEPHFS_PROVISIONER_SECRET']: + json_out.append({ "name": "rook-csi-cephfs-provisioner", "kind": "Secret", "data": { "adminID": 'csi-cephfs-provisioner', "adminKey": self.out_map['CSI_CEPHFS_PROVISIONER_SECRET'] }, - }, - { - "name": "ceph-rbd", - "kind": "StorageClass", + }) + # if 'CSI_CEPHFS_NODE_SECRET' exists, then only add 'rook-csi-cephfs-node' Secret + if self.out_map['CSI_CEPHFS_NODE_SECRET']: + json_out.append({ + "name": "rook-csi-cephfs-node", + "kind": "Secret", "data": { - "pool": self.out_map['RBD_POOL_NAME'] + "adminID": 'csi-cephfs-node', + "adminKey": self.out_map['CSI_CEPHFS_NODE_SECRET'] } - } - ] + }) # if 'CEPHFS_FS_NAME' exists, then only add 'cephfs' StorageClass if self.out_map['CEPHFS_FS_NAME']: json_out.append({