Comments (6)
there is a bit of friction in getting those providers downloaded where they are needed, such as the deployment agents
Can you provide more details on the friction?
from pulumi.
@MMartyn when building your providers, you can use the pluginDownloadUrl
to point to a private location:
Here is an example from a non-Pulumi owned package, living in another Github organization:
https://github.com/pulumiverse/pulumi-unifi/blob/main/provider/cmd/pulumi-resource-unifi/schema.json#L14
You can have private Github releases for the plugin binaries because Pulumi picks up the GITHUB_TOKEN
to authenticate. Your SDKs can be published to a private registry like Artifactory or Nexus. Hope this already helps a bit.
from pulumi.
there is a bit of friction in getting those providers downloaded where they are needed, such as the deployment agents
Can you provide more details on the friction?
Some of the friction is needing to have the consumers set up their GITHUB_TOKEN in order to pull the binaries and another would be needing to specify the providers explicitly in the stacks like so:
provider:
type: pulumi:providers:foo
defaultProvider: true
options:
version: "0.0.1"
pluginDownloadURL: github://api.github.com/org/foo
from pulumi.
You can have private Github releases for the plugin binaries because Pulumi picks up the
GITHUB_TOKEN
to authenticate
Once, I set the download url on the provider, I see that the deployment agent was able to download the provider, so seems deployments are ok in this regard.
from pulumi.
@MMartyn the need to set the pluginDownloadUrl
when using Pulumi YAML is needed for any non-Pulumi owned package, public and private.
https://www.pulumi.com/docs/languages-sdks/yaml/yaml-language-reference/#resource-options
This is not needed for regular language SDKs as this url is integrated in the generated SDKs, for instance:
https://github.com/pulumiverse/pulumi-unifi/blob/main/sdk/nodejs/package.json#L27
from pulumi.
The main pain point that pushed me to opening this was that it at first seemed like I would need to manually setup a GITHUB_TOKEN in the deployment agent for private providers to work. However, it ended up not being the case as the agent already had a token it could use to get the private provider (although it isn't clear to me how that mechanism works). So that said, the only remaining parts that I find a bit of a chore are ensuring users set up their GITHUB_TOKEN's and finding an appropriate place to host the SDKs.
Feel free to close this as my main issue ended up being fine.
from pulumi.
Related Issues (20)
- v3.108.0 release workflow failed HOT 1
- Release workflow that pushes post-release changelog and go.mod updates straight to master fails
- [sdk/nodejs] Regression: v3.108.0 of `@pulumi/pulumi` breaks Node.js provider SDK TypeScript compilation HOT 3
- Test are failing for PRs (`TestCodePathsWorkspace`, `TestCodePathsNested`, etc.) HOT 2
- Pulumi import with `--properties` flag HOT 2
- --expect-no-changes doesn't fail on stack output changes HOT 1
- Improve how warnings are exposed through the Automation API
- TestMultiplePolicyPacks is flaky
- Side-by-side tests fail for some versions of typescript but don't get flagged as a failure in CI
- conformance tests are flaky HOT 3
- Support Invoke secrets from Schema HOT 1
- Examples rendered with not_implemented HOT 9
- [Epic] Ensure PRs don't regress test coverage HOT 1
- [sdk/python] Synchronous invokes dependent on providers cause stalls in resource registrations - severly limiting parallelism HOT 2
- [go/program-gen] Generating Go program panics when converting program for a multi-language component
- Conformance tests consistently fail on first try HOT 2
- On imports that "do not match the existing resource", log the diff of what did not match HOT 1
- pulumi state delete on component resource is throwing no such resource HOT 6
- Pulumi add option to convert terraform file to ComponentResource HOT 1
- Pulumi import code generation failing for Managed Cluster HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pulumi.