.. _rucio_add_rses: Adding a new Rucio RSE ====================== 1. Create a new entry for a (deterministic) RSE: .. code-block:: bash rucio-admin rse add 2. Point the RSE to an instance of FTS: .. code-block:: bash rucio-admin rse set-attribute --rse --key fts --value https://path/to/fts 3. Set the ``istape`` field to ``false``: .. code-block:: bash rucio-admin rse set-attribute --rse --key istape --value False 4. Configure OIDC support .. code-block:: bash rucio-admin rse set-attribute --rse --key oidc_support --value True 5. Allow the root user unlimited access: .. code-block:: bash rucio-admin account set-limits root "infinity" 6. Allow any other service user unlimited access, e.g. .. code-block:: bash rucio-admin account set-limits service_skaosrc_rtm "infinity" 7. Configure one or more protocols, e.g. for https on 443: .. code-block:: bash rucio-admin rse add-protocol --hostname ...ac.uk --scheme https --prefix '/path/to/storage/area' --port 443 --imp 'rucio.rse.protocols.gfal.Default' --domain-json '{"lan": {"read": 1, "write": 1, "delete": 1}, "wan": {"read": 1, "write": 1, "delete": 1, "third_party_copy_read": 1, "third_party_copy_write": 1}}' If adding more than one, set the third-party copy priority accordingly. Also, if adding root protocol, the corresponding prefix requires an additional slash (/) at the beginning. 8. Add links to other RSEs (these are directional): .. code-block:: bash rucio-admin rse add-distance --ranking 1 rucio-admin rse add-distance --ranking 1 rucio-admin rse add-distance --distance 1 rucio-admin rse add-distance --distance 1 You may need to verify that ``agis_distance`` and ``ranking`` columns are filled in the distances table, otherwise you will end up with "no path" errors in the conveyor daemon: From inside the Rucio database container: .. code-block:: bash psql -U rucio Run the following to check: .. code-block:: sql SELECT r1.rse, r2.rse, ranking, agis_distance FROM rucio.distances LEFT JOIN rses r1 ON r1.id=src_rse_id LEFT JOIN rses r2 ON r2.id=dest_rse_id WHERE ranking<>1 OR agis_distance<>1; If ``agis_distance`` and ``ranking`` values are not set, update them as required. If actual distances are not used, this may simply be a case of setting these values to 1, i.e. .. code-block:: sql update rucio.distances set agis_distance=1 update rucio.distances set ranking=1