You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You guys are awesome
First of all, thank you Dan et al for building a wonderful tool for the Rails community.
Describe the bug
I have configured my rails 6.1 app with coverband and it works fine in localhost talking to Redis in a local docker container.
Our app deploys to AWS ECS in staging and production. For staging (the first one I tried), it works to create a single-node clustered ElastiCache with what AWS calls Redis OSS. In the Rails environment we set REDIS_URL to be redis://elasticache-endpoint:6379.
To make it work the option Transit encryption mode needs to be set to Preferred instead of the default Required. This means that TLS from the client side (the Rails/Coverband side) is optional. When it is set to Required coverband can't send data to Redis. The error message in the server logs is
coverage failed to store
Coverband Error: #<Redis::TimeoutError: Waited 1.0 seconds> Waited 1.0 seconds
So I'm convinced that the default transport security from coverband is none. Is it possible to configure it to use TLS from the containing Rails app? Or would it require a code change to the gem? I realize this is not a bug in coverband but other people may have also run into this.
What we really want to do is create the Redis cache as a serverless ElastiCache, but serverless does not offer the option Transit encryption mode. It is always Required.
To Reproduce
Steps to reproduce the behavior:
Create a serverless ElastiCache instead of the single-node cluster described above
Include an environment variable REDIS_URL with value redis://elasticache-endpoint:6379
Start the app with coverband enabled
See error in the logs
Expected behavior
I can create a serverless ElastiCache for Redis on AWS and provide coverband with REDIS_URL (with additional TLS config on the coverband side) and coverage works as expected.
The text was updated successfully, but these errors were encountered:
You guys are awesome
First of all, thank you Dan et al for building a wonderful tool for the Rails community.
Describe the bug
I have configured my rails 6.1 app with coverband and it works fine in localhost talking to Redis in a local docker container.
Our app deploys to AWS ECS in staging and production. For staging (the first one I tried), it works to create a single-node clustered ElastiCache with what AWS calls
Redis OSS
. In the Rails environment we setREDIS_URL
to beredis://elasticache-endpoint:6379
.To make it work the option
Transit encryption mode
needs to be set toPreferred
instead of the defaultRequired
. This means that TLS from the client side (the Rails/Coverband side) is optional. When it is set toRequired
coverband can't send data to Redis. The error message in the server logs isSo I'm convinced that the default transport security from coverband is none. Is it possible to configure it to use TLS from the containing Rails app? Or would it require a code change to the gem? I realize this is not a bug in coverband but other people may have also run into this.
What we really want to do is create the Redis cache as a serverless ElastiCache, but serverless does not offer the option
Transit encryption mode
. It is alwaysRequired
.To Reproduce
Steps to reproduce the behavior:
REDIS_URL
with valueredis://elasticache-endpoint:6379
Expected behavior
I can create a serverless ElastiCache for Redis on AWS and provide coverband with
REDIS_URL
(with additional TLS config on the coverband side) and coverage works as expected.The text was updated successfully, but these errors were encountered: