-
-
Notifications
You must be signed in to change notification settings - Fork 761
Add required dependency to support etcd3gw driver. #5528
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
base: master
Are you sure you want to change the base?
Add required dependency to support etcd3gw driver. #5528
Conversation
khushboobhatia01
commented
Jan 6, 2022
- Added etcd3gw dependency required by tooz.
- Downgraded tenacity to 6.3.1 as tooz dependency on tenacity has always been < 7.0.0 and etcd3gw fails with higher versions. https://github.com/openstack/tooz/blob/174065f8750ff374e140fae956758b0b5ec2c473/requirements.txt#L9
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.
Thanks for the PR!
Per https://docs.stackstorm.com/coordination.html, we explicitly state that some backends might need a pip dependency which st2 doesn't provide and only redis
is currently shipped by default.
Are you using etcd
for coordination in your prod?
Yes. We're using etcd right now, but we would want to enable service registry which requires etcd3gw. |
In the past, we thought to make it the default driver, but eventually, switched to Redis as recommended default which provided the best experience. @Kami if you remember more context about the etcd3gw. @arms11 Are you folks using etcd as well as a st2 coordination backend or it's Redis? |
@armab etcd3 driver doesn't work with StackStorm because of https://review.opendev.org/c/openstack/tooz/+/466098/. I've confirmed this locally ST2 services keep crashing. However, I've verified etcd3gw driver and everything seems to work fine. The groups created in etcd3gw are different than expected though. We're looking to move to etcd3gw to use graceful shutdown implementation which is in progress (https://github.com/StackStorm/st2/pull/5428/files#diff-1ab1580c88e8cd9d04ca84d9f108163e136e32c9b50c7b829fbab8b70b4e6cffR155). |
|
@khushboobhatia01 - I am sorry for the dumb click and closing this by mistake. Just to understand, now since |
@arms11 @armab We have been using etcd as coordination driver since we started using StackStorm about 3 years back. Since then we have stabilized our infrastructure to support a large number of executions. Currently we saw about 3M+ executions. Our fleet and user base is going to increase more and I don't think we'll be moving to redis anytime soon. |
We're bundling The problem of bundling multiple dependencies for backends is that there are many of them: zookeeper, consul, Memcached, etc, etc. Once we start including more than a single default one, it would be hard to stop from accepting other dependency backends, if proposed. It'll also increase the number of dependencies/package size/etc. Let's collaborate on how to proceed here. @StackStorm/tsc are we good with adding an additional coordination driver dependency in the st2 core? |
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.
With how we're creating the virtualenvs right now, I think this is the best approach. So 👍 from me
@armab bundling multiple tooz backend dependencies is a no-win situation. This PR demonstrates the situation by the fact that redis end to end testing works with tenacity 7.x, yet it breaks with the etcd3gw module. Since we only test the tooz redis backend, we can only guarantee production readiness specifically for this backend and no others. Attempting to find common ground between 11 tooz backends and their python module dependencies is a road leading to dependency hell. This is especially true when factoring the module compatibility with a specific software versions multiplied by the number of different versions across all the St2 user base. I'm normally pro-choice, in this particular case, I don't see how we can reasonably support bundling more than 1 backend. I also suggest we add a very strong warning in the coordinator documentation stating that only |
I'm also concerned about having dependencies in that we don't test. If we find in future that tenacity > x is needed for redis, then we are going to have problems, as we might get into incompatabilities between version of packages needed for etcd3gw and redis. |
I am a no on this as well
…On Wed, Jan 12, 2022, 3:50 AM Carlos ***@***.***> wrote:
@armab <https://github.com/armab> bundling multiple tooz backend
dependencies is a no-win situation. This PR demonstrates the situation by
the fact that redis end to end testing works with tenacity 7.x, yet it
breaks with the etcd3gw module. Since we only test the tooz redis backend,
we can only guarantee production readiness specifically for this backend
and no others.
Attempting to find common ground between 11 tooz backends and their python
module dependencies is a road leading to dependency hell. This is
especially true when factoring the module compatibility with a specific
software versions multiplied by the number of different versions across all
the St2 user base.
I'm normally pro-choice, in this particular case, I don't see how we can
reasonably support bundling more than 1 backend. I also suggest we add a
very strong warning in the coordinator documentation stating that only
redis is officially supported for production use and the onus of
testing/patching other backends rests completely with the user.
—
Reply to this email directly, view it on GitHub
<#5528 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACZ5TINJDACQYW33A7RVZ7LUVU6HBANCNFSM5LL6RL4A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you are on a team that was mentioned.Message
ID: ***@***.***>
|
I hear that including other coordination backend dependencies like Speaking of We have another bug report #5387, where Consul backend also fails with the new
@StackStorm/maintainers Is that OK? |
Wfm
…On Wed, Jan 12, 2022, 6:00 PM Eugen Cusmaunsa ***@***.***> wrote:
I hear that including other coordination backend dependencies like etcd3gw
in st2 requirements.txt is a no-go at this moment.
Let's leave this open. Maybe we'll see more community requests in the
future.
------------------------------
Speaking of tenacity which is already part of the st2 and is pulled by
some other dependency (not Redis
<https://github.com/redis/redis-py/blob/master/requirements.txt>).
We have another bug report #5387
<#5387>, where Consul backend
also fails with the new v7 tenacity version, similar to etcd3gw.
So considering we don't need to install any new packages, perhaps we could
make it easier for the community and pin it?
If we'll find that some core st2 dependency needs a newer version, - we'll
update it as the first priority without a notice or support promises.
But as long as there is no conflict here and it doesn't break anything, -
pinning should be fine.
Is that OK?
—
Reply to this email directly, view it on GitHub
<#5528 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACZ5TIJP7CEQQFL6N6LPVB3UVYBYNANCNFSM5LL6RL4A>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you are on a team that was mentioned.Message
ID: ***@***.***>
|
Prevent merging till there is consensus
Also yeah, we've missed the point that @khushboobhatia01 Could you please create a new dedicated PR for pinning the tenacity? |
Thanks @armab and others for the review. Will create another PR for pinning tenacity. |
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.
Per discussion here, we'll need a PR that pins the tenacity dependency only.
@khushboobhatia01 As a follow-up to this, |
Yes, @armab |
bkhushboo seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |