Skip to content
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

Default to binarySource=install #14531

Closed
Tracked by #18020
rarkins opened this issue Mar 5, 2022 · 10 comments · Fixed by #18027
Closed
Tracked by #18020

Default to binarySource=install #14531

rarkins opened this issue Mar 5, 2022 · 10 comments · Fixed by #18027
Assignees
Labels
breaking Breaking change, requires major version bump priority-2-high Bugs impacting wide number of users or very important features status:in-progress Someone is working on implementation type:feature Feature (new functionality) v33

Comments

@rarkins
Copy link
Collaborator

rarkins commented Mar 5, 2022

What would you like Renovate to be able to do?

Default to binarySource=install behavior, mainly for the flow-on benefit in the renovate/renovate image.

If you have any ideas on how this should be implemented, please tell us here.

Change the default in a major release. Make sure that non-buildpack users don't get confusing warnings.

Is this a feature you are interested in implementing yourself?

Maybe

@rarkins rarkins added type:feature Feature (new functionality) priority-2-high Bugs impacting wide number of users or very important features breaking Breaking change, requires major version bump status:ready labels Mar 5, 2022
@rarkins rarkins added the v33 label Mar 12, 2022
@rarkins rarkins self-assigned this Mar 28, 2022
@rarkins rarkins added status:requirements Full requirements are not yet known, so implementation should not be started and removed status:ready labels Mar 28, 2022
@rarkins
Copy link
Collaborator Author

rarkins commented Mar 28, 2022

@viceice do you think this makes most sense in Renovate itself, or in the Docker image?

Maybe it's best to have our docs showing the actual defaults in our image, which would mean doing it here. Then we just need to make sure that it gracefully downgrades to global if in non-buildpack.

@viceice
Copy link
Member

viceice commented Mar 28, 2022

I think we should do it here in a major bump. We should also extend the docs to explain the different settings a little bit more.

@rarkins rarkins added status:ready and removed status:requirements Full requirements are not yet known, so implementation should not be started labels Apr 11, 2022
@or-adar
Copy link

or-adar commented Apr 11, 2022

Hi @rarkins and @viceice,
I've read about binarySource=install & binarySource=docker in the docs, and it looks like there are several approaches to let Renovate use the appropriate dependencies a repository needs (like suitable npm & node versions).
While using binarySource=docker with renovate/renovate:slim is recommended on your documents for setting a Self Hosted instance in GitLab, it looks like using renovate/renovate image with binarySource=install is much easier to set up for my needs (as I also need some internal certificates to have there).
Just wanted to ask if it's safe to use renovate/renovate image with binarySource=install for updating dependencies with different constraints?

@rarkins
Copy link
Collaborator Author

rarkins commented Apr 11, 2022

Yes, it's safe, but the list of supported managers so far is short (npm, yarn, composer). Not yet to language level like node and python

@renovatebot renovatebot deleted a comment May 12, 2022
@Shegox
Copy link
Contributor

Shegox commented May 18, 2022

Just wanted to add that we used binarySource=install with the full docker image over the last months without any problems and this solved quite a large problem with different package-lock versions.

rarkins added a commit that referenced this issue Jun 3, 2022
@rarkins rarkins added status:in-progress Someone is working on implementation and removed status:ready labels Jun 3, 2022
@rarkins rarkins mentioned this issue Sep 28, 2022
8 tasks
rarkins added a commit that referenced this issue Oct 5, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
rarkins added a commit that referenced this issue Oct 6, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
rarkins added a commit that referenced this issue Oct 12, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
rarkins added a commit that referenced this issue Oct 13, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
@maxbrunet
Copy link
Contributor

The release notes should indicate that Renovate will not work with a read-only filesystem anymore (including the container-base image). Otherwise, this could surprise some users, I have run it with that extra security setting myself

@rarkins
Copy link
Collaborator Author

rarkins commented Oct 14, 2022

@maxbrunet could you suggest the wording for this? I guess users can still switch back to binarySource=global if so too?

@maxbrunet
Copy link
Contributor

Maybe

Renovate now requires a writable root filesystem in order to install binaries at runtime. For example, in Kubernetes, if you still wish to use container securityContext options like readOnlyRootFilesystem: true or a GID different from 0 (root) via runAsGroup, you can set binarySource=global to restore the old behavior.

(verbose version)

@HonkingGoose
Copy link
Collaborator

I think we can simplify a bit, and fix the styling as well:

Renovate now needs a writable root filesystem to install binaries at runtime.
For example, in Kubernetes, if you still wish to use container `securityContext` options like `readOnlyRootFilesystem: true` or a GID different from `0` (root) via `runAsGroup`, you can set `binarySource=global` to restore the old behavior.

rarkins added a commit that referenced this issue Oct 19, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
rarkins added a commit that referenced this issue Oct 21, 2022
Changes binarySource default value from global to install.

Closes #14531

BREAKING CHANGE: Users of containerbase images (such as official Renovate images) will now have dynamic package manager installs enabled by default.
@renovate-release
Copy link
Collaborator

🎉 This issue has been resolved in version 33.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking Breaking change, requires major version bump priority-2-high Bugs impacting wide number of users or very important features status:in-progress Someone is working on implementation type:feature Feature (new functionality) v33
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants