Replies: 2 comments 2 replies
-
One thought on how to manage the dependencies could be to use extra/optional dependencies in the pyproject.toml. So by default the pip package wouldnt pull any of the product specific dependencies. And instead users would install with commands like pip install -y chaostoolkit-hashicorp[consul,vault] or pip install -y chaostoolkit-hashicorp[all] those might be ways to mitigate just installing all the dependencies for all the products and puts it on the user to install the extra dependencies. An example of this can be seen with fastapi's pyproject.toml |
Beta Was this translation helpful? Give feedback.
-
Hi Chris, Thank you for bringing this discussion up. While I'm generally leaning towards a single hashicorp extension, I think you are making good points that I don't want to ignore. So I'm happy to allow splitting per-Hashicorp product in this case as they fit what yuou are describing. Also, we already have a chaostoolkit-terraform. Just for the records, here were my concerns of splitting:
But I don't think my points hold that strongly. It doesn't mean we should split in every cases. As you said, sometimes it's easier to group (AWS, GCP, Kubernetes...) because it makes more sense conceptually. |
Beta Was this translation helpful? Give feedback.
-
Today I was searching for a Hashicorp Consul extension for CTK and didn't find one either in the chaostoolkit or chaostoolkit-incubator organisations. I searched the web but it doesn't seem like any exists.
I built out my own using the extension template and have built is as chaostoolkit-consul. This is only in the early stages and introduces the package structure and actions and probes for the consul KV.
As part of this early work I sent it out to the slack community for early feedback before doing further development. One point that came up is should we have all products of a vendor housed under a single extension for the vendor. In this case example it would be
chaostoolkit-Hashicorp
.An example of what that package structure might look like all housed under a single extension could be
There are other examples of this such as
chaostoolkit-aws
which hosts a large collection of sub packages related AWS services all under a single service. However Where i believe that differs from this use case is while the aws sub packages are a collection of different services they are all controlled mostly through the samebotocore
library and all have the same dependency so makes sense that these are housed as sub packages.In my view the Hashicorp Products don't fit that paradigm as they are all separate products, they all have their own SDK or community based packages to interact with the products. There is very little commonality between them and they in most cases don't even have the same dependencies.
My personal view would be to create separate extensions for each of the Hashicorp products, however this discussion should look at defining a community standard for this. Or at least a set of lose guide lines of when you might want to group them under a single extension vs multiple extensions. The following are my reasons for wanting to maintain separate repos for each:
I am open to hearing discussion points that would support why housing them all together under
chaostoolkit-hashicorp
might be better or any counter points to my above comments. I fully believe to get the best long term strategy for the tool requires the community to come together and share their views. After all you all are the people who use the tool and have to live with these design choices.Beta Was this translation helpful? Give feedback.
All reactions