s3gns enables3gns

S3gns subcommand to enable S3 global namespace.

A S3 client can authenticate to all the S3 storage across fabrics in the S3 global namespace, by using a single set of access key/secret key. This is achieved by way of enabling S3 global namespace by using the clustergroup s3gns command.

The S3 global namespace provides a unified data plane and control plane for all native S3 storage (S3 storage on fabrics).

The unified S3 storage across fabrics in the S3 global namespace comprises a primary fabric and one or more non-primary or secondary fabrics.
IMPORTANT
The S3 global namespace can be enabled on the primary cluster/fabric only. To enable S3 global namespace on a cluster group, you must run the clustergroup s3gns command on the primary cluster/fabric. When you enable S3 global namespace on the primary cluster of a cluster group, the previous access key and secret key for all the non-primary clusters are overwritten with the access key and secret key that belong to the primary cluster. The S3 client can authenticate to the primary/non-primary clusters by using the access key and secret key of the primary cluster only.
Once a S3 global namespace is enabled, S3 storage on a fabric in the S3 global namespace can be accessed using the access point or IP address of any fabric in the cluster group.

Syntax

CLI
maprcli clustergroup s3gns 
  -enables3gns enabling S3GNS will overwrite existing keys/IAM policies of the non-primary cluster.
REST
Request Type POST
Request URL
http[s]://<host>:<port>/rest/clustergroup/s3gns?enables3gns<parameters>

Parameters

Parameter Description

enables3gns

(Optional) Set this option to true to enable S3 global namespace on the cluster group.

This setting must be enabled only if you wish to access the objects and or buckets belonging to all clusters/fabrics in the cluster group from any cluster in the cluster group by way of a common pair of keys and by using a common access point.

The default value for this option is false.

WARNING
Enabling S3 global namespace overwrites all the keys and IAM policies on non-primary clusters/fabrics with the keys and IAM policies of the primary cluster. Ensure that relevant changes in your S3 client scripts are made, before you can enable S3 global namespace on your cluster group.

Example

CLI
maprcli clustergroup s3gns -enables3gns true -json
{
        "timestamp":1720589652245,
        "timeofday":"2024-07-09 10:35:31.245 GMT-0700 PM",
        "status":"OK",
        "total":0,
        "data":[

        ],
        "messages":[
                "Successfully executed s3gns command"
        ]
}
REST
curl -u <username> -X POST https://server.sj.us:8443/rest/clustergroup/s3gns?enables3gns=true
NOTE
If you run the mc ls command after enabling S3 global namespace, you should see all the native S3 servers listed, along with any external S3/NFS servers that are a part of the cluster group.
# /opt/mapr/bin/mc ls mapralias/gns/
[2024-07-09 22:23:55 PDT] 1B cluster-a
[2024-07-09 22:23:55 PDT] 7B cluster-b
[2024-07-09 22:23:55 PDT] 4B cluster-c
[2024-07-09 22:23:55 PDT] 9B extcluster-1
TIP
If S3 global namespace is not enabled, the mc ls command would list only the cluster or fabric on which you are running the command, along with any external S3 servers in the cluster group, even if there are other native clusters/fabrics in the cluster group.