mirror of https://github.com/pulumi/pulumi.git
![]() We recently introduced getting plugins from Git repositories. So far we only allowed users to get repositories with code in the top level directory, not in subdirectories. Since people might be interested in monorepos, where multiple plugins live in a single repository, we start allowing that in this PR. We also want to allow these plugins to access code in their parent directories if they live in the same repository. This means we want to install the whole repository in `$PULUMI_HOME/plugins`. We do that by installing the repository with the same name as if the plugin were living at the top level. The plugin download URL then encodes enough information for us to figure out the path within that directory to execute the plugin. There's an interesting case here when someone wants to install different plugins from the same repository at the same version. We would usually only install the dependencies for the first installation. However in this case we also want to install the dependencies for the second plugin in the same folder, without having to fetch the whole repo all over again. We do that at the small expense that when a plugin fails to be started, we try to install the dependencies and try to start the plugin again. In normal operation there will be no performance impact from this. Fixes https://github.com/pulumi/pulumi/issues/18250 |
||
---|---|---|
.. | ||
archive | ||
asset | ||
config | ||
plugin | ||
sig | ||
testing | ||
urn | ||
alias.go | ||
asset.go | ||
asset_test.go | ||
custom_timeouts.go | ||
errors.go | ||
mapper_test.go | ||
properties.go | ||
properties_diff.go | ||
properties_diff_test.go | ||
properties_path.go | ||
properties_path_test.go | ||
properties_test.go | ||
property_compatibility.go | ||
property_compatibility_test.go | ||
resource_goal.go | ||
resource_id.go | ||
resource_id_test.go | ||
resource_operation.go | ||
resource_state.go | ||
resource_state_test.go | ||
stack.go | ||
status.go | ||
urn.go |