-
Notifications
You must be signed in to change notification settings - Fork 95
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
THREESCALE-9315 set backend-listener to async mode also #862
THREESCALE-9315 set backend-listener to async mode also #862
Conversation
👀 |
/lgtm |
/approve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Async mode on does not support logical databases 3scale/apisonator#135
So, default deployment (with backend redis having two logical databases for stats and queue) will be broken
We are currently using aysnc-redis v0.7.0. I have checked and latest is v0.8.0 and it does not seem to be addressed this issue.
* f11a366 - (3 months ago) Bump minor version. - Samuel Williams (HEAD -> main, tag: v0.8.0, origin/main, origin/HEAD)
* 8920797 - (3 months ago) Modernize gem. - Samuel Williams
* 100b4e0 - (3 months ago) More test fixes. - Samuel Williams
* 5a03fb9 - (3 months ago) Update tests. (#47) - Samuel Williams
* f67fd18 - (3 months ago) Relax dependency on protocol-redis. - Samuel Williams
* 36f3786 - (3 months ago) Add pubsub example. - Samuel Williams
* 71155be - (3 months ago) Modernize gem. (#46) - Samuel Williams
| * 03ecd4d - (3 months ago) Modernize gem. - Samuel Williams (origin/modernize-gem)
|/
* 491f098 - (3 months ago) Disable performance spec. - Samuel Williams
* d9cdb85 - (3 months ago) Add bake-test to `gems.rb`. - Samuel Williams
* ab4f8ef - (9 months ago) A bunch of random examples. - Samuel Williams
* c3321ad - (1 year, 1 month ago) Bump minor version. - Samuel Williams (tag: v0.7.0)
Their issue asking for this was closed socketry/async-redis#15
I would not expect this to be implemented soon unless we go for it ourselves
/hold |
b832d56
to
bd898a9
Compare
/unhold |
01a6dab
to
c04d2de
Compare
Looks like the backend listener needs more deployment changes. Check out the doc about HPA in backend. https://github.com/3scale/apisonator/blob/master/docs/openshift_horizontal_scaling.md Basically, instead of "pumas" (backend HTTP framework), async modes requires "falcons" (backend async HTTP framework). |
/retest-required |
fd01d33
to
71a48cd
Compare
/unhold |
@austincunningham , maybe need rebase (?) |
@austincunningham , I checked both cases. These are few notes.
|
See comment #862 (comment) for 1 the default case. |
/lgtm |
@valerymo it doesn't need rebase, they are old |
THREESCALE-9315 only add CONFIG_REDIS_ASYNC if it is missing, dont reconcile other envvars THREESCALE-9315 always set CONFIG_REDIS_ASYNC to 1
71a48cd
to
f62eb77
Compare
Thanks @austincunningham, to me, it could use some improvements around the env and args reconciliation functions. |
Code Climate has analyzed commit 69f802d and detected 3 issues on this pull request. Here's the issue category breakdown:
View more on Code Climate. |
/lgtm |
Jira
THREESCALE-9315
What
set async by default on backend worker and listener for non logical database see https://github.com/3scale/apisonator/blob/master/docs/openshift_horizontal_scaling.md#enable-async for reference
Verification
3scale configured with Logical databases ( default installation)
oc new-project 3scale-test
make install
make run
DOMAIN=$(oc get routes console -n openshift-console -o json | jq -r '.status.ingress[0].routerCanonicalHostname' | sed 's/router-default.//')
CONFIG_REDIS_ASYNC
envarCONFIG_REDIS_ASYNC
envar3scale configured with non logical databases
The redis will be installed in the cloud-resources-operator ns there should be 2 secrets
redis-que-sec
andredis-storage-sec
with the port and the uri for the redisonce they are created you can stop the CRO operator running
create a key/value secret in the 3scale-test ns called
backend-redis
and add 2 name values with the connection uri and port for the env vars REDIS_QUEUES_URL & REDIS_STORAGE_URLstart the 3scale-operator running locally
Create an apimanager CR with external components set for the backend
CONFIG_REDIS_ASYNC
envarCONFIG_REDIS_ASYNC
envar andLISTENER_WORKERS
falcon
Argspec.containers.env
and see if its reconciled back e.g. remove this