Skip to content

[META] Testing strategy for auxiliary transports #5524

@finnegancarroll

Description

@finnegancarroll

OpenSearch allows for pluggable client server transports to be implemented by plugins and exposed to clients. As these transports mature and become adopted by users they must integrate functionality provided by the security plugin such as encryption in transit, authentication, and authorization. For these features we require a robust and maintainable testing framework which comes with some complications.

Auxiliary transports are implemented as OpenSearch plugins. Due to this, security plugin is agnostic as to their implementation and existence. To the security plugin, auxiliary transports are represented only by a "type" identifier ("grpc-transport", "arrow-flight-transport", ect) as well as a port range. Requiring the security plugin to integration test each new auxiliary transport breaks this framework and is potentially unsustainable as new transports are introduced in third party plugins.

Some options to consider:

  • Implement aux transport ITs in opensearch-build smoke tests which are executed daily on the bundled distribution.
  • Implement aux transport ITs in security plugin with security plugin taking aux transports as test only dependencies.
  • Require aux transports be third party plugins such that they can take a dependency on the security plugin and implement their own ITs.
  • Negotiate some split where security plugin bears the responsibility of ITs for native plugin and module auxiliary transports, but third party plugin aux transports must take a dependency on security plugin and implement ITs themselves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    triagedIssues labeled as 'Triaged' have been reviewed and are deemed actionable.

    Type

    No type

    Projects

    Status

    Not started

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions