Add a RADOS Gateway node

Add a RADOS Gateway nodeΒΆ

This section describes how to add a RADOS Gateway (rgw) node to an existing Ceph cluster.

To add a RADOS Gateway node:

  1. In your project repository, add the following lines to the cluster/ceph/init.yml and modify them according to your environment:

    _param:
      ceph_rgw_node04_hostname: rgw04
      ceph_rgw_node04_address: 172.16.47.162
      ceph_rgw_node04_ceph_public_address: 10.13.0.162
      ceph_rgw_node04_deploy_address: 192.168.0.162
    linux:
      network:
        host:
          rgw04:
            address: ${_param:ceph_rgw_node04_address}
            names:
            - ${_param:ceph_rgw_node04_hostname}
            - ${_param:ceph_rgw_node04_hostname}.${_param:cluster_domain}
    

    Note

    Skip the ceph_rgw_node04_deploy_address parameter if you have DHCP enabled on a PXE network.

  2. Add the following lines to the cluster/ceph/rgw.yml file:

    parameters:
      _param:
        cluster_node04_hostname: ${_param:ceph_rgw_node04_hostname}
        cluster_node04_address: ${_param:ceph_rgw_node04_address}
      ceph:
        common:
          keyring:
            rgw.rgw04:
              caps:
                mon: "allow rw"
                osd: "allow rwx"
      haproxy:
        proxy:
          listen:
            radosgw:
              servers:
                - name: ${_param:cluster_node04_hostname}
                  host: ${_param:cluster_node04_address}
                  port: ${_param:haproxy_radosgw_source_port}
                  params: check
    

    Note

    Starting from the MCP 2019.2.10 maintenance update, the capabilities for RADOS Gateway have been restricted. To update the existing capabilities, perform the steps described in Restrict the RADOS Gateway capabilities.

  3. Add the following lines to the cluster/infra/config/init.yml file:

    parameters:
      reclass:
        storage:
          node:
            ceph_rgw_node04:
              name: ${_param:ceph_rgw_node04_hostname}
              domain: ${_param:cluster_domain}
              classes:
              - cluster.${_param:cluster_name}.ceph.rgw
              params:
                salt_master_host: ${_param:reclass_config_master}
                linux_system_codename:  ${_param:ceph_rgw_system_codename}
                single_address: ${_param:ceph_rgw_node04_address}
                deploy_address: ${_param:ceph_rgw_node04_deploy_address}
                ceph_public_address: ${_param:ceph_rgw_node04_ceph_public_address}
                keepalived_vip_priority: 104
    

    Note

    Skip the deploy_address parameter if you have DHCP enabled on a PXE network.

  4. Add the following lines to the cluster/infra/kvm.yml file and modify infra_kvm_node03_hostname depending on which KVM node the rgw must be running on:

    parameters:
      salt:
        control:
          size:
            ceph.rgw:
              cpu: 8
              ram: 16384
              disk_profile: small
              net_profile: default
          cluster:
            internal:
              node:
                rgw04:
                  name: ${_param:ceph_rgw_node04_hostname}
                  provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
                  image: ${_param:salt_control_xenial_image}
                  size: ceph.rgw
    
  5. Log in to the Jenkins web UI.

  6. Open the Ceph - add node pipeline.

  7. Specify the following parameters:

    Parameter Description and values
    SALT_MASTER_CREDENTIALS The Salt Master credentials to use for connection, defaults to salt.
    SALT_MASTER_URL The Salt Master node host URL with the salt-api port, defaults to the jenkins_salt_api_url parameter. For example, http://172.18.170.27:6969.
    HOST Add the Salt target name of the new RADOS Gateway node. For example, rgw04*.
    HOST_TYPE Removed since 2019.2.13 update Add rgw as the type of Ceph node that is going to be added.
  8. Click Deploy.

The Ceph - add node pipeline workflow:

  1. Launch RADOS Gateway VMs.
  2. Run the reclass state.
  3. Run the linux, openssh, salt, ntp, rsyslog, keepalived, haproxy, ceph.radosgw states.