Create sections Create Cephfs Volume Snapshot Class and Create RBD Volume Snapshot Class Update helm-override-show outputs Fix conflict Closes-bug: 2055207 Change-Id: I203643805d26871fc6de1671d57e72ee2179b545 Signed-off-by: Elisamara Aoki Goncalves <elisamaraaoki.goncalves@windriver.com>
		
			
				
	
	
		
			247 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			247 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
 | 
						|
.. wyf1616954377690
 | 
						|
.. _enable-readwritemany-pvc-support-in-additional-namespaces:
 | 
						|
 | 
						|
=========================================================
 | 
						|
Enable ReadWriteMany PVC Support in Additional Namespaces
 | 
						|
=========================================================
 | 
						|
 | 
						|
The default general **cephfs-provisioner** storage class is enabled for the
 | 
						|
default, kube-system, and kube-public namespaces. To enable an additional
 | 
						|
namespace, for example for an application-specific namespace, a modification
 | 
						|
to the configuration (Helm overrides) of the **cephfs-provisioner** service
 | 
						|
is required.
 | 
						|
 | 
						|
.. rubric:: |context|
 | 
						|
 | 
						|
The following example illustrates the configuration of three additional
 | 
						|
application-specific namespaces to access the **cephfs-provisioner**
 | 
						|
**cephfs** storage class.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
    Due to limitations with templating and merging of overrides, the entire
 | 
						|
    storage class must be redefined in the override when updating specific
 | 
						|
    values.
 | 
						|
 | 
						|
.. rubric:: |proc|
 | 
						|
 | 
						|
#.  List installed Helm chart overrides for the platform-integ-apps.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)]$ system helm-override-list platform-integ-apps
 | 
						|
        +--------------------+----------------------+
 | 
						|
        | chart name         | overrides namespaces |
 | 
						|
        +--------------------+----------------------+
 | 
						|
        | ceph-pools-audit   | ['kube-system']      |
 | 
						|
        | cephfs-provisioner | ['kube-system']      |
 | 
						|
        | rbd-provisioner    | ['kube-system']      |
 | 
						|
        +--------------------+----------------------+
 | 
						|
 | 
						|
#.  Review existing overrides for the cephfs-provisioner chart. You will refer
 | 
						|
    to this information in the following step.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)]$ system helm-override-show platform-integ-apps cephfs-provisioner kube-system
 | 
						|
 | 
						|
        +--------------------+------------------------------------------------------+
 | 
						|
        | Property           | Value                                                |
 | 
						|
        +--------------------+------------------------------------------------------+
 | 
						|
        | attributes         | enabled: true                                        |
 | 
						|
        |                    |                                                      |
 | 
						|
        | combined_overrides | classdefaults:                                       |
 | 
						|
        |                    |   adminId: admin                                     |
 | 
						|
        |                    |   adminSecretName: ceph-secret-admin                 |
 | 
						|
        |                    |   monitors:                                          |
 | 
						|
        |                    |   - 192.168.204.2:6789                               |
 | 
						|
        |                    | csiConfig:                                           |
 | 
						|
        |                    | - cephFS:                                            |
 | 
						|
        |                    |     subvolumeGroup: csi                              |
 | 
						|
        |                    |   clusterID: 6d273112-f2a6-4aec-8727-76b690274c60    |
 | 
						|
        |                    |   monitors:                                          |
 | 
						|
        |                    |   - 192.168.204.2:6789                               |
 | 
						|
        |                    | provisioner:                                         |
 | 
						|
        |                    |   replicaCount: 1                                    |
 | 
						|
        |                    |   snapshotter:                                       |
 | 
						|
        |                    |     enabled: true                                    |
 | 
						|
        |                    | snapshotClass:                                       |
 | 
						|
        |                    |   clusterID: 6d273112-f2a6-4aec-8727-76b690274c60    |
 | 
						|
        |                    |   provisionerSecret: ceph-pool-kube-cephfs-data      |
 | 
						|
        |                    | storageClasses:                                      |
 | 
						|
        |                    | - additionalNamespaces:                              |
 | 
						|
        |                    |   - default                                          |
 | 
						|
        |                    |   - kube-public                                      |
 | 
						|
        |                    |   chunk_size: 64                                     |
 | 
						|
        |                    |   clusterID: 6d273112-f2a6-4aec-8727-76b690274c60    |
 | 
						|
        |                    |   controllerExpandSecret: ceph-pool-kube-cephfs-data |
 | 
						|
        |                    |   crush_rule_name: storage_tier_ruleset              |
 | 
						|
        |                    |   data_pool_name: kube-cephfs-data                   |
 | 
						|
        |                    |   fs_name: kube-cephfs                               |
 | 
						|
        |                    |   metadata_pool_name: kube-cephfs-metadata           |
 | 
						|
        |                    |   name: cephfs                                       |
 | 
						|
        |                    |   nodeStageSecret: ceph-pool-kube-cephfs-data        |
 | 
						|
        |                    |   provisionerSecret: ceph-pool-kube-cephfs-data      |
 | 
						|
        |                    |   replication: 1                                     |
 | 
						|
        |                    |   userId: ceph-pool-kube-cephfs-data                 |
 | 
						|
        |                    |   userSecretName: ceph-pool-kube-cephfs-data         |
 | 
						|
        |                    |   volumeNamePrefix: pvc-volumes-                     |
 | 
						|
        |                    |                                                      |
 | 
						|
        | name               | cephfs-provisioner                                   |
 | 
						|
        | namespace          | kube-system                                          |
 | 
						|
        | system_overrides   | classdefaults:                                       |
 | 
						|
        |                    |   adminId: admin                                     |
 | 
						|
        |                    |   adminSecretName: ceph-secret-admin                 |
 | 
						|
        |                    |   monitors: ['192.168.204.2:6789']                   |
 | 
						|
        |                    | csiConfig:                                           |
 | 
						|
        |                    | - cephFS: {subvolumeGroup: csi}                      |
 | 
						|
        |                    |   clusterID: !!binary |                              |
 | 
						|
        |                    |     NmQyNzMxMTItZjJhNi00YWVjLTg3MjctNzZiNjkwMjc0YzYw |
 | 
						|
        |                    |   monitors: ['192.168.204.2:6789']                   |
 | 
						|
        |                    | provisioner:                                         |
 | 
						|
        |                    |   replicaCount: 1                                    |
 | 
						|
        |                    |   snapshotter: {enabled: true}                       |
 | 
						|
        |                    | snapshotClass:                                       |
 | 
						|
        |                    |   clusterID: !!binary |                              |
 | 
						|
        |                    |     NmQyNzMxMTItZjJhNi00YWVjLTg3MjctNzZiNjkwMjc0YzYw |
 | 
						|
        |                    |   provisionerSecret: ceph-pool-kube-cephfs-data      |
 | 
						|
        |                    | storageClasses:                                      |
 | 
						|
        |                    | - additionalNamespaces: [default, kube-public]       |
 | 
						|
        |                    |   chunk_size: 64                                     |
 | 
						|
        |                    |   clusterID: !!binary |                              |
 | 
						|
        |                    |     NmQyNzMxMTItZjJhNi00YWVjLTg3MjctNzZiNjkwMjc0YzYw |
 | 
						|
        |                    |   controllerExpandSecret: ceph-pool-kube-cephfs-data |
 | 
						|
        |                    |   crush_rule_name: storage_tier_ruleset              |
 | 
						|
        |                    |   data_pool_name: kube-cephfs-data                   |
 | 
						|
        |                    |   fs_name: kube-cephfs                               |
 | 
						|
        |                    |   metadata_pool_name: kube-cephfs-metadata           |
 | 
						|
        |                    |   name: cephfs                                       |
 | 
						|
        |                    |   nodeStageSecret: ceph-pool-kube-cephfs-data        |
 | 
						|
        |                    |   provisionerSecret: ceph-pool-kube-cephfs-data      |
 | 
						|
        |                    |   replication: 1                                     |
 | 
						|
        |                    |   userId: ceph-pool-kube-cephfs-data                 |
 | 
						|
        |                    |   userSecretName: ceph-pool-kube-cephfs-data         |
 | 
						|
        |                    |   volumeNamePrefix: pvc-volumes-                     |
 | 
						|
        |                    |                                                      |
 | 
						|
        | user_overrides     | None                                                 |
 | 
						|
        +--------------------+------------------------------------------------------+
 | 
						|
 | 
						|
#.  Create an overrides yaml file defining the new namespaces.
 | 
						|
 | 
						|
    In this example, create the file ``/home/sysadmin/update-namespaces.yaml``
 | 
						|
    with the following content:
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)]$ cat <<EOF > ~/update-namespaces.yaml
 | 
						|
        storageClasses:
 | 
						|
        - additionalNamespaces: [default, kube-public, new-app, new-app2, new-app3]
 | 
						|
          chunk_size: 64
 | 
						|
          claim_root: /pvc-volumes
 | 
						|
          crush_rule_name: storage_tier_ruleset
 | 
						|
          data_pool_name: kube-cephfs-data
 | 
						|
          fs_name: kube-cephfs
 | 
						|
          metadata_pool_name: kube-cephfs-metadata
 | 
						|
          name: cephfs
 | 
						|
          replication: 2
 | 
						|
          userId: ceph-pool-kube-cephfs-data
 | 
						|
          userSecretName: ceph-pool-kube-cephfs-data
 | 
						|
        EOF
 | 
						|
 | 
						|
#.  Apply the overrides file to the chart.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)]$ system helm-override-update  --values /home/sysadmin/update-namespaces.yaml platform-integ-apps cephfs-provisioner kube-system
 | 
						|
        +----------------+----------------------------------------------+
 | 
						|
        | Property       | Value                                        |
 | 
						|
        +----------------+----------------------------------------------+
 | 
						|
        | name           | cephfs-provisioner                           |
 | 
						|
        | namespace      | kube-system                                  |
 | 
						|
        | user_overrides | storageClasses:                              |
 | 
						|
        |                | - additionalNamespaces:                      |
 | 
						|
        |                |   - default                                  |
 | 
						|
        |                |   - kube-public                              |
 | 
						|
        |                |   - new-app                                  |
 | 
						|
        |                |   - new-app2                                 |
 | 
						|
        |                |   - new-app3                                 |
 | 
						|
        |                |   chunk_size: 64                             |
 | 
						|
        |                |   claim_root: /pvc-volumes                   |
 | 
						|
        |                |   crush_rule_name: storage_tier_ruleset      |
 | 
						|
        |                |   data_pool_name: kube-cephfs-data           |
 | 
						|
        |                |   fs_name: kube-cephfs                       |
 | 
						|
        |                |   metadata_pool_name: kube-cephfs-metadata   |
 | 
						|
        |                |   name: cephfs                               |
 | 
						|
        |                |   replication: 2                             |
 | 
						|
        |                |   userId: ceph-pool-kube-cephfs-data         |
 | 
						|
        |                |   userSecretName: ceph-pool-kube-cephfs-data |
 | 
						|
        +----------------+----------------------------------------------+
 | 
						|
 | 
						|
#.  Confirm that the new overrides have been applied to the chart.
 | 
						|
 | 
						|
    The following output has been edited for brevity.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        ~(keystone_admin)]$ system helm-override-show platform-integ-apps cephfs-provisioner kube-system
 | 
						|
        +--------------------+---------------------------------------------+
 | 
						|
        | Property           | Value                                       |
 | 
						|
        +--------------------+---------------------------------------------+
 | 
						|
        | user_overrides     | storageClasses:                             |
 | 
						|
        |                    | - additionalNamespaces:                     |
 | 
						|
        |                    |   - default                                 |
 | 
						|
        |                    |   - kube-public                             |
 | 
						|
        |                    |   - new-app                                 |
 | 
						|
        |                    |   - new-app2                                |
 | 
						|
        |                    |   - new-app3                                |
 | 
						|
        |                    |   chunk_size: 64                            |
 | 
						|
        |                    |   claim_root: /pvc-volumes                  |
 | 
						|
        |                    |   crush_rule_name: storage_tier_ruleset     |
 | 
						|
        |                    |   data_pool_name: kube-cephfs-data          |
 | 
						|
        |                    |   fs_name: kube-cephfs                      |
 | 
						|
        |                    |   metadata_pool_name: kube-cephfs-metadata  |
 | 
						|
        |                    |   name: cephfs                              |
 | 
						|
        |                    |   replication: 2                            |
 | 
						|
        |                    |   userId: ceph-pool-kube-cephfs-data        |
 | 
						|
        |                    |   userSecretName: ceph-pool-kube-cephfs-data|
 | 
						|
        +--------------------+---------------------------------------------+
 | 
						|
 | 
						|
#.  Apply the overrides.
 | 
						|
 | 
						|
    #.  Run the :command:`application-apply` command.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            ~(keystone_admin)]$ system application-apply platform-integ-apps
 | 
						|
            +---------------+--------------------------------------+
 | 
						|
            | Property      | Value                                |
 | 
						|
            +---------------+--------------------------------------+
 | 
						|
            | active        | True                                 |
 | 
						|
            | app_version   | 1.0-62                               |
 | 
						|
            | created_at    | 2022-12-14T04:14:08.878186+00:00     |
 | 
						|
            | manifest_file | fluxcd-manifests                     |
 | 
						|
            | manifest_name | platform-integ-apps-fluxcd-manifests |
 | 
						|
            | name          | platform-integ-apps                  |
 | 
						|
            | progress      | None                                 |
 | 
						|
            | status        | applying                             |
 | 
						|
            | updated_at    | 2022-12-14T04:58:58.543295+00:00     |
 | 
						|
            +---------------+--------------------------------------+
 | 
						|
 | 
						|
    #.  Monitor progress using the :command:`application-list` command.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            ~(keystone_admin)]$ system application-list
 | 
						|
            +--------------------------+---------+-------------------------------------------+------------------+----------+-----------+
 | 
						|
            | application              | version | manifest name                             | manifest file    | status   | progress  |
 | 
						|
            +--------------------------+---------+-------------------------------------------+------------------+----------+-----------+
 | 
						|
            | platform-integ-apps      | 1.0-62  | platform-integ-apps-fluxcd-manifests      | fluxcd-manifests | applied  | completed |
 | 
						|
            +--------------------------+---------+-------------------------------------------+------------------+----------+-----------+
 | 
						|
 | 
						|
    You can now create and mount PVCs from the default |RBD| provisioner's
 | 
						|
    **general** storage class, from within these application-specific
 | 
						|
    namespaces.
 | 
						|
 | 
						|
 |