Adding support to disable SSL based connection to Elastic Search through a config parameter.
Support HTTP connection to Elastic search with default being HTTPS.
- Under review
Context & Scope
Currently connection to elastic search is mandated to be with SSL connection only. This is causing for a local setup development blocker, as it needs SSL enabled elastic search setup locally.
- Allow for user to explicitly switch off the use of HTTPS when making connection to elastic search endpoint.
- The default is still with SSL enforced. Its optional for anyone who wants to switch off to switch off SSL.
- This is achieved by doing changes at these places
- Core-lib changes
- Making changes in the core lib, by adding logic to the create of the elasticsearch client that provides way for getting the client with SSL and TLS not mandated.
- The setting of elastic search that enables/disables SSL has a default of having SSL "enabled".
- The setting lies in line with where the elastic creds are stored currently.
- The way to fetch values by default value is added.
- Indexer changes
- The changes are mostly to the test core.
- Ability to fetch the value of the config for SSL enablement with default as SSL enabled.
- Updating the client creation to define the scheme based on the flag that is set.
- Search changes
- The changes are similar to the indexer changes as at both places the test cores have a copy kind of notion for the ElasticUtils file.
- Core-lib changes
Next refactor (nice to have): Better to get the test core common functional items to a core test lib so as to reduce the multiple places of changes.
Tradeoff Analysis - Input to decision
Alternatives and implications
- This step could be an intermediate one for moving to profile based spring boot application launch.
- Profiles would help us segregate and override the required env variables based on profile selection during launch of service.
- Bringing profiles in one change is a larger change.