-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Add support for overriding plugin download URLs #8798
Conversation
7faa594
to
c139003
Compare
Codecov Report
@@ Coverage Diff @@
## master #8798 +/- ##
==========================================
+ Coverage 59.38% 59.39% +0.01%
==========================================
Files 637 637
Lines 97911 97943 +32
Branches 1386 1386
==========================================
+ Hits 58141 58177 +36
+ Misses 36491 36482 -9
- Partials 3279 3284 +5
Continue to review full report at Codecov.
|
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.
For example, compiling the Pulumi CLI with the following linker flag:
I was thinking why would you want to do this with a linker flag but then we don't really have a good story for global config so I guess this is as sane an option as anything else for now.
This commit adds a variable that can be set with a linker flag to override the plugin download URL for matching plugin names. For example, compiling the Pulumi CLI with the following linker flag: - `-X [module path]/workspace.pluginDownloadURLOverrides=^foo.*=https://foo,^bar.*=https://bar` Would make it so that plugin names that start with "foo" are downloaded from https://foo and names that start with "bar" are downloaded from https://bar.
c139003
to
ab6745a
Compare
The exact same thought process went through my head. |
… the package (#16186) <!--- Thanks so much for your contribution! If this is your first time contributing, please ensure that you have read the [CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md) documentation. --> # Description Overriding plugin download URLs with compilation flags was originally added in #8798. Its intent was allowing our customers to override download locations for all plugins, so that only trusted pre-approved plugins could be downloaded. Since then, we've added `PluginDownloadURL` for a package, which is the default URL for that package's binary if it's shipped outside our Pulumi org. Currently, `PluginDownloadURL` takes precedence over `pluginDownloadURLOverrides`, which means it's impossible to override third-party package binary locations. This PR changes plugin source resolution to flip the priority of those two. If an override matches regex, its URL will take priority over the default `PluginDownloadURL` specified in the package. I have added tests to verify `pluginDownloadURLOverrides` with and without `PluginDownloadURL`. The second one fails before my change. Resolves #16058 ## Checklist - [x] I have run `make tidy` to update any new dependencies - [x] I have run `make lint` to verify my code passes the lint check - [ ] I have formatted my code using `gofumpt` <!--- Please provide details if the checkbox below is to be left unchecked. --> - [x] I have added tests that prove my fix is effective or that my feature works <!--- User-facing changes require a CHANGELOG entry. --> - [x] I have run `make changelog` and committed the `changelog/pending/<file>` documenting my change <!-- If the change(s) in this PR is a modification of an existing call to the Pulumi Cloud, then the service should honor older versions of the CLI where this change would not exist. You must then bump the API version in /pkg/backend/httpstate/client/api.go, as well as add it to the service. --> - [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Cloud API version <!-- @pulumi employees: If yes, you must submit corresponding changes in the service repo. -->
Description
This commit adds a variable that can be set with a linker flag to override the plugin download URL for matching plugin names.
For example, compiling the Pulumi CLI with the following linker flag:
-X [module path]/workspace.pluginDownloadURLOverrides=^foo.*=https://foo,^bar.*=https://bar
Would make it so that plugin names that start with "foo" are downloaded from https://foo and names that start with "bar" are downloaded from https://bar.
Checklist