-
Notifications
You must be signed in to change notification settings - Fork 189
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
Refactor caching of chef-client #300
Comments
What we can't do is increase the number of repeat downloads served of chef-client, because that comes out of Chef's pocket. What ideas do people have to fix the use cases that are broken, without increasing the number of repeat downloads we serve of chef-client? |
So there's 2 major changes that absolutely need to be made, otherwise we've just entirely broken test kitchen for users:
|
Core to this is that we absolutely must know that the end user has the correct/working combination of hypervisor and base box with compatible vmtools for the shared folder method to be viable. The problem is that we can't introspect this in a meaningful way without either building this matrix into kitchen-vagrant or having reach out to some external endpoint that has a compatibility list - neither of these are viable solutions to maintain. At best we should only enable caching by default for base boxes that we know should at least have vmtools installed which would be things in Shared folders via hypervisors are inherently brittle and the caching solution relies on them to be a lot more predictable and useable than they are in practice. |
We can't ask Chef to pay to serve up repeat downloads of chef-client to people running Kitchen, unless we know that those people can't get chef-client onto their instances in any automated way other than by re-downloading chef-client from Chef. How can we ensure that we don't waste Chef's resources, but still provide a great user experience? |
@charlesjohnson Do we collect data on how many installs as a proportion of the whole are coming from kitchen+kitchen-vagrant? Because that seems like a good thing to have numbers on before we cite it as a reason to do or not do things. |
Wouldn't that be great? But no, don't have a way to get that data afaik, paging @schisamo to confirm. |
We could, at a minimum, have the install.sh/ps1 scripts record |
Or, now that it's all handled in mixlib-install, we could directly pass it the driver name and |
So mixlib-install does have the ability to set We'll need to tweak test-kitchen to set this option properly. There is also some work in flight to properly extract the |
@schisamo That doesn't seem to be supported by |
@coderanger Yeah |
I've outlined the short term fixes here: https://gist.github.com/cheeseplus/8a1871b837a31cd6c0113a382fe8e03d |
I've co-opted two existing issues to track this:
|
I'll take care of #293 👍 |
The current implementation suffers from a few issues that make the experience less than delightful, especially new users.
I personally feel like caching by default breaks the semver contract but I do understand why we added caching (downloads cost money) so that ship may have sailed.
I propose that we:
The text was updated successfully, but these errors were encountered: