From 940118af828d9ac04c7901513e10a8504e75d3ae 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 --- .../ceph/create-external-cluster-resources.py | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py index d09a0a091..f2996c1c4 100644 --- a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py +++ b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py @@ -496,26 +496,24 @@ class RadosJSON: ] # 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'], - "poolPrefix": self.out_map['RGW_POOL_PREFIX'] - } - }) + 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 a5b4020d80960e694b59c244081be59d01c4155f 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 --- .../ceph/create-external-cluster-resources.py | 67 +++++++++++-------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py index f2996c1c4..751aefd9c 100644 --- a/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py +++ b/cluster/examples/kubernetes/ceph/create-external-cluster-resources.py @@ -395,15 +395,19 @@ class RadosJSON: 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['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['MONITORING_ENDPOINT'] = self.get_active_ceph_mgr().split(":")[ 0] self.out_map['MONITORING_ENDPOINT_PORT'] = self.get_active_ceph_mgr().split(":")[ 1] - 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['RBD_POOL_NAME'] = self._arg_parser.rbd_data_pool_name self.out_map['RGW_POOL_PREFIX'] = self._arg_parser.rgw_pool_prefix @@ -454,30 +458,6 @@ class RadosJSON: "userKey": self.out_map['CSI_RBD_NODE_SECRET_SECRET'] } }, - { - "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'] - } - }, - { - "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", @@ -494,6 +474,37 @@ class RadosJSON: } } ] + + # 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'] + }, + }) + # 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'] + }, + }) + # 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": { + "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({