Skip to content

new format of the iproto.* config options. #3945

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
TarantoolBot opened this issue Dec 20, 2023 · 0 comments · Fixed by #3947 or #3973
Closed

new format of the iproto.* config options. #3945

TarantoolBot opened this issue Dec 20, 2023 · 0 comments · Fixed by #3947 or #3973
Assignees

Comments

@TarantoolBot
Copy link
Collaborator

TarantoolBot commented Dec 20, 2023

Related dev. issue(s): tarantool/tarantool#9385
Related doc. issue(s): #3665, https://github.com/tarantool/enterprise_doc/issues/225

Product: Tarantool
Since: 3.0
Root document:

SME: @ totktonada, @ ImeevMA

Details

The config options iproto.listen, iproto.advertise.peer and
iproto.advertise.sharding now have a new format.

The iproto.listen config option now has the following format:

iproto:
  listen:
    - uri: <string>
      params:
        transport: <'plain' or 'ssl'>
        ssl_ca_file: <string>
        ssl_cert_file: <string>
        ssl_ciphers: <string>
        ssl_key_file: <string>
        ssl_password: <string>
        ssl_password_file: <string>
    - uri: <string>
      params:
        transport: <'plain' or 'ssl'>
        ssl_ca_file: <string>
        ssl_cert_file: <string>
        ssl_ciphers: <string>
        ssl_key_file: <string>
        ssl_password: <string>
        ssl_password_file: <string>
...

The iproto.listen config option is now an array, and its elements are
records that can only have a required uri field and an optional
params field.

The uri field is of type string and must be a single valid URI. The
URI cannot contain parameters, login and password.

The params field is a record with the fields transport,
ssl_ca_file, ssl_cert_file, ssl_ciphers, ssl_key_file,
ssl_password, ssl_password_file. The transport field can have one
of two values: plain or ssl, the default is plain. If transport
is set to plain, no additional fields are required. When transport
is set to ssl, the fields ssl_key_file and ssl_cert_file are
required, and the remaining fields are optional.

The iproto.advertise.peer and iproto.advertise.sharding now have the
following format:

iproto:
  advertise:
    <'peer' or 'sharding'>:
      uri: <string>
      login: <string>
      password: <string>
      params:
        transport: <'plain' or 'ssl'>
        ssl_ca_file: <string>
        ssl_cert_file: <string>
        ssl_ciphers: <string>
        ssl_key_file: <string>
        ssl_password: <string>
        ssl_password_file: <string>

The iproto.advertise.peer and iproto.advertise.sharding are now
records. All of their fields are optional, however, if the params
field can be set only if the uri field is set and the password field
can be set only if the login field is set.

The uri field is of type string and must be a single valid URI.
The URI cannot contain parameters, login and password. If the uri and
params fields are missing, the appropriate iproto.listen element is
selected. An element is eligible if, after parsing its url field using
require('uri').parse(), the ipv4 result field is not equal to
'0.0.0.0', the ipv6 result field is not equal to '::', and the
service result field is not equal to '0'.

The login and password fields are of type string.

For description of the params field see description of
iproto.listen.
Requested by @ImeevMA in tarantool/tarantool@1247f47.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants