Compare commits

...

96 Commits

Author SHA1 Message Date
github-actions
f6fe591bdd v0.0.10 2025-01-27 22:59:03 +00:00
Pulumi Bot
90ee40ceb4 Update GitHub Actions workflows. (#431)
This PR was automatically generated by the
rollout-single-native-provider-workflow workflow in the pulumi/ci-mgmt
repo, from commit 50c552c6cdeb4eae0daff4be525adf0706f2513a.
2025-01-27 22:12:26 +00:00
Ramon Quitales
2fdcae409d Sign Windows release binaries (#429)
### Proposed changes

This PR adds a new Makefile target `make sign-goreleaser-exe` target to
sign all built GoReleaser windows binaries. This PR contains 2 changes:

- Makefile target
- Copied ci-mgmt workflow files for validation purposes (generated from:
https://github.com/pulumi/ci-mgmt/pull/1318)

Please see the linked ci-mgmt issue for status of GitHub actions
workflows to validate that the binaries are signed.
2025-01-27 13:03:02 -08:00
Ian Wahbe
dad72f7d65 Upgrade pulumi-go-provider to v0.24.1 (#413)
Fixes #403
2025-01-15 09:29:23 -05:00
Pulumi Bot
48e337859c Update GitHub Actions workflows. (#415)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit cc9527ee9331adf846e9a17b57bdc1ad887238b6.
2025-01-15 12:16:06 +01:00
Ramon Quitales
d46882f9eb Do not diff __internal property in DiffConfig (#414)
This PR updates the implementation of DiffConfig to remove the
`__internal` property when comparing provider config between old state
and new input. It is observed that the `__internal` property is present
when a default provider is used. This causes a provider replacement
every time a user upgrades pulumi-docker-build, as the `__internal`
property is always stripped from state, so Pulumi will always report a
diff.

Ideally, we should determine if this bug can be fixed in either upstream
pulumi-go-provider or pulumi itself. For now, we will fix this locally
within pulumi-docker-build to unblock our users.

Changes:

- Update DiffConfig implementation to strip `__internal` property from
new inputs.
- Add a nodejs upgrade test to test that this solution works

Fixes: #404
2025-01-14 15:01:51 -08:00
Pulumi Bot
8025c5f938 Update GitHub Actions workflows. (#399)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 9cf126a684dd2c81570b52dbf601fcf667eb8eb0.
2025-01-03 11:41:12 -08:00
Pulumi Bot
60164fefcb Automated upgrade: bump pulumi/pulumi to 3.144.1 (#398)
Automated upgrade: bump pulumi/pulumi to 3.144.1
2025-01-03 11:40:59 -08:00
pulumi-renovate[bot]
783a73b91e Pin dependencies (#385)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | pin | [`^3.128.0` ->
`3.144.1`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.144.1/3.144.1)
|
| [@pulumi/pulumi](https://redirect.github.com/pulumi/pulumi)
([source](https://redirect.github.com/pulumi/pulumi/tree/HEAD/sdk/nodejs))
| dependencies | pin | [`^3.128.0` ->
`3.128.0`](https://renovatebot.com/diffs/npm/@pulumi%2fpulumi/3.128.0/3.128.0)
|
|
[github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild](https://redirect.github.com/pulumi/pulumi-docker-build)
| require | patch | `v0.0.0-20240425180359-26c144c916b7` -> `v0.0.8` |
|
[github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet](https://redirect.github.com/pulumi/pulumi-dotnet)
| require | major | `v0.0.0-20241219213128-b19d8c8da35b` -> `v3.71.1` |
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.0.0-20241224122059-455089c460a2` -> `v3.144.1` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.0.0-20241224122059-455089c460a2` -> `v3.144.1` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.0.0-20241224122059-455089c460a2` -> `v3.144.1` |
|
[github.com/pulumi/pulumi/sdk/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.136.1` -> `v3.144.1` |

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>pulumi/pulumi-docker-build
(github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild)</summary>

###
[`v0.0.8`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.8)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.7...v0.0.8)

##### Added

- Multiple exports are now allowed if the build daemon is detected to
have version 0.13 of Buildkit or newer.
([https://github.com/pulumi/pulumi-docker-build/issues/21](https://redirect.github.com/pulumi/pulumi-docker-build/issues/21))

##### Changed

-   Upgraded buildx from 0.16.0 to 0.18.0.

##### Fixed

- Custom `# syntax=` directives no longer cause validation errors.
([https://github.com/pulumi/pulumi-docker-build/issues/300](https://redirect.github.com/pulumi/pulumi-docker-build/issues/300))

###
[`v0.0.7`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.7)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.6...v0.0.7)

##### Fixed

- Fixed an issue where registry authentication couldn't be specified on
the

provide[https://github.com/pulumi/pulumi-docker-build/issues/262](https://redirect.github.com/pulumi/pulumi-docker-build/issues/262)/262)

###
[`v0.0.6`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.6)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.5...v0.0.6)

##### Fixed

- Refreshing an `Index` resource will no longer fail if its stored
credentials have expired.
([https://github.com/pulumi/pulumi-docker-build/pull/194](https://redirect.github.com/pulumi/pulumi-docker-build/pull/194))

##### Changed

- Local and tar exporters will now trigger an update if an export
doesn't exist at the expected path.
([https://github.com/pulumi/pulumi-docker-build/pull/195](https://redirect.github.com/pulumi/pulumi-docker-build/pull/195))

###
[`v0.0.5`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.5)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.4...v0.0.5)

##### Fixed

-   Fixed Go SDK publishing.

##### Changed

-   Upgraded docker from 27.0.3 to 27.1.0.

###
[`v0.0.4`](https://redirect.github.com/pulumi/pulumi-docker-build/releases/tag/v0.0.4)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-docker-build/compare/v0.0.3...v0.0.4)

##### Changed

-   Upgraded buildkit from 0.13.0 to 0.15.0.
-   Upgraded buildx from 0.13.1. to 0.16.0.
-   Upgraded docker from 26.0.0-rc1 to 27.0.3.
-   Fixed an issue where warnings were not displayed correctly.

</details>

<details>
<summary>pulumi/pulumi-dotnet
(github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet)</summary>

###
[`v3.71.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3711---2024-12-19)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.71.0...v3.71.1)

##### Bug Fixes

- \[sdk] Await background tasks during inline deployment
[#&#8203;420](https://redirect.github.com/pulumi/pulumi-dotnet/pull/420)

- \[sdk] Fix parameterized explicit providers
[#&#8203;435](https://redirect.github.com/pulumi/pulumi-dotnet/pull/435)

- \[runtime] Fix the language plugin to return a version
[#&#8203;390](https://redirect.github.com/pulumi/pulumi-dotnet/pull/390)

###
[`v3.71.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3710---2024-12-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.70.0...v3.71.0)

##### Improvements

- \[sdk] Allow specifying dependencies for output invokes
[#&#8203;412](https://redirect.github.com/pulumi/pulumi-dotnet/pull/412)

- \[sdk/provider] Add Parameterize to the provider interface
[#&#8203;404](https://redirect.github.com/pulumi/pulumi-dotnet/pull/404)

###
[`v3.70.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3700---2024-11-27)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.69.0...v3.70.0)

##### Bug Fixes

- \[sdk/auto] Fix warning for inline programs
[#&#8203;388](https://redirect.github.com/pulumi/pulumi-dotnet/pull/388)

##### Improvements

- \[runtime] Reduce binary size by stripping debug information
[#&#8203;411](https://redirect.github.com/pulumi/pulumi-dotnet/pull/411)

###
[`v3.69.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3690---2024-11-21)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.68.0...v3.69.0)

##### Improvements

- \[sdk] Make Pulumi.RunException public
[#&#8203;364](https://redirect.github.com/pulumi/pulumi-dotnet/pull/364)

- \[sdk] Add `DeferredOutput` for resolving some output/input cycles
[#&#8203;385](https://redirect.github.com/pulumi/pulumi-dotnet/pull/385)

##### bug-fixes

- \[sdk] Support input lists and maps in JsonSerializer.SerializeAsync
and JsonSerializer.DeserializeAsync
[#&#8203;372](https://redirect.github.com/pulumi/pulumi-dotnet/pull/372)

- \[sdk] Fix publishing to set a required property used by the
Automation Api to Install Pulumi cli
[#&#8203;393](https://redirect.github.com/pulumi/pulumi-dotnet/pull/393)

##### Improvements

- \[sdk/auto] Lessen the strictness of `OperationTypeConverter` to allow
unknown operations
[#&#8203;350](https://redirect.github.com/pulumi/pulumi-dotnet/pull/350)

- \[sdk/auto] Update YamlDotNet to v16.1.2
[#&#8203;354](https://redirect.github.com/pulumi/pulumi-dotnet/pull/354)

- \[sdk/auto] Add pulumi stack change-secrets-provider to automation api
[#&#8203;383](https://redirect.github.com/pulumi/pulumi-dotnet/pull/383)

- \[sdk/provider] OutputReference.Value will normalize to null for
Computed values
[#&#8203;381](https://redirect.github.com/pulumi/pulumi-dotnet/pull/381)

##### Bug Fixes

- \[sdk/provider] Fix a bug deserialising unknown secrets
[#&#8203;378](https://redirect.github.com/pulumi/pulumi-dotnet/pull/378)

- \[runtime] Improve the detections of project files when attaching a
debugger
[#&#8203;255](https://redirect.github.com/pulumi/pulumi-dotnet/pull/255)

- \[runtime] Fix RunPlugin with new versions of the pulumi cli
[#&#8203;395](https://redirect.github.com/pulumi/pulumi-dotnet/pull/395)

###
[`v3.68.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3680---2024-09-17)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.67.1...v3.68.0)

##### Improvements

- \[sdk] Parameterized providers are now considered stable
[#&#8203;347](https://redirect.github.com/pulumi/pulumi-dotnet/pull/347)

- \[sdk/provider] Support authoring multi-language components in .NET
[#&#8203;275](https://redirect.github.com/pulumi/pulumi-dotnet/pull/275)

###
[`v3.67.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3671---2024-09-13)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.67.0...v3.67.1)

##### Bug Fixes

- \[runtime] Fix debugger support
[#&#8203;343](https://redirect.github.com/pulumi/pulumi-dotnet/pull/343)

###
[`v3.67.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3670---2024-09-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.66.2...v3.67.0)

##### Improvements

- \[sdk] Add support for attaching debuggers
[#&#8203;332](https://redirect.github.com/pulumi/pulumi-dotnet/pull/332)

##### Bug Fixes

- \[sdk/provider] Fix serialization of ComponentResources (no id
required)
[#&#8203;331](https://redirect.github.com/pulumi/pulumi-dotnet/pull/331)

- \[sdk/provider] Fix output value serialization.
[#&#8203;337](https://redirect.github.com/pulumi/pulumi-dotnet/pull/337)

###
[`v3.66.2`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3662---2024-08-20)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.66.1...v3.66.2)

##### Bug Fixes

- \[sdk] Update Pulumi.Protobuf to v3.27.3 (fork)
[#&#8203;324](https://redirect.github.com/pulumi/pulumi-dotnet/pull/324)

###
[`v3.66.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3661---2024-08-09)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.66.0...v3.66.1)

##### Bug Fixes

- \[sdk] Fix binary compatibility with provider SDKs built using older
version of the core SDK
[#&#8203;318](https://redirect.github.com/pulumi/pulumi-dotnet/pull/318)

###
[`v3.66.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3660---2024-08-09)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.65.0...v3.66.0)

##### Improvements

- \[sdk] Support package parameterization for
Read/RegisterResource/Call/Invoke
[#&#8203;311](https://redirect.github.com/pulumi/pulumi-dotnet/pull/311)

##### Bug Fixes

- \[sdk] Fix type annotations for inputListFromT0/1
[#&#8203;301](https://redirect.github.com/pulumi/pulumi-dotnet/pull/301)

- \[sdk] Fix race condition in GrpcMonitor's GrpcChannel management
[#&#8203;304](https://redirect.github.com/pulumi/pulumi-dotnet/pull/304)

- \[sdk] Fix unknown inputs deserialization
[#&#8203;306](https://redirect.github.com/pulumi/pulumi-dotnet/pull/306)

- \[sdk] Fix program hanging when a resource transformation throws an
exception
[#&#8203;307](https://redirect.github.com/pulumi/pulumi-dotnet/pull/307)

- \[sdk] Fix handling of input properties with backing fields
[#&#8203;308](https://redirect.github.com/pulumi/pulumi-dotnet/pull/308)

##### Improvements

- \[sdk/auto] Implement Stack.ImportAsync() for batch importing
resources into a stack
[#&#8203;296](https://redirect.github.com/pulumi/pulumi-dotnet/pull/296)

###
[`v3.65.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3650---2024-07-18)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.64.0...v3.65.0)

##### Improvements

- \[sdk] Update Grpc dependency.
[#&#8203;256](https://redirect.github.com/pulumi/pulumi-dotnet/pull/256)

- \[sdk] Strongly type URN values in Provider
[#&#8203;293](https://redirect.github.com/pulumi/pulumi-dotnet/pull/293)

##### Bug Fixes

- \[sdk] Enable .net analyzers and fix warnings.
[#&#8203;278](https://redirect.github.com/pulumi/pulumi-dotnet/pull/278)

- \[sdk] Bufix Parsing of CustomTimeouts
[#&#8203;290](https://redirect.github.com/pulumi/pulumi-dotnet/pull/290)

- \[sdk] Add support for deserializing output values and use them from
transforms
[#&#8203;298](https://redirect.github.com/pulumi/pulumi-dotnet/pull/298)

##### Improvements

- \[runtime] Update pulumi/pulumi to 3.121
[#&#8203;288](https://redirect.github.com/pulumi/pulumi-dotnet/pull/288)

###
[`v3.64.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3640---2024-06-10)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.63.1...v3.64.0)

##### Improvements

- \[sdk] Make transforms a stable feature, not experimental
[#&#8203;270](https://redirect.github.com/pulumi/pulumi-dotnet/pull/270)

- \[sdk/provider] Refactor Provider tests in order to prepare
integration testing
[#&#8203;277](https://redirect.github.com/pulumi/pulumi-dotnet/pull/277)

##### Bug Fixes

- \[runtime] Upgrade dependencies
[#&#8203;279](https://redirect.github.com/pulumi/pulumi-dotnet/pull/279)

###
[`v3.63.1`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3631---2024-04-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.63.0...v3.63.1)

##### Bug Fixes

- \[sdk] Remove Google.Protobuf pinned dependency.
[#&#8203;268](https://redirect.github.com/pulumi/pulumi-dotnet/pull/268)

###
[`v3.63.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3630---2024-04-25)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.62.0...v3.63.0)

##### Improvements

- \[sdk] Support the Result field for better support of up
--continue-on-error
[#&#8203;259](https://redirect.github.com/pulumi/pulumi-dotnet/pull/259)

##### Bug Fixes

- \[sdk] Revert gRPC update that broke large messages.
[#&#8203;266](https://redirect.github.com/pulumi/pulumi-dotnet/pull/266)

##### Improvements

- \[sdk/auto] Add ContinueOnError option to the automation API
[#&#8203;265](https://redirect.github.com/pulumi/pulumi-dotnet/pull/265)

###
[`v3.62.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3620---2024-04-22)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.61.0...v3.62.0)

##### Improvements

- \[sdk] Allow apply to have unknown values during updates
[#&#8203;258](https://redirect.github.com/pulumi/pulumi-dotnet/pull/258)

##### Bug Fixes

- \[sdk] Use InvariantCulture when parsing numbers from config
[#&#8203;262](https://redirect.github.com/pulumi/pulumi-dotnet/pull/262)

- \[sdk] Pin Google.Protobuf to 3.24.
[#&#8203;263](https://redirect.github.com/pulumi/pulumi-dotnet/pull/263)

###
[`v3.61.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3610---2024-04-16)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.60.0...v3.61.0)

##### Improvements

- \[sdk] Add attribute to handle deserialization of constructor
parameters with name overrides
[#&#8203;231](https://redirect.github.com/pulumi/pulumi-dotnet/pull/231)

- \[sdk] Add experimental support for the new transforms system
[#&#8203;234](https://redirect.github.com/pulumi/pulumi-dotnet/pull/234)

- \[sdk] Add FSharp Ops helpers
[#&#8203;250](https://redirect.github.com/pulumi/pulumi-dotnet/pull/250)

- \[sdk] Handle Outputs in derived Stacks
[#&#8203;251](https://redirect.github.com/pulumi/pulumi-dotnet/pull/251)

###
[`v3.60.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3600---2024-03-05)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.59.0...v3.60.0)

##### Improvements

- \[sdk] Add environment add and remove commands to automation api
[#&#8203;210](https://redirect.github.com/pulumi/pulumi-dotnet/pull/210)

- \[sdk] Update Grpc dependency.
[#&#8203;219](https://redirect.github.com/pulumi/pulumi-dotnet/pull/219)

- \[sdk] Drop support for netcoreapp3.1
[#&#8203;235](https://redirect.github.com/pulumi/pulumi-dotnet/pull/235)

- \[sdk/auto] Add new API to install the Pulumi CLI from the Automation
API
[#&#8203;226](https://redirect.github.com/pulumi/pulumi-dotnet/pull/226)

- \[sdk/provider] Initial implementation of a reflection-based
PropertyValue deserializer
[#&#8203;201](https://redirect.github.com/pulumi/pulumi-dotnet/pull/201)

###
[`v3.59.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3590---2023-11-15)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.58.0...v3.59.0)

##### Improvements

- \[sdk] Implement reflection-based RegisterOutputs() for component
resources
[#&#8203;200](https://redirect.github.com/pulumi/pulumi-dotnet/pull/200)

- \[sdk] Support .NET 8.
[#&#8203;205](https://redirect.github.com/pulumi/pulumi-dotnet/pull/205)

##### Bug Fixes

- \[sdk/auto] Fix issue with specifying a git username for remote
workspaces.
[#&#8203;186](https://redirect.github.com/pulumi/pulumi-dotnet/pull/186)

###
[`v3.58.0`](https://redirect.github.com/pulumi/pulumi-dotnet/blob/HEAD/CHANGELOG.md#v3580---2023-10-27)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.57.0...v3.58.0)

##### Bug Fixes

- \[sdk] Register and await tasks created from `Apply` that don't return
anything.
[#&#8203;183](https://redirect.github.com/pulumi/pulumi-dotnet/pull/183)

##### Improvements

- \[sdk/auto] Add support for the path option for config operations.
[#&#8203;191](https://redirect.github.com/pulumi/pulumi-dotnet/pull/191)

###
[`v3.57.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.57.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.56.2...v3.57.0)

##### Improvements

- Converter SDK: add `Args: string[]` to the `ConvertProgramRequest`
fields which allows converter plugins to access args provided to `pulumi
convert`

###
[`v3.56.2`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.56.2)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.56.1...v3.56.2)

##### Improvements

- Plugin: clean up resources and exit cleanly on receiving SIGINT or
CTRL_BREAK.

##### Bug Fixes

###
[`v3.56.1`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.56.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.56.0...v3.56.1)

##### Bug Fixes

- \[sdk/automation-api] Adds guards in a non-destructive way against
invalid JSON engine event data.

[#&#8203;167](https://redirect.github.com/pulumi/pulumi-dotnet/pull/167)

###
[`v3.56.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.56.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.55.2...v3.56.0)

##### Improvements

##### Bug Fixes

-   \[sdk] Fix the default version for dotnet providers.

[#&#8203;148](https://redirect.github.com/pulumi/pulumi-dotnet/pull/148)

##### Improvements

- \[sdk] - Implements a `Converter` abstraction for building language
converter plugins for Pulumi in dotnet.

[#&#8203;165](https://redirect.github.com/pulumi/pulumi-dotnet/pull/165)

###
[`v3.55.2`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.55.2)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.55.1...v3.55.2)

##### Improvements

##### Bug Fixes

-   \[sdk] Fix the default version for dotnet providers.

[#&#8203;148](https://redirect.github.com/pulumi/pulumi-dotnet/pull/148)

###
[`v3.55.1`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.55.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.55.0...v3.55.1)

##### Improvements

##### Bug Fixes

-   \[sdk] Fix serialization secret JSON resource arguments.

[#&#8203;144](https://redirect.github.com/pulumi/pulumi-dotnet/pull/144)

###
[`v3.55.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.55.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.54.1...v3.55.0)

##### Improvements

- \[sdk] When an exception is thrown from the constructor of a `Stack`
subclass, prevent `TargetInvocationException` from obscuring the error
message.

[#&#8203;106](https://redirect.github.com/pulumi/pulumi-dotnet/pull/106)

- \[sdk/auto] Added additional fields to `WhoAmIResult` for URL and
organizations.

[#&#8203;120](https://redirect.github.com/pulumi/pulumi-dotnet/pull/120)

- \[sdk/auto] Expose additional Pulumi refresh options to the Automation
API.

[#&#8203;117](https://redirect.github.com/pulumi/pulumi-dotnet/pull/117)

-   \[sdk] Updated to the latest pulumi protobuf specification.

[#&#8203;135](https://redirect.github.com/pulumi/pulumi-dotnet/pull/135)

-   \[sdk] Added `GetDouble` to `Config`.

[#&#8203;143](https://redirect.github.com/pulumi/pulumi-dotnet/pull/143)

##### Bug Fixes

-   \[sdk] Fix JSON serialisation of Input<T> types.

[#&#8203;112](https://redirect.github.com/pulumi/pulumi-dotnet/pull/112)

- \[sdk] Improve the error message from not implemented provider
methods.

[#&#8203;125](https://redirect.github.com/pulumi/pulumi-dotnet/pull/125)

###
[`v3.54.1`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.54.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.54.0...v3.54.1)

##### Improvements

##### Bug Fixes

###
[`v3.54.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.54.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.53.0...v3.54.0)

##### Improvements

- \[sdk] Lazily initialize all alias combinations for older Pulumi
engines during `RegisterRequest` preparation, not when constructing
resources. Re-enable tests for `AllAliases`
[#&#8203;97](https://redirect.github.com/pulumi/pulumi-dotnet/pull/97)

- \[sdk/providers] Updated names of "Olds" and "News" to make it clear
if they are old/new inputs or state. Also removed the GetPluginInfo
overload, version should now be passed into the main Serve method
(defaults to the assembly version).
[#&#8203;99](https://redirect.github.com/pulumi/pulumi-dotnet/pull/99)

- \[sdk] Added `StackReference.GetOutputDetailsAsync` to retrieve output
values from stack references directly.

[#&#8203;103](https://redirect.github.com/pulumi/pulumi-dotnet/pull/103)

##### Bug Fixes

###
[`v3.53.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.53.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.52.1...v3.53.0)

##### Improvements

-   \[sdk/auto] Add stack tag methods to the automation API.
[#&#8203;89](https://redirect.github.com/pulumi/pulumi-dotnet/pull/89)

##### Bug Fixes

-   \[sdk] Fix MockMonitor reporting DeletedWith wasn't supported.
[#&#8203;93](https://redirect.github.com/pulumi/pulumi-dotnet/pull/93)

-   \[sdk] Fix paket referencing Pulumi.
[#&#8203;91](https://redirect.github.com/pulumi/pulumi-dotnet/pull/91)

- \[sdk] Correctly check for alias support in the engine and map fully
specified alias urns.
[#&#8203;88](https://redirect.github.com/pulumi/pulumi-dotnet/pull/88)

- \[sdk] Bring back the correct fallback behavior for calculating
aliases for older Pulumi engines.

###
[`v3.52.1`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.52.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.52.0...v3.52.1)

##### Improvements

- \[sdk] Delegates alias computation to engine
[#&#8203;14](https://redirect.github.com/pulumi/pulumi-dotnet/issues/14)

##### Bug Fixes

- \[sdk] Work around a port parsing bug in the engine when using
providers.
[#&#8203;82](https://redirect.github.com/pulumi/pulumi-dotnet/pull/82)

-   \[sdk] Rename "ID" properties to "Id" in the provider interfaces.
[#&#8203;84](https://redirect.github.com/pulumi/pulumi-dotnet/pull/84)

-   \[sdk] Fix a mixup of Urn and Id in the provider interface.
[#&#8203;83](https://redirect.github.com/pulumi/pulumi-dotnet/pull/83)

###
[`v3.52.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.52.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.51.2...v3.52.0)

##### Improvements

- \[sdk] Add experimental support for writing custom resource providers.
This is a preview release, code
documentation and test coverage is known to be minimal, and all APIs are
subject to change. However it is
complete enough to try out, and we hope to get feedback on the interface
to refine and stabilize this
    shortly.
[#&#8203;76](https://redirect.github.com/pulumi/pulumi-dotnet/pull/76)

##### Bug Fixes

###
[`v3.51.2`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.51.2)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.51.1...v3.51.2)

##### Improvements

-   \[sdk] Multi-target .NET Core 3.1 and .NET 6.0.
[#&#8203;69](https://redirect.github.com/pulumi/pulumi-dotnet/pull/69)

##### Bug Fixes

###
[`v3.51.1`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.51.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.51.0...v3.51.1)

##### Improvements

-   \[revert] Re-introduce support for .NET Core 3.1.
[#&#8203;67](https://redirect.github.com/pulumi/pulumi-dotnet/pull/67)

##### Bug Fixes

###
[`v3.51.0`](https://redirect.github.com/pulumi/pulumi-dotnet/releases/tag/v3.51.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi-dotnet/compare/v3.50.0...v3.51.0)

##### Improvements

-   \[auto] Adds SkipInstallDependencies option for Remote Workspaces
[#&#8203;64](https://redirect.github.com/pulumi/pulumi-dotnet/pull/64)

-   \[sdk] Drop support for .NET Core 3.1.
[#&#8203;10](https://redirect.github.com/pulumi/pulumi-dotnet/pull/10)

-   \[sdk] Add Output.JsonDeserialize.
[#&#8203;65](https://redirect.github.com/pulumi/pulumi-dotnet/pull/65)

##### Bug Fixes

</details>

<details>
<summary>pulumi/pulumi
(github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3)</summary>

###
[`v3.144.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.144.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.144.0...v3.144.1)

#### 3.144.1 (2024-12-20)

##### Bug Fixes

- \[sdk/nodejs] Reverts
[#&#8203;18041](https://redirect.github.com/pulumi/pulumi/issues/18041)

###
[`v3.144.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.144.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.143.0...v3.144.0)

#### 3.144.0 (2024-12-20)

##### Features

- \[engine] Warn if `refresh` or `destroy` use older parameterized
packages
[#&#8203;18029](https://redirect.github.com/pulumi/pulumi/pull/18029)

-   \[sdk/dotnet] Update dotnet to 3.71.1
[#&#8203;18084](https://redirect.github.com/pulumi/pulumi/pull/18084)

- \[auto/go] Add ConfigFile to GetConfig and SetConfig operations, add
GetAllConfigWithOptions to extend GetAllConfig
[#&#8203;17939](https://redirect.github.com/pulumi/pulumi/pull/17939)

- \[cli/plugin] Log plugin unstructured output to debug instead of info
[#&#8203;17943](https://redirect.github.com/pulumi/pulumi/pull/17943)

-   \[sdk/yaml] Update pulumi-yaml to 1.13.0
[#&#8203;18077](https://redirect.github.com/pulumi/pulumi/pull/18077)

##### Bug Fixes

-   \[backend/diy] Retry deletes of lock files if they fail
[#&#8203;18059](https://redirect.github.com/pulumi/pulumi/pull/18059)

-   \[auto/go] Fix potential race condition when using automation API
[#&#8203;18044](https://redirect.github.com/pulumi/pulumi/pull/18044)

-   \[auto/go] Fix "debug" flag in automation api
[#&#8203;18071](https://redirect.github.com/pulumi/pulumi/pull/18071)

-   \[cli/install] Avoid unnecessary Node.js installations
[#&#8203;18041](https://redirect.github.com/pulumi/pulumi/pull/18041)

- \[engine] Use package load v2 in loader server so it can include
paramaterization
[#&#8203;18072](https://redirect.github.com/pulumi/pulumi/pull/18072)
[#&#8203;18021](https://redirect.github.com/pulumi/pulumi/pull/18021)

- \[programgen/dotnet] Emit local dependencies in restore sources
deterministically
[#&#8203;18026](https://redirect.github.com/pulumi/pulumi/pull/18026)

- \[sdk/go] Ignore DependsOn for direct form invokes instead of raising
an error
[#&#8203;18089](https://redirect.github.com/pulumi/pulumi/pull/18089)

-   \[sdk/nodejs] Respect the noCheck option from tsconfig.json
[#&#8203;18067](https://redirect.github.com/pulumi/pulumi/pull/18067)

-   \[sdk/nodejs] Gracefully handle errors that don't implement toString
[#&#8203;18080](https://redirect.github.com/pulumi/pulumi/pull/18080)

-   \[sdk/python] Fix hang on error when using uv on Windows
[#&#8203;18054](https://redirect.github.com/pulumi/pulumi/pull/18054)

- \[sdkgen/dotnet] Compute restore sources from local dependencies and
referenced packages
[#&#8203;18042](https://redirect.github.com/pulumi/pulumi/pull/18042)

##### Miscellaneous

-   \[sdkgen/go] Skip TestPackageAddGoParameterized
[#&#8203;18049](https://redirect.github.com/pulumi/pulumi/pull/18049)

###
[`v3.143.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.143.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.142.0...v3.143.0)

#### 3.143.0 (2024-12-12)

##### Features

-   \[cli] Autonaming configuration in experimental mode
[#&#8203;17916](https://redirect.github.com/pulumi/pulumi/pull/17916)

-   \[cli] Suggest `state repair` as part of integrity panics
[#&#8203;17919](https://redirect.github.com/pulumi/pulumi/pull/17919)

- \[engine] Add PULUMI_DEBUG_LANGUAGES much like PULUMI_DEBUG_PROVIDERS
so we can attach debuggers to languages easily
[#&#8203;17821](https://redirect.github.com/pulumi/pulumi/pull/17821)

-   \[engine] Warn if `refresh` or `destroy` use older plugins
[#&#8203;12196](https://redirect.github.com/pulumi/pulumi/pull/12196)

-   \[protobuf] Add `Handshake` to the provider protocol
[#&#8203;17819](https://redirect.github.com/pulumi/pulumi/pull/17819)

-   \[sdk/dotnet] Upgrade pulumi-dotnet to 3.71.0
[#&#8203;17937](https://redirect.github.com/pulumi/pulumi/pull/17937)

-   \[sdkgen/dotnet] Codegen for .NET InvokeOutputOptions
[#&#8203;17890](https://redirect.github.com/pulumi/pulumi/pull/17890)

- \[programgen/{dotnet,nodejs,python}] Emit deferred outputs for
mutually dependant components
[#&#8203;17859](https://redirect.github.com/pulumi/pulumi/pull/17859)

- \[sdk/go] Allow specifying dependencies for output invokes. Go code
generation for Output form invokes will use the new
`Context.InvokeOutput` method.
[#&#8203;17791](https://redirect.github.com/pulumi/pulumi/pull/17791)

-   \[sdk/nodejs] Add getSchema to Provider interface
[#&#8203;17950](https://redirect.github.com/pulumi/pulumi/pull/17950)

- \[sdk/{nodejs,python}] Update Python and NodeJS to use the new
GetRequiredPackage functionality
[#&#8203;17910](https://redirect.github.com/pulumi/pulumi/pull/17910)

- \[cli/package] Automatically set up package dependencies when adding a
package when possible
[#&#8203;17815](https://redirect.github.com/pulumi/pulumi/pull/17815)

-   \[sdk/python] Drop Python 3.8 support
[#&#8203;17883](https://redirect.github.com/pulumi/pulumi/pull/17883)

##### Bug Fixes

- \[backend/diy] Show a more correct URL for lock files in error
messages
[#&#8203;17961](https://redirect.github.com/pulumi/pulumi/pull/17961)

-   \[sdk/go] Inherit `protect` from `parent`s in the Go SDK
[#&#8203;17936](https://redirect.github.com/pulumi/pulumi/pull/17936)

-   \[sdk/go] Fix a `defer` leak when writing memory profiles
[#&#8203;17581](https://redirect.github.com/pulumi/pulumi/pull/17581)

-   \[sdk/go] Return when rejecting the InvokeOutput output on error
[#&#8203;18010](https://redirect.github.com/pulumi/pulumi/pull/18010)

-   \[sdkgen/go] Fix writing of go.mod files for parameterized packages
[#&#8203;17923](https://redirect.github.com/pulumi/pulumi/pull/17923)

- \[auto/{go,nodejs,python}] Expose `whoami` token information in
automation API types
[#&#8203;17735](https://redirect.github.com/pulumi/pulumi/pull/17735)

-   \[cli/install] Don't recreate virtualenvs when using venv
[#&#8203;17892](https://redirect.github.com/pulumi/pulumi/pull/17892)

-   \[auto/nodejs] Don't hang indefinitely on failed inputs
[#&#8203;17899](https://redirect.github.com/pulumi/pulumi/pull/17899)

-   \[auto/python] Catch BaseException in automation API server
[#&#8203;17909](https://redirect.github.com/pulumi/pulumi/pull/17909)

-   \[sdk/nodejs] Throw from `output()` on circular structures
[#&#8203;17852](https://redirect.github.com/pulumi/pulumi/pull/17852)

-   \[sdkgen/{nodejs,python}] Bump the minimum SDK version to 3.142.0
[#&#8203;17997](https://redirect.github.com/pulumi/pulumi/pull/17997)

##### Miscellaneous

-   \[pkg] Upgrade pulumi-java to v0.19.0
[#&#8203;18014](https://redirect.github.com/pulumi/pulumi/pull/18014)

-   \[sdk/python] Switch to ruff for linting and formatting
[#&#8203;17882](https://redirect.github.com/pulumi/pulumi/pull/17882)

-   \[sdkgen] Include parameterization details in pulumi-plugin.json
[#&#8203;17867](https://redirect.github.com/pulumi/pulumi/pull/17867)

###
[`v3.142.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.142.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.141.0...v3.142.0)

#### 3.142.0 (2024-11-26)

##### Features

-   \[cli] Reduce binary size by stripping debug information
[#&#8203;17868](https://redirect.github.com/pulumi/pulumi/pull/17868)

-   \[sdk/go] Add OutputWithDependencies
[#&#8203;17856](https://redirect.github.com/pulumi/pulumi/pull/17856)

-   \[sdk/java] Bump pulumi-java to 0.18.0

##### Bug Fixes

- \[cli] Fix login --interactive when no accounts are in the credentials
file
[#&#8203;17860](https://redirect.github.com/pulumi/pulumi/pull/17860)

-   \[cli/new] Fix new to work with local template directories again
[#&#8203;17866](https://redirect.github.com/pulumi/pulumi/pull/17866)

-   \[sdkgen/dotnet] Fix parameterized packages to have version.txt
[#&#8203;17851](https://redirect.github.com/pulumi/pulumi/pull/17851)

- \[sdk/python] uv toolchain: preserve env-vars when executing uv
command
[#&#8203;17849](https://redirect.github.com/pulumi/pulumi/pull/17849)

###
[`v3.141.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.141.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.140.0...v3.141.0)

#### 3.141.0 (2024-11-22)

##### Features

-   \[sdk/dotnet] Update dotnet to 3.69.0
[#&#8203;17828](https://redirect.github.com/pulumi/pulumi/pull/17828)

-   \[cli/new] Allow URLs without a scheme for downloading templates
[#&#8203;17824](https://redirect.github.com/pulumi/pulumi/pull/17824)

- \[sdk/nodejs] Allow specifiying additional dependencies for output
invokes
[#&#8203;17632](https://redirect.github.com/pulumi/pulumi/pull/17632)

- \[sdk/{nodejs,python}] Implement deferred output for nodejs and python
[#&#8203;17793](https://redirect.github.com/pulumi/pulumi/pull/17793)

-   \[sdk/python] Allow specifiying dependencies for output invokes
[#&#8203;17751](https://redirect.github.com/pulumi/pulumi/pull/17751)

-   \[sdk/yaml] Update yaml to 1.12.0
[#&#8203;17811](https://redirect.github.com/pulumi/pulumi/pull/17811)

##### Bug Fixes

- \[engine] Send the same program arguments to shimless and binary
plugins
[#&#8203;17833](https://redirect.github.com/pulumi/pulumi/pull/17833)

- \[auto/go] Work around a race where the summary event in the
automation API sometimes cannot be found
[#&#8203;17825](https://redirect.github.com/pulumi/pulumi/pull/17825)

- \[sdk/nodejs] Fix mocks when multiple versions of
[@&#8203;pulumi/pulumi](https://redirect.github.com/pulumi/pulumi) are
loaded in a project
[#&#8203;17769](https://redirect.github.com/pulumi/pulumi/pull/17769)

##### Miscellaneous

-   \[sdk/go] Split public and internal representation of InvokeOptions
[#&#8203;17818](https://redirect.github.com/pulumi/pulumi/pull/17818)

###
[`v3.140.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.140.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.139.0...v3.140.0)

#### 3.140.0 (2024-11-19)

##### Features

- \[pkg] Reject schemas with duplicate paths across resources and
functions
[#&#8203;17797](https://redirect.github.com/pulumi/pulumi/pull/17797)

- \[auto/go] Add --config-file functionality to Go Automation API
preview, update, refresh, and destroy
[#&#8203;17774](https://redirect.github.com/pulumi/pulumi/pull/17774)

##### Bug Fixes

-   \[cli/plugin] Workaround for escape codes in output from .NET 9
[#&#8203;17783](https://redirect.github.com/pulumi/pulumi/pull/17783)

-   \[sdk/python] Fix merging InvokeOptions.version
[#&#8203;17750](https://redirect.github.com/pulumi/pulumi/pull/17750)

###
[`v3.139.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.139.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.138.0...v3.139.0)

#### 3.139.0 (2024-11-14)

##### Features

-   \[pkg] Allow generating docs in parallel
[#&#8203;17711](https://redirect.github.com/pulumi/pulumi/pull/17711)

-   \[programgen] Allow specifying mutually dependant components in PCL

- \[programgen/{dotnet,go,nodejs,python}] Support generating invokes
options from PCL for invokes
[#&#8203;17696](https://redirect.github.com/pulumi/pulumi/pull/17696)

- \[sdk/nodejs] Allow accessing configuration in Node.js dynamic
providers
[#&#8203;17697](https://redirect.github.com/pulumi/pulumi/pull/17697)

-   \[sdk/nodejs] Implement RunPlugin for the NodeJS language runtime
[#&#8203;17724](https://redirect.github.com/pulumi/pulumi/pull/17724)

-   \[sdk/nodejs] Support parameterization for TypeScript providers
[#&#8203;17738](https://redirect.github.com/pulumi/pulumi/pull/17738)

-   \[sdk/python] Add Uv as a Python toolchain
[#&#8203;17609](https://redirect.github.com/pulumi/pulumi/pull/17609)

- \[sdk/python] Allow accessing configuration in Python dynamic
providers
[#&#8203;17673](https://redirect.github.com/pulumi/pulumi/pull/17673)

##### Bug Fixes

-   \[engine] Make plugin downloads/installation cancellable
[#&#8203;17621](https://redirect.github.com/pulumi/pulumi/pull/17621)

- \[engine] Fix frequent retries on 403 errors when the update token
expires
[#&#8203;17714](https://redirect.github.com/pulumi/pulumi/pull/17714)

-   \[engine] Don't copy deleted dependencies of untargeted resources
[#&#8203;17743](https://redirect.github.com/pulumi/pulumi/pull/17743)

-   \[engine] Support renaming providers in targeted operations
[#&#8203;17746](https://redirect.github.com/pulumi/pulumi/pull/17746)

-   \[engine] Pass correct working directory to RunPlugin
[#&#8203;17763](https://redirect.github.com/pulumi/pulumi/pull/17763)

- \[programgen] Allow PCL function element to take a dynamic expression
as input in non-strict mode
[#&#8203;17587](https://redirect.github.com/pulumi/pulumi/pull/17587)

-   \[sdk/nodejs] Fix pnpm pack for pnpm@9.13
[#&#8203;17766](https://redirect.github.com/pulumi/pulumi/pull/17766)

- \[sdk/python] Log a message about deleting requirements.txt when
converting to using Poetry
[#&#8203;17716](https://redirect.github.com/pulumi/pulumi/pull/17716)

- \[sdk/python] Fix an exception in automation api when reading `whoami`
results.
[#&#8203;17770](https://redirect.github.com/pulumi/pulumi/pull/17770)

##### Miscellaneous

-   \[sdk/dotnet] Run tests with .NET 9.0
[#&#8203;17768](https://redirect.github.com/pulumi/pulumi/pull/17768)

###
[`v3.138.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.138.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.137.0...v3.138.0)

#### 3.138.0 (2024-11-06)

##### Features

-   \[backend/diy] Keep computer awake while an update is running
[#&#8203;17699](https://redirect.github.com/pulumi/pulumi/pull/17699)

-   \[backend/service] Keep computer awake while an update is running
[#&#8203;17699](https://redirect.github.com/pulumi/pulumi/pull/17699)
[#&#8203;17675](https://redirect.github.com/pulumi/pulumi/pull/17675)

-   \[cli] Add interactive account selection to pulumi login command
[#&#8203;17618](https://redirect.github.com/pulumi/pulumi/pull/17618)

-   \[cli/display] Colorize selected stack when listing
[#&#8203;17606](https://redirect.github.com/pulumi/pulumi/pull/17606)

-   \[engine] Persist metadata about snapshot integrity errors
[#&#8203;17291](https://redirect.github.com/pulumi/pulumi/pull/17291)

- \[programgen] Implement package descriptor blocks in PCL to load
parameterized packages
[#&#8203;17589](https://redirect.github.com/pulumi/pulumi/pull/17589)

-   \[sdk/nodejs] Support Node.js 23
[#&#8203;17639](https://redirect.github.com/pulumi/pulumi/pull/17639)

##### Bug Fixes

- \[docs] Fix spacing and formatting of `stack init` command's long doc
[#&#8203;17534](https://redirect.github.com/pulumi/pulumi/pull/17534)

- \[engine] Spot skipped-create dependencies even when inputs don't
change
[#&#8203;17633](https://redirect.github.com/pulumi/pulumi/pull/17633)

-   \[engine] Normalize URNs in `DeletedWith` references
[#&#8203;17666](https://redirect.github.com/pulumi/pulumi/pull/17666)

-   \[engine] Disable the enviromental GITHUB_TOKEN on 403 responses
[#&#8203;17671](https://redirect.github.com/pulumi/pulumi/pull/17671)

- \[sdk/go] Overwrite directories in workspace.CopyTemplateFiles when
called with force=true
[#&#8203;17695](https://redirect.github.com/pulumi/pulumi/pull/17695)

- \[sdk/python] Add additional debug information to `ValueError` and
`AssertionError`
[#&#8203;17577](https://redirect.github.com/pulumi/pulumi/pull/17577)

##### Miscellaneous

-   \[docs] Update function comments to remove outdated DIY backend note
[#&#8203;17563](https://redirect.github.com/pulumi/pulumi/pull/17563)

-   \[yaml] Update YAML to 1.11.2
[#&#8203;17637](https://redirect.github.com/pulumi/pulumi/pull/17637)

###
[`v3.137.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.137.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.136.1...v3.137.0)

#### 3.137.0 (2024-10-17)

##### Features

- \[cli] Allow memory profile to be written in the background, so it's
available in case of crash
[#&#8203;17461](https://redirect.github.com/pulumi/pulumi/pull/17461)

- \[sdk/go] Enable better error messsages to be returned from provider
construct failures
[#&#8203;17464](https://redirect.github.com/pulumi/pulumi/pull/17464)

- \[sdk/python] Enable better error messsages to be returned from
provider construct failures
[#&#8203;17429](https://redirect.github.com/pulumi/pulumi/pull/17429)

-   \[sdk/python] Support Python 3.13
[#&#8203;17520](https://redirect.github.com/pulumi/pulumi/pull/17520)

##### Bug Fixes

-   \[engine] Fix token expired errors due to network issues
[#&#8203;17519](https://redirect.github.com/pulumi/pulumi/pull/17519)

-   \[pkg] Don't publish test code in `pkg/codegen`
[#&#8203;17517](https://redirect.github.com/pulumi/pulumi/pull/17517)

- \[programgen] Detect and error on binding component nodes in PCL
programs that self-reference their source
[#&#8203;17538](https://redirect.github.com/pulumi/pulumi/pull/17538)

- \[programgen] Fix PCL bind error "cannot iterate over a value of type
number" when conditionals are used in range expressions
[#&#8203;17569](https://redirect.github.com/pulumi/pulumi/pull/17569)

-   \[yaml] Allow `pulumi package add` for YAML projects
[#&#8203;17560](https://redirect.github.com/pulumi/pulumi/pull/17560)

-   \[sdk/go] Improve error message when credentials file invalid
[#&#8203;17541](https://redirect.github.com/pulumi/pulumi/pull/17541)

-   \[programgen/python] Fix preserving map keys in python programgen
[#&#8203;17350](https://redirect.github.com/pulumi/pulumi/pull/17350)

##### Miscellaneous

-   \[yaml] Update YAML to 1.11.1
[#&#8203;17540](https://redirect.github.com/pulumi/pulumi/pull/17540)

###
[`v3.136.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.136.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.136.0...v3.136.1)

#### 3.136.1 (2024-10-08)

##### Miscellaneous

- \[sdkgen/{nodejs,python}] Bump minimum required SDK version to
v3.136.0
[#&#8203;17501](https://redirect.github.com/pulumi/pulumi/pull/17501)

###
[`v3.136.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.136.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.135.1...v3.136.0)

#### 3.136.0 (2024-10-07)

##### Features

-   \[cli/engine] Allow cancelling operations with SIGTERM
[#&#8203;17467](https://redirect.github.com/pulumi/pulumi/pull/17467)

-   \[cli/state] Introduce the `state repair` command
[#&#8203;17445](https://redirect.github.com/pulumi/pulumi/pull/17445)

##### Bug Fixes

-   \[cli/display] Hide --show-secrets with --save-plan
[#&#8203;17444](https://redirect.github.com/pulumi/pulumi/pull/17444)

- \[sdk/nodejs] Maintain secretness and input dependencies of output
invokes
[#&#8203;17479](https://redirect.github.com/pulumi/pulumi/pull/17479)

- \[sdk/python] Send plain values to the engine in output invokes and
keep track of input dependencies and secrets
[#&#8203;17460](https://redirect.github.com/pulumi/pulumi/pull/17460)

- \[sdk/python] Handle nested structures properly when unwrapping
secrets from invoke inputs
[#&#8203;17482](https://redirect.github.com/pulumi/pulumi/pull/17482)

-   \[sdk/python] Significantly reduce the number of debug log calls
[#&#8203;17489](https://redirect.github.com/pulumi/pulumi/pull/17489)

-   \[sdk/python] Target Python 3.8 for linting SDK
[#&#8203;17495](https://redirect.github.com/pulumi/pulumi/pull/17495)

##### Miscellaneous

-   \[sdk/nodejs] Exclude tests from the nodejs npm package
[#&#8203;17488](https://redirect.github.com/pulumi/pulumi/pull/17488)

-   \[sdk/python] Update python grpcio to 1.66.2
[#&#8203;17487](https://redirect.github.com/pulumi/pulumi/pull/17487)

###
[`v3.135.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.135.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.135.0...v3.135.1)

#### 3.135.1 (2024-10-04)

##### Features

- \[sdk/nodejs] Enable better error messsages to be returned from
provider construct failures
[#&#8203;17325](https://redirect.github.com/pulumi/pulumi/pull/17325)

##### Bug Fixes

- \[auto] Fix regression in automation API for deployments where events
for a Pulumi operation are not received
[#&#8203;17334](https://redirect.github.com/pulumi/pulumi/pull/17334)

- \[cli/new] Respect existing stack configuration when initialising
secret managers
[#&#8203;17465](https://redirect.github.com/pulumi/pulumi/pull/17465)

-   \[sdk/yaml] Fix pulumi config set behaviour to append to end of file
[#&#8203;17452](https://redirect.github.com/pulumi/pulumi/pull/17452)

###
[`v3.135.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.135.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.134.1...v3.135.0)

#### 3.135.0 (2024-10-01)

##### Features

- \[backend/{diy,service}] Send secrets managers as initial state when
creating stacks
[#&#8203;17387](https://redirect.github.com/pulumi/pulumi/pull/17387)

-   \[sdk/python] Search upwards for pyproject.toml when using Poetry
[#&#8203;17388](https://redirect.github.com/pulumi/pulumi/pull/17388)

##### Bug Fixes

-   \[cli/config] Improve usage string for config env add/rm commands
[#&#8203;17407](https://redirect.github.com/pulumi/pulumi/pull/17407)

-   \[cli/new] Check zipped templates for `Pulumi.yaml` files
[#&#8203;17437](https://redirect.github.com/pulumi/pulumi/pull/17437)

-   \[engine] Disable the enviromental GITHUB_TOKEN on 401 responses
[#&#8203;17351](https://redirect.github.com/pulumi/pulumi/pull/17351)

- \[engine] Fix a panic when multiple component provider construct calls
fail
[#&#8203;17439](https://redirect.github.com/pulumi/pulumi/pull/17439)

-   \[sdkgen/go] Fix nested string map map map properties
[#&#8203;17417](https://redirect.github.com/pulumi/pulumi/pull/17417)

- \[sdk/nodejs] Fix dependency installation for nodejs projects with a
main property
[#&#8203;17391](https://redirect.github.com/pulumi/pulumi/pull/17391)

-   \[sdk/python] Add missing package_ref paramater to ProviderResource
[#&#8203;17432](https://redirect.github.com/pulumi/pulumi/pull/17432)

##### Miscellaneous

- \[sdkgen] Validate schema version is provided when package supports
packing
[#&#8203;17420](https://redirect.github.com/pulumi/pulumi/pull/17420)

-   \[sdk/python] Replace asyncio.ensure_future with create_task
[#&#8203;17406](https://redirect.github.com/pulumi/pulumi/pull/17406)

- \[sdkgen/{nodejs,python}] Bump minimum valid SDK version to v3.134.1
so that output-invokes work and maintain secrets
[#&#8203;17390](https://redirect.github.com/pulumi/pulumi/pull/17390)

###
[`v3.134.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.134.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.134.0...v3.134.1)

#### 3.134.1 (2024-09-25)

##### Features

- \[engine] Allow providers to return errors from construct and format
them nicely
[#&#8203;17306](https://redirect.github.com/pulumi/pulumi/pull/17306)

##### Bug Fixes

- \[engine] Add input keys from diff during import step to warning and
error message
[#&#8203;17312](https://redirect.github.com/pulumi/pulumi/pull/17312)

- \[sdk/nodejs] Short-circuit output invokes if inputs contains unknowns
[#&#8203;17353](https://redirect.github.com/pulumi/pulumi/pull/17353)

-   \[sdk/python] Always unwrap value from InvokeResult in invoke_async
[#&#8203;17349](https://redirect.github.com/pulumi/pulumi/pull/17349)

###
[`v3.134.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.134.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.133.0...v3.134.0)

#### 3.134.0 (2024-09-23)

##### Features

-   \[engine] Generated and matched aliases are written to debug logs
[#&#8203;17280](https://redirect.github.com/pulumi/pulumi/pull/17280)

-   \[cli/display] Show the count of unchanged resources
[#&#8203;17257](https://redirect.github.com/pulumi/pulumi/pull/17257)

- \[auto/nodejs] Support an abort channel for gracefully canceling
operations
[#&#8203;16783](https://redirect.github.com/pulumi/pulumi/pull/16783)

- \[auto/{nodejs,python}] Support refresh consistently in
up/preview/destroy
[#&#8203;17209](https://redirect.github.com/pulumi/pulumi/pull/17209)

- \[cli/state] Support falling back to snapshot secret managers when
PULUMI_FALLBACK_TO_STATE_SECRETS_MANAGER is set
[#&#8203;17236](https://redirect.github.com/pulumi/pulumi/pull/17236)

- \[sdkgen/python] First-class output-versioned invokes that maintain
secrets in Python
[#&#8203;17275](https://redirect.github.com/pulumi/pulumi/pull/17275)

##### Bug Fixes

-   \[engine] Fix token expired errors due to network issues
[#&#8203;17127](https://redirect.github.com/pulumi/pulumi/pull/17127)

-   \[engine] Fix dependency traversal for untargeted skipped creates
[#&#8203;17340](https://redirect.github.com/pulumi/pulumi/pull/17340)

-   \[engine] Retry token refresh errors immediately
[#&#8203;17338](https://redirect.github.com/pulumi/pulumi/pull/17338)

-   \[cli/config] Fix help text for `config set` command
[#&#8203;17319](https://redirect.github.com/pulumi/pulumi/pull/17319)

- \[sdk/nodejs] Allow 'pulumi about' in nodejs projects to resolve
dependencies from package files by walking up the file tree
[#&#8203;17239](https://redirect.github.com/pulumi/pulumi/pull/17239)

-   \[sdkgen/python] Fully generate TypedDict input types by default
[#&#8203;17296](https://redirect.github.com/pulumi/pulumi/pull/17296)

-   \[sdkgen/python] Fix sdk-gen for parameterized providers
[#&#8203;17303](https://redirect.github.com/pulumi/pulumi/pull/17303)

- \[sdkgen/python] Fix python defaulting to generating typed dicts for
input types
[#&#8203;17322](https://redirect.github.com/pulumi/pulumi/pull/17322)

##### Miscellaneous

-   \[yaml] Update YAML to 1.10.3
[#&#8203;17304](https://redirect.github.com/pulumi/pulumi/pull/17304)

- \[sdkgen/nodejs] Bump valid nodejs version to v3.133 the one that
contains invokeOutput and friends
[#&#8203;17316](https://redirect.github.com/pulumi/pulumi/pull/17316)

###
[`v3.133.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.133.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.132.0...v3.133.0)

#### 3.133.0 (2024-09-16)

##### Features

- \[cli] Add an `--attach-debugger` flag for pulumi preview and pulumi
up, that makes pulumi attach a debugger to the running program and
allows attaching to it
[#&#8203;17268](https://redirect.github.com/pulumi/pulumi/pull/17268)

- \[auto/{nodejs,python}] Add StartDebuggingEvent to the automation API
[#&#8203;17221](https://redirect.github.com/pulumi/pulumi/pull/17221)

- \[cli/package] Make --out optional within `pulumi package get-mapping`
[#&#8203;17227](https://redirect.github.com/pulumi/pulumi/pull/17227)

- \[engine] Package references and parameterized providers are now
considered stable and have a feature flag to report so
[#&#8203;17153](https://redirect.github.com/pulumi/pulumi/pull/17153)

-   \[pkg] Update pulumi-java to 0.16.1
[#&#8203;17263](https://redirect.github.com/pulumi/pulumi/pull/17263)

-   \[sdk/dotnet] Update dotnet to 3.67.1
[#&#8203;17262](https://redirect.github.com/pulumi/pulumi/pull/17262)

- \[sdk/python] Add `debugpy` as a dependency to improve the debugging
experience
[#&#8203;17253](https://redirect.github.com/pulumi/pulumi/pull/17253)

-   \[sdkgen/nodejs] Add first-class output-versioned invokes for NodeJS
[#&#8203;17237](https://redirect.github.com/pulumi/pulumi/pull/17237)

##### Bug Fixes

- \[sdk/nodejs] Fix closure serialization when using the Pulumi SDK
inside anonymous functions
[#&#8203;17247](https://redirect.github.com/pulumi/pulumi/pull/17247)

###
[`v3.132.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.132.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.131.0...v3.132.0)

#### 3.132.0 (2024-09-11)

##### Features

- \[cli/state] Show the full set of delete commands necessary to remove
resources from the source stack, if writing to it fails
[#&#8203;17205](https://redirect.github.com/pulumi/pulumi/pull/17205)

- \[cli/state] Try to revert changes to destination stack if we are
unable to save the source stack in state move
[#&#8203;17208](https://redirect.github.com/pulumi/pulumi/pull/17208)

- \[engine] Send resource names and types in provider requests from the
engine, in addition to the combined URN
[#&#8203;17177](https://redirect.github.com/pulumi/pulumi/pull/17177)

-   \[pkg] Add support for ESC Projects
[#&#8203;17226](https://redirect.github.com/pulumi/pulumi/pull/17226)

-   \[sdk/dotnet] Update dotnet to 3.67.0
[#&#8203;17223](https://redirect.github.com/pulumi/pulumi/pull/17223)

- \[sdkgen/go] Allow output-versioned invokes to resolve and maintain
secrets
[#&#8203;17132](https://redirect.github.com/pulumi/pulumi/pull/17132)

##### Bug Fixes

-   \[cli] Recover from zero-byte `credentials.json` files
[#&#8203;17186](https://redirect.github.com/pulumi/pulumi/pull/17186)

-   \[cli] Using PULUMI_BACKEND_URL no longer updates credentials.json
[#&#8203;17199](https://redirect.github.com/pulumi/pulumi/pull/17199)

- \[engine] Fix parameterized providers not downloading correctly when
found from state
[#&#8203;17218](https://redirect.github.com/pulumi/pulumi/pull/17218)

- \[cli/about] Fix language plugins always having unknown version in
about
[#&#8203;17216](https://redirect.github.com/pulumi/pulumi/pull/17216)

- \[cli/display] Fix deletes not being show in `refresh` when using json
output
[#&#8203;16851](https://redirect.github.com/pulumi/pulumi/pull/16851)

-   \[cli/display] Hide unnecessary rows in non-interactive mode
[#&#8203;17188](https://redirect.github.com/pulumi/pulumi/pull/17188)

- \[sdkgen/python] Correctly case Python package names in `package add`
link instructions
[#&#8203;17178](https://redirect.github.com/pulumi/pulumi/pull/17178)

###
[`v3.131.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.131.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.130.0...v3.131.0)

#### 3.131.0 (2024-09-04)

##### Features

-   \[cli] Include all engine events in the event-log
[#&#8203;17101](https://redirect.github.com/pulumi/pulumi/pull/17101)

-   \[pkg] Added `NewCachedLoader` for caching schema loads.
[#&#8203;17118](https://redirect.github.com/pulumi/pulumi/pull/17118)

-   \[yaml] Update yaml to v1.10
[#&#8203;17154](https://redirect.github.com/pulumi/pulumi/pull/17154)

-   \[auto/go] Include panic value in message for non-error panics
[#&#8203;17066](https://redirect.github.com/pulumi/pulumi/pull/17066)

-   \[auto/nodejs] Add LocalWorkspace.install method for Nodejs
[#&#8203;17134](https://redirect.github.com/pulumi/pulumi/pull/17134)

-   \[auto/python] Add LocalWorkspace.install method
[#&#8203;17086](https://redirect.github.com/pulumi/pulumi/pull/17086)

- \[cli/{display,plugin}] Render download and install progress as part
of system messages during Pulumi operations
[#&#8203;17019](https://redirect.github.com/pulumi/pulumi/pull/17019)

- \[cli/state] Allow moving resources when there's already a provider
with an identical URN in the destination stack, if the inputs match
[#&#8203;17076](https://redirect.github.com/pulumi/pulumi/pull/17076)

- \[sdk/nodejs] Respect .node-version and .nvmrc files in `pulumi
install`
[#&#8203;17060](https://redirect.github.com/pulumi/pulumi/pull/17060)

##### Bug Fixes

-   \[engine] Propagate deleted parents of untargeted resources
[#&#8203;17117](https://redirect.github.com/pulumi/pulumi/pull/17117)

- \[engine] Fix a snapshot integrity issue caused by deleteBeforeReplace
and failed create operations
[#&#8203;17146](https://redirect.github.com/pulumi/pulumi/pull/17146)

-   \[engine] Fix panic with user specified plugin paths
[#&#8203;17141](https://redirect.github.com/pulumi/pulumi/pull/17141)

-   \[sdk] Use int32 in Go interfaces that map to prot

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

---------

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-12-27 20:13:12 +00:00
Pulumi Bot
4f4417bd95 Update GitHub Actions workflows. (#389)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit f96fe3787b1f8929df4710c19ce2bb436777adce.
2024-12-27 10:08:45 -08:00
pulumi-renovate[bot]
8425d58820 Update first-party Pulumi dependencies to v3.0.0-20241224122059-455089c460a2 (#384)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224113601-c355c2133397` ->
`v3.0.0-20241224122059-455089c460a2` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224113601-c355c2133397` ->
`v3.0.0-20241224122059-455089c460a2` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224113601-c355c2133397` ->
`v3.0.0-20241224122059-455089c460a2` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-24 13:55:14 +00:00
pulumi-renovate[bot]
ae24ee020d Update first-party Pulumi dependencies to v3.0.0-20241224113601-c355c2133397 (#383)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224102528-502c283491fd` ->
`v3.0.0-20241224113601-c355c2133397` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224102528-502c283491fd` ->
`v3.0.0-20241224113601-c355c2133397` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241224102528-502c283491fd` ->
`v3.0.0-20241224113601-c355c2133397` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-24 12:56:35 +00:00
pulumi-renovate[bot]
019331c4ed Update first-party Pulumi dependencies to v3.0.0-20241224102528-502c283491fd (#382)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223182450-17ed96e129a9` ->
`v3.0.0-20241224102528-502c283491fd` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223182450-17ed96e129a9` ->
`v3.0.0-20241224102528-502c283491fd` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223182450-17ed96e129a9` ->
`v3.0.0-20241224102528-502c283491fd` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-24 11:56:12 +00:00
pulumi-renovate[bot]
fd570c3cb9 Update first-party Pulumi dependencies to v3.0.0-20241223182450-17ed96e129a9 (#379)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223154335-b96f19e7166e` ->
`v3.0.0-20241223182450-17ed96e129a9` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223154335-b96f19e7166e` ->
`v3.0.0-20241223182450-17ed96e129a9` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223154335-b96f19e7166e` ->
`v3.0.0-20241223182450-17ed96e129a9` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 19:57:01 +00:00
pulumi-renovate[bot]
15a31abdb5 Update dependency go to v1.23.4 (#378) 2024-12-23 09:32:35 -08:00
pulumi-renovate[bot]
131a26f052 Update first-party Pulumi dependencies to v3.0.0-20241223154335-b96f19e7166e (#377)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223133555-6ab78cb35a42` ->
`v3.0.0-20241223154335-b96f19e7166e` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223133555-6ab78cb35a42` ->
`v3.0.0-20241223154335-b96f19e7166e` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223133555-6ab78cb35a42` ->
`v3.0.0-20241223154335-b96f19e7166e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 16:53:05 +00:00
pulumi-renovate[bot]
a04ed06f14 Update first-party Pulumi dependencies to v3.0.0-20241223133555-6ab78cb35a42 (#376)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223120504-b5c85a670505` ->
`v3.0.0-20241223133555-6ab78cb35a42` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223120504-b5c85a670505` ->
`v3.0.0-20241223133555-6ab78cb35a42` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223120504-b5c85a670505` ->
`v3.0.0-20241223133555-6ab78cb35a42` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 15:08:09 +00:00
pulumi-renovate[bot]
5965661cc2 Update first-party Pulumi dependencies to v3.0.0-20241223120504-b5c85a670505 (#375)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223091829-5e0d8a840c95` ->
`v3.0.0-20241223120504-b5c85a670505` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223091829-5e0d8a840c95` ->
`v3.0.0-20241223120504-b5c85a670505` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223091829-5e0d8a840c95` ->
`v3.0.0-20241223120504-b5c85a670505` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 13:52:58 +00:00
pulumi-renovate[bot]
a1ab7c8a0f Update first-party Pulumi dependencies to v3.0.0-20241223091829-5e0d8a840c95 (#374)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223042026-60b6da565491` ->
`v3.0.0-20241223091829-5e0d8a840c95` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223042026-60b6da565491` ->
`v3.0.0-20241223091829-5e0d8a840c95` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223042026-60b6da565491` ->
`v3.0.0-20241223091829-5e0d8a840c95` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 10:53:46 +00:00
pulumi-renovate[bot]
a30efd3f9d Update first-party Pulumi dependencies to v3.0.0-20241223042026-60b6da565491 (#373)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223013821-119057414d35` ->
`v3.0.0-20241223042026-60b6da565491` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223013821-119057414d35` ->
`v3.0.0-20241223042026-60b6da565491` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241223013821-119057414d35` ->
`v3.0.0-20241223042026-60b6da565491` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 05:55:17 +00:00
pulumi-renovate[bot]
044df99755 Update first-party Pulumi dependencies to v3.0.0-20241223013821-119057414d35 (#372)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222224450-0bbf0dbd3393` ->
`v3.0.0-20241223013821-119057414d35` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222224450-0bbf0dbd3393` ->
`v3.0.0-20241223013821-119057414d35` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 03:52:33 +00:00
pulumi-renovate[bot]
a6b970cee3 Update module github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 to v3.0.0-20241223013821-119057414d35 (#371)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222224450-0bbf0dbd3393` ->
`v3.0.0-20241223013821-119057414d35` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-23 02:55:00 +00:00
pulumi-renovate[bot]
c600cc34c0 Update first-party Pulumi dependencies to v3.0.0-20241222224450-0bbf0dbd3393 (#370)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222201343-1da0555b6a5e` ->
`v3.0.0-20241222224450-0bbf0dbd3393` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222201343-1da0555b6a5e` ->
`v3.0.0-20241222224450-0bbf0dbd3393` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241222201343-1da0555b6a5e` ->
`v3.0.0-20241222224450-0bbf0dbd3393` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-22 23:54:05 +00:00
pulumi-renovate[bot]
bc4eeff975 Update first-party Pulumi dependencies to v3.0.0-20241222201343-1da0555b6a5e (#369)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241221020020-5ab6eea40487` ->
`v3.0.0-20241222201343-1da0555b6a5e` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241221020020-5ab6eea40487` ->
`v3.0.0-20241222201343-1da0555b6a5e` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241221020020-5ab6eea40487` ->
`v3.0.0-20241222201343-1da0555b6a5e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-22 21:53:40 +00:00
pulumi-renovate[bot]
5995dea695 Update first-party Pulumi dependencies (#368)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.144.0` -> `v3.144.1` |
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220232556-6bfc8dc64f22` ->
`v3.0.0-20241221020020-5ab6eea40487` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220232556-6bfc8dc64f22` ->
`v3.0.0-20241221020020-5ab6eea40487` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/pkg/v3)</summary>

###
[`v3.144.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.144.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.144.0...v3.144.1)

##### 3.144.1 (2024-12-20)

##### Bug Fixes

- \[sdk/nodejs] Reverts
[#&#8203;18041](https://redirect.github.com/pulumi/pulumi/issues/18041)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-21 03:54:40 +00:00
pulumi-renovate[bot]
f2df9ccbf0 Update module github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 to v3.0.0-20241221020020-5ab6eea40487 (#367)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220232556-6bfc8dc64f22` ->
`v3.0.0-20241221020020-5ab6eea40487` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-21 02:55:56 +00:00
pulumi-renovate[bot]
d65bf93eb8 Update module github.com/pulumi/pulumi/sdk/v3 to v3.144.1 (#366)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.144.0` -> `v3.144.1` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/sdk/v3)</summary>

###
[`v3.144.1`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.144.1)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.144.0...v3.144.1)

##### 3.144.1 (2024-12-20)

##### Bug Fixes

- \[sdk/nodejs] Reverts
[#&#8203;18041](https://redirect.github.com/pulumi/pulumi/issues/18041)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-21 01:56:40 +00:00
pulumi-renovate[bot]
3f9effba53 Update first-party Pulumi dependencies to v3.0.0-20241220232556-6bfc8dc64f22 (#365)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220221752-9a4a32328f80` ->
`v3.0.0-20241220232556-6bfc8dc64f22` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220221752-9a4a32328f80` ->
`v3.0.0-20241220232556-6bfc8dc64f22` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220221752-9a4a32328f80` ->
`v3.0.0-20241220232556-6bfc8dc64f22` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-21 00:58:23 +00:00
pulumi-renovate[bot]
d4fb7fab81 Update first-party Pulumi dependencies to v3.0.0-20241220221752-9a4a32328f80 (#364)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220213148-5ef618f54dc8` ->
`v3.0.0-20241220221752-9a4a32328f80` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220213148-5ef618f54dc8` ->
`v3.0.0-20241220221752-9a4a32328f80` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220213148-5ef618f54dc8` ->
`v3.0.0-20241220221752-9a4a32328f80` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-20 23:58:18 +00:00
pulumi-renovate[bot]
bd750dc115 Update first-party Pulumi dependencies (#363)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | digest | `d3d2892` -> `5ef618f` |
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220180114-d3d28924c05a` ->
`v3.0.0-20241220213148-5ef618f54dc8` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220180114-d3d28924c05a` ->
`v3.0.0-20241220213148-5ef618f54dc8` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220180114-d3d28924c05a` ->
`v3.0.0-20241220213148-5ef618f54dc8` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-20 22:52:41 +00:00
pulumi-renovate[bot]
ba0b30e361 Update first-party Pulumi dependencies (#362)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | digest | `1dd3669` -> `d3d2892` |
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220164043-1dd366951f61` ->
`v3.0.0-20241220180114-d3d28924c05a` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220164043-1dd366951f61` ->
`v3.0.0-20241220180114-d3d28924c05a` |
|
[github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220164043-1dd366951f61` ->
`v3.0.0-20241220180114-d3d28924c05a` |
|
[github.com/pulumi/pulumi/sdk/v3](https://redirect.github.com/pulumi/pulumi)
| require | minor | `v3.143.1-0.20241220164043-1dd366951f61` ->
`v3.144.0` |

---

### Release Notes

<details>
<summary>pulumi/pulumi (github.com/pulumi/pulumi/sdk/v3)</summary>

###
[`v3.144.0`](https://redirect.github.com/pulumi/pulumi/releases/tag/v3.144.0)

[Compare
Source](https://redirect.github.com/pulumi/pulumi/compare/v3.143.0...v3.144.0)

##### 3.144.0 (2024-12-20)

##### Features

- \[engine] Warn if `refresh` or `destroy` use older parameterized
packages
[#&#8203;18029](https://redirect.github.com/pulumi/pulumi/pull/18029)

-   \[sdk/dotnet] Update dotnet to 3.71.1
[#&#8203;18084](https://redirect.github.com/pulumi/pulumi/pull/18084)

- \[auto/go] Add ConfigFile to GetConfig and SetConfig operations, add
GetAllConfigWithOptions to extend GetAllConfig
[#&#8203;17939](https://redirect.github.com/pulumi/pulumi/pull/17939)

- \[cli/plugin] Log plugin unstructured output to debug instead of info
[#&#8203;17943](https://redirect.github.com/pulumi/pulumi/pull/17943)

-   \[sdk/yaml] Update pulumi-yaml to 1.13.0
[#&#8203;18077](https://redirect.github.com/pulumi/pulumi/pull/18077)

##### Bug Fixes

-   \[backend/diy] Retry deletes of lock files if they fail
[#&#8203;18059](https://redirect.github.com/pulumi/pulumi/pull/18059)

-   \[auto/go] Fix potential race condition when using automation API
[#&#8203;18044](https://redirect.github.com/pulumi/pulumi/pull/18044)

-   \[auto/go] Fix "debug" flag in automation api
[#&#8203;18071](https://redirect.github.com/pulumi/pulumi/pull/18071)

-   \[cli/install] Avoid unnecessary Node.js installations
[#&#8203;18041](https://redirect.github.com/pulumi/pulumi/pull/18041)

- \[engine] Use package load v2 in loader server so it can include
paramaterization
[#&#8203;18072](https://redirect.github.com/pulumi/pulumi/pull/18072)
[#&#8203;18021](https://redirect.github.com/pulumi/pulumi/pull/18021)

- \[programgen/dotnet] Emit local dependencies in restore sources
deterministically
[#&#8203;18026](https://redirect.github.com/pulumi/pulumi/pull/18026)

- \[sdk/go] Ignore DependsOn for direct form invokes instead of raising
an error
[#&#8203;18089](https://redirect.github.com/pulumi/pulumi/pull/18089)

-   \[sdk/nodejs] Respect the noCheck option from tsconfig.json
[#&#8203;18067](https://redirect.github.com/pulumi/pulumi/pull/18067)

-   \[sdk/nodejs] Gracefully handle errors that don't implement toString
[#&#8203;18080](https://redirect.github.com/pulumi/pulumi/pull/18080)

-   \[sdk/python] Fix hang on error when using uv on Windows
[#&#8203;18054](https://redirect.github.com/pulumi/pulumi/pull/18054)

- \[sdkgen/dotnet] Compute restore sources from local dependencies and
referenced packages
[#&#8203;18042](https://redirect.github.com/pulumi/pulumi/pull/18042)

##### Miscellaneous

-   \[sdkgen/go] Skip TestPackageAddGoParameterized
[#&#8203;18049](https://redirect.github.com/pulumi/pulumi/pull/18049)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-20 19:56:48 +00:00
pulumi-renovate[bot]
8dcb0d6815 Update first-party Pulumi dependencies to v3.0.0-20241220164043-1dd366951f61 (#361)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220160057-ef1db8482cb8` ->
`v3.0.0-20241220164043-1dd366951f61` |
|
[github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3](https://redirect.github.com/pulumi/pulumi)
| require | patch | `v3.0.0-20241220160057-ef1db8482cb8` ->
`v3.0.0-20241220164043-1dd366951f61` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-20 18:41:28 +00:00
pulumi-renovate[bot]
d4a1d35fcd Update github.com/pulumi/pulumi/pkg/v3 digest to 1dd3669 (#360)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/pulumi/pulumi/pkg/v3](https://redirect.github.com/pulumi/pulumi)
| require | digest | `109d75b` -> `1dd3669` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "every weekday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiaW1wYWN0L25vLWNoYW5nZWxvZy1yZXF1aXJlZCJdfQ==-->

Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-20 18:07:43 +00:00
pulumi-renovate[bot]
9d00d64258 Update first-party Pulumi dependencies (#344) 2024-12-20 17:54:46 +00:00
Pulumi Bot
fe283da7bb Update GitHub Actions workflows. (#359)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit b405e5a6220d030944f0180e5087773c69505d7f.
2024-12-20 09:46:16 -08:00
Pulumi Bot
38333c57b0 Update GitHub Actions workflows. (#355)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit c09ca3824257955e13392d96586b14a0fe49405a.
2024-12-16 15:01:46 -08:00
Pulumi Bot
80d25003de Update GitHub Actions workflows. (#348)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 7420998a8bb5f45102a45aadd31dde676da6d1d2.
2024-12-10 09:06:27 -08:00
Bryce Lampe
195fbfc784 Add support for multiple exporters (#235)
Buildkit 0.13 introduced support for [multiple
exporters](https://docs.docker.com/build/exporters/#multiple-exporters).
We currently return an error in these situations.

Instead, inspect the builder's version when loading the node and relax
this error if we see it's running at least 0.13.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/21.
2024-12-10 09:05:36 -08:00
Bryce Lampe
2907567484 Don't attempt to parse custom syntax (#346)
The provider currently attempts to parse your Dockerfile in case there
are any obviously broken syntax errors.

However, Dockerfiles can use custom syntaxes which are implemented as
their own images. Buildkit detects `# syntax=` directives, pulls the
image, and uses it to parse.

It doesn't make sense for us to attempt to replicate that behavior, so
when we detect a custom syntax we will simply disable this validation.
If there are syntax errors the user will discover them after the build
is attempted.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/300
2024-12-09 15:41:58 -08:00
Bryce Lampe
0a045d12bf regenerate sdk 2024-12-04 20:22:31 +00:00
pulumi-renovate[bot]
9f3d3db1dd Pin dependencies 2024-12-04 20:22:31 +00:00
pulumi-renovate[bot]
a18d56b485 Update module github.com/moby/buildkit to v0.18.1 (#330)
Co-authored-by: pulumi-renovate[bot] <189166143+pulumi-renovate[bot]@users.noreply.github.com>
2024-12-04 10:18:32 -08:00
Pulumi Bot
2f620af3be Update GitHub Actions workflows. (#343)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit e7696dfaff0baa5b84126fc6971cc40e89d490cf.
2024-12-04 09:29:48 -08:00
Bryce Lampe
9aa209c0fe Disable Dependabot version bumps 2024-11-25 17:23:38 -08:00
pulumi-renovate[bot]
2c2f8a68a3 fix(deps): update first-party pulumi dependencies 2024-11-25 17:21:25 -08:00
pulumi-renovate[bot]
7479f9f2a5 fix(deps): update github.com/tonistiigi/fsutil digest to 8d32dbd (main) (#309) 2024-11-20 20:43:44 -08:00
pulumi-renovate[bot]
e15f743f8c fix(deps): update module go.uber.org/mock to v0.5.0 (main) (#311) 2024-11-21 04:20:12 +00:00
pulumi-renovate[bot]
ec4594a854 fix(deps): update module github.com/moby/buildkit to v0.17.1 (main) (#315) 2024-11-21 04:18:32 +00:00
pulumi-renovate[bot]
0ce316d7de fix(deps): update module github.com/docker/buildx to v0.18.0 (main) (#312) 2024-11-20 20:00:22 -08:00
Pulumi Bot
0b7a26a9b6 Update GitHub Actions workflows. (#301)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 915e1137e1e0cac4db9d582f73bc5f578774b762.

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-11-20 18:46:58 -08:00
Bryce Lampe
b66e4a56fd regenerate sdk 2024-11-20 18:30:11 -08:00
Bryce Lampe
0d17198e54 lint 2024-11-20 18:30:11 -08:00
pulumi-renovate[bot]
fb7912a889 fix(deps): update first-party pulumi dependencies 2024-11-20 18:30:11 -08:00
Renovate Bot
4c03012268 Update first-party Pulumi dependencies 2024-10-20 17:01:10 -07:00
Renovate Bot
bf6080cdc4 Update first-party Pulumi dependencies 2024-10-13 17:00:57 -07:00
Ramon Quitales
3d57abba75 upgrade: bump pulumi/pulumi to 3.136.1 (#284)
This is the required commit to unblock CI:
bc7700a50c

Resolves: #272
2024-10-11 16:22:58 -07:00
Anton Tayanovskyy
9d3d0712f2 Fix: do not over-specify SDK dependencies (#271)
Re: https://github.com/pulumi/ci-mgmt/issues/1091
2024-10-02 14:03:54 -04:00
Bryce Lampe
30a26f61e4 Upgrade pulumi-go-provider (#268)
Fixes https://github.com/pulumi/pulumi-docker-build/issues/262.

@iwahbe I realized while putting this together that the provider config
case wasn't actually tested e2e, and I'm skeptical it was ever actually
working. I think it would be reasonable to pull in
https://github.com/pulumi/pulumi-docker-build/pull/253 IMO.
2024-09-27 09:57:50 -07:00
Pulumi Bot
242d99d4d6 Automated upgrade: bump pulumi/pulumi to 3.134.1 (#266)
Automated upgrade: bump pulumi/pulumi to 3.134.1
2024-09-26 10:45:31 -07:00
Pulumi Bot
8151f0369f Automated upgrade: bump pulumi/pulumi to 3.131.0 (#244)
Automated upgrade: bump pulumi/pulumi to 3.131.0

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-09-10 09:26:19 -07:00
Pulumi Bot
3e25f4a26a Update GitHub Actions workflows. (#250)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit ef73d27abae63a21fe95561ad39d3c5b15060b3e.
2024-09-10 03:55:58 -07:00
Pulumi Bot
1affb91b69 Update GitHub Actions workflows. (#240)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 1ade282c11c4b1e46d1ede6d849c8972f0e2f4e2.
2024-08-29 03:53:53 -07:00
Ramon Quitales
06cf6ec5f8 Fix weekly-pulumi-update (#232)
Fixes: #212

This PR follows the `weekly-pulumi-update` CI workflow steps to update
our `pulumi/pulumi` dependency, with manual intervention to resolve
tooling update conflicts. Before generating the SDKs, it's necessary to
update the language tools and otel packages to ensure compatibility with
the latest changes.

Additional command executed for the manual updates:

```sh
TOOLS=(
    "github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3"
    "github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3"
    "github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3"
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace"
)

for TOOL in "${TOOLS[@]}"; do
    go get -u $TOOL
    go mod tidy
done
```
2024-08-26 09:57:49 -07:00
Bryce Lampe
5d7ff1eeca lint 2024-08-14 13:17:24 -07:00
Renovate Bot
b1d2d5b5b3 Update module github.com/docker/docker to v27.1.1+incompatible [SECURITY] 2024-08-14 13:17:24 -07:00
Bryce Lampe
d9c3284f40 Check if local exports exist (#197)
Check if local exports exist during diffing. For tar, the file must
exist. For local, the directory must exist and be populated.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/177.
2024-08-13 13:52:10 -07:00
Bryce Lampe
81a7aa4ec4 No-op during Read if credentials are invalid (#194)
The `Image` resource already ignores errors during read but the `Index`
resource was requiring the inspect call to always succeed. This will often 
fail due to https://github.com/pulumi/pulumi/issues/4981 (note however in
this case credentials are stored with the resource instead of the provider).

This changes our logic to instead emit a warning if the credentials are
invalid.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/121.
2024-08-13 12:54:14 -07:00
Bryce Lampe
0ba90b8cde Prepare for v0.0.5 release (#189)
### Fixed

- Fixed Go SDK publishing.

### Changed

- Upgraded docker from 27.0.3 to 27.1.0.
2024-08-08 16:48:00 -07:00
dependabot[bot]
3d127da671 Bump the security group with 2 updates (#170)
---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-08-08 23:46:33 +00:00
Pulumi Bot
0bd5fe74bc Update GitHub Actions workflows. (#187)
This PR was automatically generated by the
rollout-single-native-provider-workflow workflow in the pulumi/ci-mgmt
repo, from commit 667960097c863755ff354e7143e97d4c96275133.
2024-08-08 23:21:14 +00:00
Pulumi Bot
5cc3415b34 Automated Pulumi/Pulumi upgrade (#175)
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-08-08 16:05:09 -07:00
dependabot[bot]
724836b5ef Bump the other group across 1 directory with 13 updates (#152)
---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-07-12 16:40:59 -07:00
Pulumi Bot
78057473ac Update GitHub Actions workflows. (#148)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit d11810c38fc2292ffd01a6d900bc6f3d58d0207c.
2024-07-11 09:19:22 -07:00
Pulumi Bot
cc8725ef27 Automated Pulumi/Pulumi upgrade (#135)
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-07-11 09:17:55 -07:00
Bryce Lampe
bbdefef3c8 Fix an issue where warnings aren't displayed correctly (#136)
This is a byte array that needs to be string'd.
2024-06-27 14:07:25 -07:00
Pulumi Bot
3ce3c83c3e Update GitHub Actions workflows. (#133)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 9069b7018768de0109f6bf2c25a24fae9099ab9e.
2024-06-27 09:32:30 -07:00
dependabot[bot]
343eadd0b6 Bump the security group across 1 directory with 3 updates (#128) 2024-06-26 12:32:54 -07:00
dependabot[bot]
1febe659ca Bump the docker group with 5 updates (#113)
Bumps the docker group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/docker/buildx](https://github.com/docker/buildx) |
`0.13.1` | `0.15.1` |
| [github.com/docker/cli](https://github.com/docker/cli) |
`26.0.0-rc1+incompatible` | `26.1.4+incompatible` |
|
[github.com/docker/distribution](https://github.com/docker/distribution)
| `2.8.2+incompatible` | `2.8.3+incompatible` |
| [github.com/docker/docker](https://github.com/docker/docker) |
`26.0.0-rc1+incompatible` | `26.1.4+incompatible` |
| [github.com/moby/buildkit](https://github.com/moby/buildkit) |
`0.13.0` | `0.14.1` |

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-06-26 11:07:02 -07:00
Pulumi Bot
233b5e0508 Update GitHub Actions workflows. (#126)
This PR was automatically generated by the
rollout-single-native-provider-workflow workflow in the pulumi/ci-mgmt
repo, from commit efce542f8f2497c86a80bcae970bb5b5573b286a.

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-06-25 23:11:18 +00:00
dependabot[bot]
b8ecfb287a Bump the pulumi group across 1 directory with 6 updates (#111)
This upgrades pulumi to v3.121.0 and bumps several other first-party dependencies.

Note that vendored language plugins must be bumped manually because their go modules are currently untagged:

* go get github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3@79e814fe0f2137ade87ee5af384e6cb71e4aa6ff
*  go get github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3@79e814fe0f2137ade87ee5af384e6cb71e4aa6ff
* go get github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3@79e814fe0f2137ade87ee5af384e6cb71e4aa6ff
* go get github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet@fa777213effdc3a80bb893194d63cd8b7ca7a868
* go get github.com/pulumi/pulumi-yaml@15eb402

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-06-25 14:17:24 -07:00
Bryce Lampe
92ed9d50e9 Re-enable grouping for dependabot security updates (#112)
We have grouped security updates enabled by default at the org level,
however when a repo defines its own `dependabot.yml` it will override
the org's defaults. We don't currently define any grouping for security
updates, hence why we have so many outstanding dependabot PRs.

This adds 3 new groups:
* A security group, to re-enable grouped security updates.
* A docker group, to bump core Docker dependencies like buildx,
buildkit, etc.
* An "other" group as a catch-all for everything else. AFAICT there's no
way to have Dependabot _only_ bump versions for Pulumi & Docker
dependencies, so just dump everything else in here.

The existing pulumi group stopped receiving updates for some reason but
[seems to be
working](https://github.com/pulumi/pulumi-docker-build/pull/111) again
after I re-opened one of the closed PRs.
2024-06-18 12:43:28 -07:00
Daniel Bradley
dd64d7b65d Fix Go SDK publishing (#106)
This provider's SDK module is rooted in `sdk/go/dockerbuild` instead
than `sdk` as other providers are set up.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/93
2024-06-14 14:55:18 +01:00
Bryce Lampe
4e8cf8f4ba Fix a panic that could occur when context was omitted (#83)
I could have sworn the context property was required, but evidently it
isn't and we weren't handling the case when it was missing.

This PR updates things to set a default location of the current
directory if the context is absent. Some unit tests are also added.

Fixes #78.
2024-05-31 14:41:22 +00:00
Pulumi Bot
44e082a0a0 Update GitHub Actions workflows. (#92)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 236437ea328a6f3dc4fbfa4924fc968fc619842a.
2024-05-31 01:57:56 -07:00
Pulumi Bot
effb497234 Automated Pulumi/Pulumi upgrade (#90) 2024-05-31 01:57:12 -07:00
Bryce Lampe
9a1706a203 Fix publisher capitalization (#89)
Refs https://github.com/pulumi/pulumi-dbtcloud/pull/23.
2024-05-31 01:56:19 -07:00
Daniel Bradley
c305ea88c4 Embed sdk versions (#68)
Part of https://github.com/pulumi/ci-mgmt/issues/915

Install pulumi in standard way 

Use the same method as other providers to install the pulumi CLI.
- Lock the version of the CLI and therefore codegen for consistent build
results.
- Ensure the local language plugins are using by disabling ambient
plugins.

Enable respect schema version

Remove setting version at SDK build time

---------

Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-05-30 13:50:54 +01:00
Bryce Lampe
f0aaf7095d Fix GitHub action URL (#80)
Our docs and default value for the GitHub action cache URL were
referring to the
[wrong](https://github.com/tonistiigi/go-actions-cache/blob/master/api.md)
environment variable.

I was under the impression that the underlying library ends up checking
for the correct variable later so this would be only cosmetic, but a
user
[confirmed](https://github.com/pulumi/pulumi-docker-build/issues/77#issuecomment-2135621983)
this does appear to break things.

I brought over an old test I had written while this was still in the
pulumi-docker repo, but unfortunately it doesn't currently test GHA due
to ci-mgmt limitations
https://github.com/pulumi/pulumi-docker-build/issues/82.

Fixes https://github.com/pulumi/pulumi-docker-build/issues/77.
2024-05-29 12:29:58 +00:00
Pulumi Bot
c9e5913af1 Update GitHub Actions workflows. (#71)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 6ef5444d6e792b70fd2ed0791d776a6f9f77714e.
2024-05-17 11:26:21 +01:00
Pulumi Bot
1d6038bb07 Update GitHub Actions workflows. (#66)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 2c4960e091c66f59df2902620e003f2db1a7b063.
2024-05-16 09:46:03 +01:00
Bryce Lampe
ff71c251e1 Upgrade go-provider (#53)
This upgrades pulumi-go-provider to latest. Code was automatically
migrated using a slightly modified patch described
[here](https://github.com/pulumi/pulumi-go-provider/pull/227#issuecomment-2073962385).

---------

Co-authored-by: Ian Wahbe <ian@wahbe.com>
2024-05-13 12:23:24 -07:00
Pulumi Bot
9b789f3742 Update GitHub Actions workflows. (#56)
This PR was automatically generated by the
update-native-provider-workflows workflow in the pulumi/ci-mgmt repo,
from commit 8d27f1f4eb9d34f0b7ccf790b1d2e06b7fa92be6.

This also manually updates the makefile to add the PROVIDER_VERSION
argument.

---------

Co-authored-by: Daniel Bradley <daniel@pulumi.com>
2024-05-01 10:49:27 -04:00
Pulumi Bot
d3e22d5679 Automated Pulumi/Pulumi upgrade (#49)
Co-authored-by: Bryce Lampe <bryce@pulumi.com>
2024-04-26 09:06:05 -07:00
Bryce Lampe
dc1ba98390 Fix weekly-pulumi-update (#50)
Example https://github.com/pulumi/pulumi-docker-build/pull/49
Fixes https://github.com/pulumi/pulumi-docker-build/issues/7
Refs https://github.com/pulumi/ci-mgmt/pull/901
2024-04-25 22:08:49 -04:00
Pulumi Bot
5cb40f8957 Update GitHub Actions workflows. (#48)
This PR was automatically generated by the
rollout-single-native-provider-workflow workflow in the pulumi/ci-mgmt
repo, from commit 1ccdca8fcd563ed4a1c7b82fdcebcf87cf598569.
2024-04-25 16:57:37 -07:00
Bryce Lampe
26c144c916 Initial provider implementation (#18)
This brings over the initial buildx prototype from pulumi/pulumi-docker
and fixes various build and release issues.
2024-04-25 11:03:59 -07:00
105 changed files with 15368 additions and 9339 deletions

Submodule .devcontainer deleted from dce1e31630

View File

@@ -1,68 +0,0 @@
// Reference:
// - https://containers.dev/features
// - https://containers.dev/implementors/features
// - https://code.visualstudio.com/docs/getstarted/settings
{
"name": "pulumi",
"image": "ghcr.io/pulumi/devcontainer",
"customizations": {
"vscode": {
"settings": [
"go.testTags", "all",
"go.buildTags", "all",
"editor.minimap.enabled", false,
"explorer.openEditors.visible", 1,
"editor.quickSuggestionsDelay", 0,
"editor.suggestSelection", "first",
"editor.snippetSuggestions", "top",
"editor.gotoLocation.multipleReferences", "goto",
"editor.gotoLocation.multipleDefinitions", "goto",
"editor.gotoLocation.multipleDeclarations", "goto",
"editor.gotoLocation.multipleImplementations", "goto",
"editor.gotoLocation.multipleTypeDefinitions", "goto",
"editor.terminal.integrated.shell.linux", "/usr/bin/zsh",
"files.trimTrailingWhitespace", true,
"files.trimFinalNewlines", true
],
"extensions": [
"golang.go",
"vscodevim.vim",
"github.copilot",
"ms-python.python",
"jetpack-io.devbox",
"redhat.vscode-yaml",
"esbenp.prettier-vscode",
"ms-vscode.makefile-tools",
"ms-azuretools.vscode-docker",
"github.vscode-pull-request-github",
"ms-vscode-remote.remote-containers",
"visualstudioexptteam.vscodeintellicode",
"bierner.markdown-preview-github-styles"
]
}
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"configureZshAsDefaultShell": true,
"installOhMyZsh": true,
"installOhMyZshConfig": true,
"upgradePackages": true,
"nonFreePackages": true,
"username": "vscode",
"userUid": "automatic",
"userGid": "automatic"
},
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
"moby": false,
"installDockerBuildx": true,
"version": "latest",
"dockerDashComposeVersion": "v2"
}
},
"postCreateCommand": "git submodule update --init --recursive",
"remoteUser": "vscode",
"forwardPorts": [1313],
"runArgs": ["--network=host"]
}

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
sdk/**/* linguist-generated=true

View File

@@ -1,15 +0,0 @@
version: 2
updates:
- package-ecosystem: gomod
directory: /
schedule:
interval: daily
groups:
pulumi:
patterns:
- "github.com/pulumi/*"
exclude-patterns:
- "k8s.io/utils"
labels:
- dependencies
- impact/no-changelog-required

View File

@@ -1,580 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: build
on:
push:
branches:
- master
- main
- feature-**
paths-ignore:
- CHANGELOG.md
tags-ignore:
- v*
- sdk/*
- "**"
workflow_dispatch: {}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
jobs:
prerequisites:
runs-on: ubuntu-latest
name: prerequisites
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
build_sdks:
needs: prerequisites
runs-on: pulumi-ubuntu-8core
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: build_sdks
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK
run: make generate_${{ matrix.language }}
- name: Build SDK
run: make build_${{ matrix.language }}
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
test:
runs-on: pulumi-ubuntu-8core
needs:
- build_sdks
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: test
permissions:
contents: read
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK
uses: actions/download-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: UnTar SDK folder
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
github.workspace}}/sdk/${{ matrix.language}}
- name: Update path
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
- name: Install Node dependencies
run: yarn global add typescript
- run: dotnet nuget add source ${{ github.workspace }}/nuget
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install dependencies
run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2
with:
install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: >-
set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in SDK tests
fields: repo,commit,author,action
status: ${{ job.status }}
publish:
runs-on: ubuntu-latest
needs: test
name: publish
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
dotnet: false
android: true
haskell: true
swap-storage: true
large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Set PreRelease Version
run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)"
>> $GITHUB_ENV
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
version: latest
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing binaries
fields: repo,commit,author,action
status: ${{ job.status }}
publish_sdk:
runs-on: ubuntu-latest
needs: publish
name: publish_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK
uses: actions/download-artifact@v4
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress python SDK
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@v4
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress dotnet SDK
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@v4
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress nodejs SDK
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
${{github.workspace}}/sdk/nodejs
- name: Install Twine
run: python -m pip install pip twine
- name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing SDK
fields: repo,commit,author,action
status: ${{ job.status }}
publish_java_sdk:
runs-on: ubuntu-latest
continue-on-error: true
needs: publish
name: publish_java_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download java SDK
uses: actions/download-artifact@v4
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress java SDK
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Set PACKAGE_VERSION to Env
run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >>
$GITHUB_ENV
- name: Publish Java SDK
uses: gradle/gradle-build-action@v3
with:
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
build-root-directory: ./sdk/java
gradle-version: 7.4.1
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@v4
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml
working-directory: provider
name: lint
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository

View File

@@ -1,67 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: command-dispatch
on:
issue_comment:
types:
- created
- edited
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
jobs:
command-dispatch-for-testing:
runs-on: ubuntu-latest
name: command-dispatch-for-testing
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- uses: peter-evans/slash-command-dispatch@v2
with:
token: ${{ secrets.PULUMI_BOT_TOKEN }}
reaction-token: ${{ secrets.GITHUB_TOKEN }}
commands: run-acceptance-tests
permission: write
issue-type: pull-request
repository: pulumi/pulumi-docker-build
if: ${{ github.event.issue.pull_request }}

View File

@@ -1,549 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: prerelease
on:
push:
tags:
- v*.*.*-**
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
IS_PRERELEASE: true
jobs:
prerequisites:
runs-on: ubuntu-latest
name: prerequisites
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
build_sdks:
needs: prerequisites
runs-on: pulumi-ubuntu-8core
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: build_sdks
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK
run: make generate_${{ matrix.language }}
- name: Build SDK
run: make build_${{ matrix.language }}
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
test:
runs-on: pulumi-ubuntu-8core
needs:
- build_sdks
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: test
permissions:
contents: read
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK
uses: actions/download-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: UnTar SDK folder
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
github.workspace}}/sdk/${{ matrix.language}}
- name: Update path
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
- name: Install Node dependencies
run: yarn global add typescript
- run: dotnet nuget add source ${{ github.workspace }}/nuget
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install dependencies
run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2
with:
install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: >-
set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in SDK tests
fields: repo,commit,author,action
status: ${{ job.status }}
publish:
runs-on: ubuntu-latest
needs: test
name: publish
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
dotnet: false
android: true
haskell: true
swap-storage: true
large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Set PreRelease Version
run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)"
>> $GITHUB_ENV
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
version: latest
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing binaries
fields: repo,commit,author,action
status: ${{ job.status }}
publish_sdk:
runs-on: ubuntu-latest
needs: publish
name: publish_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK
uses: actions/download-artifact@v4
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress python SDK
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@v4
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress dotnet SDK
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@v4
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress nodejs SDK
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
${{github.workspace}}/sdk/nodejs
- name: Install Twine
run: python -m pip install pip twine
- name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing SDK
fields: repo,commit,author,action
status: ${{ job.status }}
publish_java_sdk:
runs-on: ubuntu-latest
continue-on-error: true
needs: publish
name: publish_java_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download java SDK
uses: actions/download-artifact@v4
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress java SDK
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Set PACKAGE_VERSION to Env
run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >>
$GITHUB_ENV
- name: Publish Java SDK
uses: gradle/gradle-build-action@v3
with:
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
build-root-directory: ./sdk/java
gradle-version: 7.4.1

View File

@@ -1,64 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: pull-request
on:
pull_request_target: {}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
jobs:
comment-on-pr:
runs-on: ubuntu-latest
name: comment-on-pr
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
message: >
PR is now waiting for a maintainer to run the acceptance tests.
**Note for the maintainer:** To run the acceptance tests, please comment */run-acceptance-tests* on the PR
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event.pull_request.head.repo.full_name != github.repository

View File

@@ -1,579 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: release
on:
push:
tags:
- v*.*.*
- "!v*.*.*-**"
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
jobs:
prerequisites:
runs-on: ubuntu-latest
name: prerequisites
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
build_sdks:
needs: prerequisites
runs-on: pulumi-ubuntu-8core
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: build_sdks
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK
run: make generate_${{ matrix.language }}
- name: Build SDK
run: make build_${{ matrix.language }}
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
test:
runs-on: pulumi-ubuntu-8core
needs:
- build_sdks
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: test
permissions:
contents: read
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK
uses: actions/download-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: UnTar SDK folder
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
github.workspace}}/sdk/${{ matrix.language}}
- name: Update path
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
- name: Install Node dependencies
run: yarn global add typescript
- run: dotnet nuget add source ${{ github.workspace }}/nuget
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install dependencies
run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2
with:
install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: >-
set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in SDK tests
fields: repo,commit,author,action
status: ${{ job.status }}
publish:
runs-on: ubuntu-latest
needs: test
name: publish
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Clear GitHub Actions Ubuntu runner disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
dotnet: false
android: true
haskell: true
swap-storage: true
large-packages: false
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: us-east-2
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 7200
role-session-name: ${{ env.PROVIDER }}@githubActions
role-external-id: upload-pulumi-release
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- name: Set PreRelease Version
run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)"
>> $GITHUB_ENV
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
args: -p 3 release --clean --timeout 60m0s
version: latest
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing binaries
fields: repo,commit,author,action
status: ${{ job.status }}
publish_sdk:
runs-on: ubuntu-latest
needs: publish
name: publish_sdks
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Download python SDK
uses: actions/download-artifact@v4
with:
name: python-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress python SDK
run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C
${{github.workspace}}/sdk/python
- name: Download dotnet SDK
uses: actions/download-artifact@v4
with:
name: dotnet-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress dotnet SDK
run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C
${{github.workspace}}/sdk/dotnet
- name: Download nodejs SDK
uses: actions/download-artifact@v4
with:
name: nodejs-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress nodejs SDK
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
${{github.workspace}}/sdk/nodejs
- name: Install Twine
run: python -m pip install pip twine
- name: Publish SDKs
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
PYPI_PUBLISH_ARTIFACTS: all
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in publishing SDK
fields: repo,commit,author,action
status: ${{ job.status }}
publish_java_sdk:
runs-on: ubuntu-latest
continue-on-error: true
needs: publish
name: publish_java_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download java SDK
uses: actions/download-artifact@v4
with:
name: java-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: Uncompress java SDK
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
${{github.workspace}}/sdk/java
- name: Set PACKAGE_VERSION to Env
run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >>
$GITHUB_ENV
- name: Publish Java SDK
uses: gradle/gradle-build-action@v3
with:
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
build-root-directory: ./sdk/java
gradle-version: 7.4.1
tag_sdk:
runs-on: ubuntu-latest
needs: publish_sdk
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Add SDK version tag
run: git tag sdk/v$(pulumictl get version --language generic) && git push origin
sdk/v$(pulumictl get version --language generic)
name: tag_sdk
dispatch_docs_build:
runs-on: ubuntu-latest
needs: tag_sdk
steps:
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Dispatch Event
run: pulumictl create docs-build pulumi-${{ env.PROVIDER }}
${GITHUB_REF#refs/tags/}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
name: dispatch_docs_build

View File

@@ -1,427 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: run-acceptance-tests
on:
repository_dispatch:
types:
- run-acceptance-tests-command
pull_request:
branches:
- master
- main
paths-ignore:
- CHANGELOG.md
workflow_dispatch: {}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }}
jobs:
comment-notification:
runs-on: ubuntu-latest
name: comment-notification
steps:
- name: Create URL to the run output
id: vars
run: echo
run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
>> "$GITHUB_OUTPUT"
- name: Update with Result
uses: peter-evans/create-or-update-comment@v1
with:
token: ${{ secrets.PULUMI_BOT_TOKEN }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}"
if: github.event_name == 'repository_dispatch'
prerequisites:
runs-on: ubuntu-latest
name: prerequisites
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/schema-tools
- name: Build codegen binaries
run: make codegen
- name: Build Schema
run: make generate_schema
- if: github.event_name == 'pull_request'
name: Check Schema is Valid
run: >-
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
- if: github.event_name == 'pull_request'
name: Comment on PR with Details of Schema Check
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ env.SCHEMA_CHANGES }}
comment_tag: schemaCheck
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') &&
github.actor == 'pulumi-bot'
name: Add label if no breaking changes
uses: actions-ecosystem/action-add-labels@v1.1.0
with:
labels: impact/no-changelog-required
number: ${{ github.event.issue.number }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Provider
run: make provider
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar provider binaries
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }}
pulumi-gen-${{ env.PROVIDER}}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin/provider.tar.gz
- name: Test Provider Library
run: make test_provider
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in building provider prerequisites
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
build_sdks:
needs: prerequisites
runs-on: pulumi-ubuntu-8core
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: build_sdks
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Generate SDK
run: make generate_${{ matrix.language }}
- name: Build SDK
run: make build_${{ matrix.language }}
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- run: git status --porcelain
- name: Tar SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz
retention-days: 30
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure while building SDKs
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
test:
runs-on: pulumi-ubuntu-8core
needs:
- build_sdks
strategy:
fail-fast: true
matrix:
language:
- nodejs
- python
- dotnet
- go
- java
name: test
permissions:
contents: read
id-token: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Checkout Scripts Repo
uses: actions/checkout@v4
with:
path: ci-scripts
repository: pulumi/scripts
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVAVERSION }}
distribution: temurin
cache: gradle
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: "7.6"
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
name: pulumi-${{ env.PROVIDER }}-provider.tar.gz
path: ${{ github.workspace }}/bin
- name: UnTar provider binaries
run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
github.workspace}}/bin
- name: Restore Binary Permissions
run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print
-exec chmod +x {} \;
- name: Download SDK
uses: actions/download-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace}}/sdk/
- name: UnTar SDK folder
run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{
github.workspace}}/sdk/${{ matrix.language}}
- name: Update path
run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
- name: Install Node dependencies
run: yarn global add typescript
- run: dotnet nuget add source ${{ github.workspace }}/nuget
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install dependencies
run: make install_${{ matrix.language}}_sdk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v2
with:
install_components: gke-gcloud-auth-plugin
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: >-
set -euo pipefail
cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt
- if: failure() && github.event_name == 'push'
name: Notify Slack
uses: 8398a7/action-slack@v3
with:
author_name: Failure in SDK tests
fields: repo,commit,author,action
status: ${{ job.status }}
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
sentinel:
runs-on: ubuntu-latest
name: sentinel
steps:
- name: Is workflow a success
run: echo yes
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
needs:
- test
- lint
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
ref: ${{ env.PR_COMMIT_SHA }}
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: golangci-lint provider pkg
uses: golangci/golangci-lint-action@v4
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
args: -c ../.golangci.yml
working-directory: provider
name: lint
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository

View File

@@ -1,138 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
name: weekly-pulumi-update
on:
schedule:
- cron: 35 12 * * 4
workflow_dispatch: {}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
PROVIDER: docker-build
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
TRAVIS_OS_NAME: linux
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
GOVERSION: 1.21.x
NODEVERSION: 20.x
PYTHONVERSION: "3.11"
DOTNETVERSION: |
6.0.x
3.1.301
JAVAVERSION: "11"
AWS_REGION: us-west-2
PULUMI_API: https://api.pulumi-staging.io
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
ARM_SUBSCRIPTION_ID: 0282681f-7a9e-424b-80b2-96babd57a8a1
ARM_TENANT_ID: 706143bc-e1d4-4593-aee2-c9dc60ab9be7
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
AZURE_LOCATION: westus
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
GOOGLE_PROJECT: pulumi-ci-gcp-provider
GOOGLE_PROJECT_NUMBER: 895284651812
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
jobs:
weekly-pulumi-update:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
lfs: true
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVERSION }}
cache-dependency-path: "**/*.sum"
- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v5
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNETVERSION }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODEVERSION }}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHONVERSION }}
- name: Update Pulumi/Pulumi
id: gomod
run: >-
git config --local user.email 'bot@pulumi.com'
git config --local user.name 'pulumi-bot'
git checkout -b update-pulumi/${{ github.run_id }}-${{ github.run_number }}
for MODFILE in $(find . -name go.mod); do pushd $(dirname $MODFILE); go get github.com/pulumi/pulumi/pkg/v3 github.com/pulumi/pulumi/sdk/v3; go mod tidy; popd; done
git update-index -q --refresh
if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi
- name: Provider with Pulumi Upgrade
if: steps.gomod.outputs.changes != 0
run: >-
make codegen && make local_generate
git add sdk/nodejs
git commit -m "Regenerating Node.js SDK based on updated modules" || echo "ignore commit failure, may be empty"
git add sdk/python
git commit -m "Regenerating Python SDK based on updated modules" || echo "ignore commit failure, may be empty"
git add sdk/dotnet
git commit -m "Regenerating .NET SDK based on updated modules" || echo "ignore commit failure, may be empty"
git add sdk/go*
git commit -m "Regenerating Go SDK based on updated modules" || echo "ignore commit failure, may be empty"
git add sdk/java*
git commit -m "Regenerating Java SDK based on updated modules" || echo "ignore commit failure, may be empty"
git add .
git commit -m "Updated modules" || echo "ignore commit failure, may be empty"
git push origin update-pulumi/${{ github.run_id }}-${{ github.run_number }}
- name: Create PR
id: create-pr
if: steps.gomod.outputs.changes != 0
uses: repo-sync/pull-request@v2.6.2
with:
source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }}
destination_branch: master
pr_title: Automated Pulumi/Pulumi upgrade
github_token: ${{ secrets.PULUMI_BOT_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
name: weekly-pulumi-update

20
.gitignore vendored
View File

@@ -1,20 +0,0 @@
/vendor/
**/bin/
**/obj/
**/node_modules/
**/.vs
**/.idea
**/.ionide
*.swp
Pulumi.*.yaml
yarn.lock
ci-scripts
nuget/
coverage.txt
sdk/dotnet/version.txt
sdk/java/.gradle
sdk/java/build/
sdk/java/build.gradle
sdk/python/venv

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule ".devcontainer"]
path = .devcontainer
url = https://github.com/pulumi/devcontainer

View File

@@ -1,80 +0,0 @@
run:
timeout: 10m
linters:
enable-all: false
enable:
- errcheck
- exhaustive
- prealloc
- gofumpt
- revive
- gci
- gosec
- govet
- ineffassign
- lll
- misspell
- nolintlint
- nakedret
- unconvert
- unused
- paralleltest
- perfsprint
- depguard
- importas
linters-settings:
nakedret:
# Make an issue if func has more lines of code than this setting, and it has naked returns.
# Default: 30
max-func-lines: 60
nolintlint:
# Some linter exclusions are added to generated or templated files
# pre-emptively.
# Don't complain about these.
allow-unused: true
govet:
enable:
- nilness
# Reject comparisons of reflect.Value with DeepEqual or '=='.
- reflectvaluecompare
# Reject sort.Slice calls with a non-slice argument.
- sortslice
# Detect write to struct/arrays by-value that aren't read again.
- unusedwrite
gci:
sections:
- standard # Standard section: captures all standard library packages.
- blank # Blank section: contains all blank imports.
- default # Default section: contains all imports that could not be matched to another section type.
- prefix(github.com/pulumi/) # Custom section: groups all imports with the github.com/pulumi/ prefix.
- prefix(github.com/pulumi/pulumi-dockerbuild) # Custom section: local imports
custom-order: true
depguard:
rules:
protobuf:
deny:
- pkg: "github.com/golang/protobuf"
desc: Use google.golang.org/protobuf instead
issues:
exclude-rules:
# Don't warn on unused parameters.
# Parameter names are useful; replacing them with '_' is undesirable.
- linters: [revive]
text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _'
# staticcheck already has smarter checks for empty blocks.
# revive's empty-block linter has false positives.
# For example, as of writing this, the following is not allowed.
# for foo() { }
- linters: [revive]
text: "empty-block: this block is empty, you can remove it"
# We *frequently* use the term 'new' in the context of properties
# (new and old properties),
# and we rarely use the 'new' built-in function.
# It's fine to ignore these cases.
- linters: [revive]
text: "redefines-builtin-id: redefinition of the built-in function new"

View File

@@ -1,38 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
project_name: pulumi-docker-build
builds:
- dir: provider
env:
- CGO_ENABLED=0
- GO111MODULE=on
goos:
- darwin
- windows
- linux
goarch:
- amd64
- arm64
ignore: []
main: ./cmd/pulumi-resource-docker-build/
ldflags:
- -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
binary: pulumi-resource-docker-build
archives:
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
id: archive
snapshot:
name_template: "{{ .Tag }}-SNAPSHOT"
changelog:
skip: true
release:
disable: true
blobs:
- provider: s3
region: us-west-2
bucket: get.pulumi.com
folder: releases/plugins/
ids:
- archive

View File

@@ -1,38 +0,0 @@
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
project_name: pulumi-docker-build
builds:
- dir: provider
env:
- CGO_ENABLED=0
- GO111MODULE=on
goos:
- darwin
- windows
- linux
goarch:
- amd64
- arm64
ignore: []
main: ./cmd/pulumi-resource-docker-build/
ldflags:
- -X
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
binary: pulumi-resource-docker-build
archives:
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
id: archive
snapshot:
name_template: "{{ .Tag }}-SNAPSHOT"
changelog:
skip: true
release:
disable: false
blobs:
- provider: s3
region: us-west-2
bucket: get.pulumi.com
folder: releases/plugins/
ids:
- archive

238
Makefile
View File

@@ -1,238 +0,0 @@
PROJECT_NAME := Pulumi Docker Build Resource Provider
PACK := dockerbuild
PACKDIR := sdk
PROJECT := github.com/pulumi/pulumi-dockerbuild
NODE_MODULE_NAME := @pulumi/dockerbuild
NUGET_PKG_NAME := Pulumi.Dockerbuild
PROVIDER := pulumi-resource-${PACK}
VERSION ?= $(shell pulumictl get version)
PROVIDER_PATH := provider
VERSION_PATH := ${PROVIDER_PATH}.Version
SCHEMA_PATH := ${PROVIDER_PATH}/cmd/pulumi-resource-${PACK}/schema.json
GOPATH := $(shell go env GOPATH)
WORKING_DIR := $(shell pwd)
EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml
TESTPARALLELISM := 4
PULUMI := bin/pulumi
.PHONY: ensure
ensure:: tidy lint test_provider examples
.PHONY: tidy
tidy: go.sum
.PHONY: provider
provider: bin/${PROVIDER} bin/pulumi-gen-${PACK} # Required by CI
provider_debug::
(cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -gcflags="all=-N -l" -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
test_provider:: # Required by CI
go test -short -v -coverprofile="coverage.txt" -coverpkg=./provider/... -timeout 2h -parallel ${TESTPARALLELISM} ./provider/...
test_examples: install_nodejs_sdk install_dotnet_sdk
go test -short -v -cover -tags=all -timeout 2h -parallel ${TESTPARALLELISM} ./examples/...
test_all:: test_provider test_examples
.PHONY:
gen_examples:
examples: $(shell mkdir -p examples)
examples: sdk examples/go examples/nodejs examples/python examples/dotnet examples/java
examples/go: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,go)
@git checkout examples/go/go.mod
examples/nodejs: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,nodejs)
@git checkout examples/nodejs/package.json
examples/python: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,python)
@git checkout examples/python/requirements.txt
examples/dotnet: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,dotnet)
@git checkout examples/dotnet/provider-dockerbuild.csproj
examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
$(call example,java)
@git checkout examples/java/pom.xml
${PULUMI}: go.sum
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/pkg/v3/cmd/pulumi
define pulumi_login
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
pulumi login --local;
endef
define example
echo "GOT $(1)"
rm -rf ${WORKING_DIR}/examples/$(1)
$(PULUMI) convert \
--cwd ${WORKING_DIR}/examples/yaml \
--logtostderr \
--generate-only \
--non-interactive \
--language $(1) \
--out ${WORKING_DIR}/examples/$(1)
endef
up::
$(call pulumi_login) \
cd ${EXAMPLES_DIR} && \
pulumi stack init dev && \
pulumi stack select dev && \
pulumi config set name dev && \
pulumi up -y
down::
$(call pulumi_login) \
cd ${EXAMPLES_DIR} && \
pulumi stack select dev && \
pulumi destroy -y && \
pulumi stack rm dev -y
devcontainer::
git submodule update --init --recursive .devcontainer
git submodule update --remote --merge .devcontainer
cp -f .devcontainer/devcontainer.json .devcontainer.json
.PHONY: build
build:: provider dotnet_sdk go_sdk nodejs_sdk python_sdk
# Required for the codegen action that runs in pulumi/pulumi
only_build:: build
.PHONY: lint
lint:
golangci-lint run --fix -c .golangci.yml
install:: install_nodejs_sdk install_dotnet_sdk
cp $(WORKING_DIR)/bin/${PROVIDER} ${GOPATH}/bin
GO_TEST := go test -v -count=1 -cover -timeout 2h -parallel ${TESTPARALLELISM}
install_dotnet_sdk:: # Required by CI
rm -rf $(WORKING_DIR)/nuget/$(NUGET_PKG_NAME).*.nupkg
mkdir -p $(WORKING_DIR)/nuget
find . -name '*.nupkg' -print -exec cp -p {} ${WORKING_DIR}/nuget \;
install_python_sdk:: # Required by CI
install_go_sdk:: # Required by CI
install_nodejs_sdk:: # Required by CI
-yarn unlink --cwd $(WORKING_DIR)/sdk/nodejs/bin
yarn link --cwd $(WORKING_DIR)/sdk/nodejs/bin
.PHONY: codegen
codegen: # Required by CI
.PHONY: generate_schema
generate_schema: # Required by CI
.PHONY: build_go install_go_sdk
generate_go: sdk/go # Required by CI
build_go: # Required by CI
.PHONY: build_java install_java_sdk
generate_java: sdk/java # Required by CI
build_java: # Required by CI
.PHONY: build_python install_python_sdk
generate_python: sdk/python # Required by CI
build_python: # Required by CI
.PHONY: build_nodejs install_nodejs_sdk
generate_nodejs: sdk/nodejs # Required by CI
build_nodejs: # Required by CI
.PHONY: build_dotnet install_dotnet_sdk
generate_dotnet: sdk/dotnet # Required by CI
build_dotnet: # Required by CI
${SCHEMA_PATH}: bin/${PROVIDER}
pulumi package get-schema bin/${PROVIDER} > $(SCHEMA_PATH)
bin/${PROVIDER}: $(shell find ./provider -name '*.go') go.mod
(cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
bin/pulumi-gen-${PACK}: # Required by CI
touch bin/pulumi-gen-${PACK}
$(shell find . -name '*.go'):
go.mod: $(shell find . -name '*.go')
go.sum: go.mod
go mod tidy
sdk: $(shell mkdir -p sdk)
sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
sdk/python: PYPI_VERSION := $(shell pulumictl get version --language python)
sdk/python: TMPDIR := $(shell mktemp -d)
sdk/python: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/python
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language python -o ${TMPDIR}
cp README.md ${TMPDIR}/python/
cd ${TMPDIR}/python/ && \
rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \
sed -i.bak -e 's/^ version = .*/ version = "$(PYPI_VERSION)"/g' ./bin/pyproject.toml && \
rm ./bin/pyproject.toml.bak && \
python3 -m venv venv && \
./venv/bin/python -m pip install build && \
cd ./bin && \
../venv/bin/python -m build .
mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/.
sdk/nodejs: NODE_VERSION := $(shell pulumictl get version --language javascript)
sdk/nodejs: TMPDIR := $(shell mktemp -d)
sdk/nodejs: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/nodejs
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language nodejs -o ${TMPDIR}
cp README.md LICENSE ${TMPDIR}/nodejs
cd ${TMPDIR}/nodejs/ && \
yarn install && \
yarn run tsc && \
cp README.md LICENSE package.json yarn.lock bin/ && \
sed -i.bak 's/$${VERSION}/$(NODE_VERSION)/g' bin/package.json && \
rm ./bin/package.json.bak
mv -f ${TMPDIR}/nodejs ${WORKING_DIR}/sdk/.
sdk/go: TMPDIR := $(shell mktemp -d)
sdk/go: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/go
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
cp go.mod ${TMPDIR}/go/${PACK}/go.mod
cd ${TMPDIR}/go/${PACK} && \
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/${PACK} && \
go mod tidy
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/.
sdk/dotnet: DOTNET_VERSION := $(shell pulumictl get version --language dotnet)
sdk/dotnet: TMPDIR := $(shell mktemp -d)
sdk/dotnet: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/dotnet
$(PULUMI) package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR}
cd ${TMPDIR}/dotnet/ && \
echo "$(DOTNET_VERSION)" > version.txt && \
dotnet build /p:Version=${DOTNET_VERSION}
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
sdk/java: PACKAGE_VERSION := $(shell pulumictl get version --language generic)
sdk/java: TMPDIR := $(shell mktemp -d)
sdk/java: $(PULUMI) bin/${PROVIDER}
rm -rf sdk/java
$(PULUMI) package gen-sdk --language java bin/${PROVIDER} -o ${TMPDIR}
cd ${TMPDIR}/java/ && gradle --console=plain build
mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/.

117
README.md
View File

@@ -1,106 +1,23 @@
# Pulumi Native Provider Boilerplate
[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)
[![NPM version](https://badge.fury.io/js/%40pulumi%2fdocker-build.svg)](https://www.npmjs.com/package/@pulumi/docker-build)
[![Python version](https://badge.fury.io/py/pulumi-docker-build.svg)](https://pypi.org/project/pulumi-docker-build)
[![NuGet version](https://badge.fury.io/nu/pulumi.dockerbuild.svg)](https://badge.fury.io/nu/pulumi.dockerbuild)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-docker-build/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumi.svg)](https://github.com/pulumi/pulumi-docker-build/blob/main/LICENSE)
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
# Docker-Build Resource Provider
## Authoring a Pulumi Native Provider
A [Pulumi](http://pulumi.com) provider for building modern Docker images with [buildx](https://docs.docker.com/build/architecture/) and [BuildKit](https://docs.docker.com/build/buildkit/).
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
Not to be confused with the earlier
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
appropriate for managing resources unrelated to building images.
| Provider | Use cases |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@pulumi/docker-build` | Anything related to building images with `docker build`. |
| `@pulumi/docker` | Everything else -- including running containers and creating networks. |
### Prerequisites
## Reference
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
For more information, including examples and migration guidance, please see the Docker-Build provider's detailed [API documentation](https://www.pulumi.com/registry/packages/docker-build/).

View File

@@ -1,12 +0,0 @@
comment:
layout: "header, files, footer"
hide_project_coverage: false
coverage:
status:
project:
default:
informational: true
patch:
default:
informational: true

View File

@@ -1,353 +0,0 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/

View File

@@ -1,18 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Dockerbuild = Pulumi.Dockerbuild;
return await Deployment.RunAsync(() =>
{
var myRandomResource = new Dockerbuild.Random("myRandomResource", new()
{
Length = 24,
});
return new Dictionary<string, object?>
{
["value"] = myRandomResource.Result,
};
});

View File

@@ -1,6 +0,0 @@
name: provider-dockerbuild
runtime: dotnet
plugins:
providers:
- name: dockerbuild
path: ../../bin

View File

@@ -1,14 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Pulumi" Version="3.*" />
<PackageReference Include="Pulumi.Dockerbuild" Version="*" />
</ItemGroup>
</Project>

View File

@@ -1,39 +0,0 @@
//go:build dotnet || all
// +build dotnet all
package examples
import (
"os"
"os/exec"
"path"
"path/filepath"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestDotNetExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
nuget := filepath.Join(cwd, "../nuget")
t.Setenv("PULUMI_LOCAL_NUGET", nuget)
cmd := exec.Command("dotnet", "nuget", "add", "source", nuget)
_ = cmd.Run()
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "dotnet"),
Dependencies: []string{
"Pulumi.Dockerbuild",
},
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
NoParallel: true,
}
integration.ProgramTest(t, &test)
}

View File

@@ -1,6 +0,0 @@
name: provider-dockerbuild
runtime: go
plugins:
providers:
- name: dockerbuild
path: ../../bin

View File

@@ -1,7 +0,0 @@
module provider-dockerbuild
go 1.20
require (
github.com/pulumi/pulumi/sdk/v3 v3.111.1
)

View File

@@ -1,19 +0,0 @@
package main
import (
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
myRandomResource, err := dockerbuild.NewRandom(ctx, "myRandomResource", &dockerbuild.RandomArgs{
Length: pulumi.Int(24),
})
if err != nil {
return err
}
ctx.Export("value", myRandomResource.Result)
return nil
})
}

View File

@@ -1,30 +0,0 @@
//go:build go || all
// +build go all
package examples
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestGoExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "go"),
Dependencies: []string{
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild=../sdk/go/dockerbuild",
},
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}

View File

@@ -1,6 +0,0 @@
name: provider-dockerbuild
runtime: java
plugins:
providers:
- name: dockerbuild
path: ../../bin

View File

@@ -1,92 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pulumi</groupId>
<artifactId>provider-dockerbuild</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<encoding>UTF-8</encoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<mainClass>generated_program.App</mainClass>
<mainArgs/>
</properties>
<dependencies>
<dependency>
<groupId>com.pulumi</groupId>
<artifactId>pulumi</artifactId>
<version>(,1.0]</version>
</dependency>
<dependency>
<groupId>com.pulumi</groupId>
<artifactId>dockerbuild</artifactId>
<version>[0.0.0,)</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>${mainClass}</mainClass>
<commandlineArgs>${mainArgs}</commandlineArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<mavenVersion>3.8.5</mavenVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,27 +0,0 @@
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.dockerbuild.Random;
import com.pulumi.dockerbuild.RandomArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var myRandomResource = new Random("myRandomResource", RandomArgs.builder()
.length(24)
.build());
ctx.export("value", myRandomResource.result());
}
}

View File

@@ -1,29 +0,0 @@
//go:build java || all
// +build java all
package examples
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestJavaExample(t *testing.T) {
t.Skip("not working yet")
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "java"),
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}

View File

@@ -1,2 +0,0 @@
/bin/
/node_modules/

View File

@@ -1,6 +0,0 @@
name: provider-dockerbuild
runtime: nodejs
plugins:
providers:
- name: dockerbuild
path: ../../bin

View File

@@ -1,5 +0,0 @@
import * as pulumi from "@pulumi/pulumi";
import * as dockerbuild from "@pulumi/dockerbuild";
const myRandomResource = new dockerbuild.Random("myRandomResource", {length: 24});
export const value = myRandomResource.result;

View File

@@ -1,11 +0,0 @@
{
"name": "provider-dockerbuild",
"devDependencies": {
"@types/node": "^18"
},
"dependencies": {
"typescript": "^4.0.0",
"@pulumi/pulumi": "^3.0.0"
}
}

View File

@@ -1,18 +0,0 @@
{
"compilerOptions": {
"strict": true,
"outDir": "bin",
"target": "es2016",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"experimentalDecorators": true,
"pretty": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.ts",
]
}

View File

@@ -1,28 +0,0 @@
//go:build nodejs || all
// +build nodejs all
package examples
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestNodeExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "nodejs"),
Dependencies: []string{"@pulumi/dockerbuild"},
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}

View File

@@ -1,2 +0,0 @@
*.pyc
venv/

View File

@@ -1,6 +0,0 @@
name: provider-dockerbuild
runtime: python
plugins:
providers:
- name: dockerbuild
path: ../../bin

View File

@@ -1,5 +0,0 @@
import pulumi
import pulumi_dockerbuild as dockerbuild
my_random_resource = dockerbuild.Random("myRandomResource", length=24)
pulumi.export("value", my_random_resource.result)

View File

@@ -1 +0,0 @@
pulumi>=3.0.0,<4.0.0

View File

@@ -1,30 +0,0 @@
//go:build python || all
// +build python all
package examples
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestPythonExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "python"),
Dependencies: []string{
path.Join("..", "sdk", "python", "bin"),
},
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}

View File

@@ -1,15 +0,0 @@
name: provider-dockerbuild
runtime: yaml
plugins:
providers:
- name: dockerbuild
path: ../../bin
resources:
myRandomResource:
type: dockerbuild:Random
properties:
length: 24
outputs:
value: ${myRandomResource.result}

View File

@@ -1,15 +0,0 @@
# YAML Example Program
Test Pulumi program written in YAML for testing this provider locally.
Edit this yaml program to test features of your provider locally. You can run this program using the following command:
```bash
pulumi login
pulumi stack init local
pulumi up
```
Note that unlike the rest of the auto-generated examples in the ./examples directory, this example is not automatically generated. It is intended to be a place for you to test your provider locally.
The remaining examples are language specific examples derived from the `make gen_examples` command supported in this provider's Makefile. These examples are automatically generated and should not be edited directly. To regenerate these examples, run `make gen_examples` in the root of this provider's repository.

View File

@@ -1,27 +0,0 @@
//go:build java || all
// +build java all
package examples
import (
"os"
"path"
"testing"
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
"github.com/stretchr/testify/require"
)
func TestYAMLExample(t *testing.T) {
cwd, err := os.Getwd()
require.NoError(t, err)
test := integration.ProgramTestOptions{
Dir: path.Join(cwd, "yaml"),
Secrets: map[string]string{
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
},
}
integration.ProgramTest(t, &test)
}

258
go.mod
View File

@@ -1,258 +0,0 @@
module github.com/pulumi/pulumi-dockerbuild
go 1.21.7
require (
github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi-go-provider v0.14.1-0.20240301190400-aeddefa8dc54
github.com/pulumi/pulumi-go-provider/integration v0.10.0
github.com/pulumi/pulumi-java/pkg v0.9.9
github.com/pulumi/pulumi/pkg/v3 v3.111.1
github.com/pulumi/pulumi/sdk/v3 v3.111.1
github.com/stretchr/testify v1.8.4
)
require (
cloud.google.com/go v0.110.10 // indirect
cloud.google.com/go/compute v1.23.3 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/iam v1.1.5 // indirect
cloud.google.com/go/kms v1.15.5 // indirect
cloud.google.com/go/logging v1.8.1 // indirect
cloud.google.com/go/longrunning v0.5.4 // indirect
cloud.google.com/go/storage v1.35.1 // indirect
dario.cat/mergo v1.0.0 // indirect
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect
github.com/BurntSushi/toml v1.2.1 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
github.com/agext/levenshtein v1.2.3 // indirect
github.com/alecthomas/chroma v0.10.0 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/armon/go-metrics v0.4.0 // indirect
github.com/armon/go-radix v1.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aws/aws-sdk-go v1.49.0 // indirect
github.com/aws/aws-sdk-go-v2 v1.24.0 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect
github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 // indirect
github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.47.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect
github.com/aws/smithy-go v1.19.0 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/ccojocar/zxcvbn-go v1.0.1 // indirect
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/charmbracelet/bubbles v0.16.1 // indirect
github.com/charmbracelet/bubbletea v0.24.2 // indirect
github.com/charmbracelet/glamour v0.6.0 // indirect
github.com/charmbracelet/lipgloss v0.7.1 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
github.com/djherbis/times v1.5.0 // indirect
github.com/dlclark/regexp2 v1.4.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/edsrzf/mmap-go v1.1.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/promptkit v0.9.0 // indirect
github.com/ettle/strcase v0.1.1 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.11.0 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gofrs/uuid v4.3.1+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.1.0 // indirect
github.com/golang/glog v1.1.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/pprof v0.0.0-20230406165453-00490a63f317 // indirect
github.com/google/s2a-go v0.1.7 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/google/wire v0.5.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-hclog v1.2.2 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-plugin v1.4.6 // indirect
github.com/hashicorp/go-retryablehttp v0.7.1 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 // indirect
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6 // indirect
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
github.com/hashicorp/go-sockaddr v1.0.2 // indirect
github.com/hashicorp/go-uuid v1.0.3 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/hcl/v2 v2.18.0 // indirect
github.com/hashicorp/vault/api v1.8.2 // indirect
github.com/hashicorp/vault/sdk v0.6.1 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/moby/moby v23.0.3+incompatible // indirect
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
github.com/natefinch/atomic v1.0.1 // indirect
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
github.com/oklog/run v1.1.0 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/petar-dambovaliev/aho-corasick v0.0.0-20230725210150-fb29fc3c913e // indirect
github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e // indirect
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f // indirect
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.6.2 // indirect
github.com/pulumi/pulumi-yaml v1.6.0 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/encoding v0.3.6 // indirect
github.com/sergi/go-diff v1.3.1 // indirect
github.com/shirou/gopsutil/v3 v3.22.3 // indirect
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
github.com/skeema/knownhosts v1.2.1 // indirect
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
github.com/spf13/afero v1.9.5 // indirect
github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tklauser/go-sysconf v0.3.10 // indirect
github.com/tklauser/numcpus v0.4.0 // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/yuin/goldmark v1.5.2 // indirect
github.com/yuin/goldmark-emoji v1.0.1 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
github.com/zclconf/go-cty v1.14.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
go.opentelemetry.io/otel/metric v1.19.0 // indirect
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
go.opentelemetry.io/otel/trace v1.19.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.pennock.tech/tabular v1.1.3 // indirect
go.uber.org/atomic v1.11.0 // indirect
gocloud.dev v0.36.0 // indirect
gocloud.dev/secrets/hashivault v0.27.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/oauth2 v0.14.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/term v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.4.0 // indirect
golang.org/x/tools v0.15.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
google.golang.org/api v0.151.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/grpc v1.59.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.4.2 // indirect
)

2785
go.sum

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +0,0 @@
// Copyright 2016-2023, Pulumi Corporation.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import (
p "github.com/pulumi/pulumi-go-provider"
xyz "github.com/pulumi/pulumi-dockerbuild/provider"
)
// Serve the provider against Pulumi's Provider protocol.
func main() { _ = p.RunProvider(xyz.Name, xyz.Version, xyz.Provider()) }

View File

@@ -1,84 +0,0 @@
{
"name": "dockerbuild",
"displayName": "docker",
"version": "0.0.1-alpha.1710805517+1af3a9ed.dirty",
"description": "Description",
"keywords": [
"keywords"
],
"homepage": "pulumi.com",
"repository": "https://github.com/pulumi/pulumi-dockerbuild",
"pluginDownloadURL": "github.com/pulumi/pulumi-dockerbuild",
"publisher": "pulumi",
"meta": {
"moduleFormat": "(.*)"
},
"language": {
"csharp": {
"packageReferences": {
"Pulumi": "3.*"
}
},
"go": {
"importBasePath": "github.com/pulumi/pulumi-dockerbuild/sdk/go/docker",
"packageImportAliases": {
"github.com/pulumi/pulumi-dockerbuild/sdk/go/docker": "docker"
},
"generateResourceContainerTypes": true,
"generics": "generics-only"
},
"java": {
"basePackage": "",
"buildFiles": "gradle",
"dependencies": {
"com.google.code.findbugs:jsr305": "3.0.2",
"com.google.code.gson:gson": "2.8.9",
"com.pulumi:pulumi": "0.9.9"
},
"gradleNexusPublishPluginVersion": "1.1.0",
"gradleTest": ""
},
"nodejs": {
"dependencies": {
"@pulumi/pulumi": "^3.0.0"
}
},
"python": {
"requires": {
"pulumi": "\u003e=3.0.0,\u003c4.0.0"
},
"pyproject": {
"enabled": true
}
}
},
"config": {},
"provider": {
"type": "object"
},
"resources": {
"dockerbuild:index:Random": {
"properties": {
"length": {
"type": "integer"
},
"result": {
"type": "string"
}
},
"type": "object",
"required": [
"length",
"result"
],
"inputProperties": {
"length": {
"type": "integer"
}
},
"requiredInputs": [
"length"
]
}
}
}

View File

@@ -1,143 +0,0 @@
// Copyright 2016-2023, Pulumi Corporation.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package provider
import (
"math/rand"
"time"
p "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi-go-provider/infer"
"github.com/pulumi/pulumi-go-provider/middleware/schema"
"github.com/pulumi/pulumi-java/pkg/codegen/java"
csgen "github.com/pulumi/pulumi/pkg/v3/codegen/dotnet"
gogen "github.com/pulumi/pulumi/pkg/v3/codegen/go"
tsgen "github.com/pulumi/pulumi/pkg/v3/codegen/nodejs"
pygen "github.com/pulumi/pulumi/pkg/v3/codegen/python"
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
)
// Version is initialized by the Go linker to contain the semver of this build.
var Version string
const Name string = "dockerbuild" // Needs to match $PACK in Makefile.
func Provider() p.Provider {
// We tell the provider what resources it needs to support.
// In this case, a single custom resource.
return infer.Provider(infer.Options{
Metadata: schema.Metadata{
DisplayName: "dockerbuild",
LanguageMap: map[string]any{
"go": gogen.GoPackageInfo{
// GenerateResourceContainerTypes: true,
Generics: gogen.GenericsSettingGenericsOnly,
PackageImportAliases: map[string]string{
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild": "dockerbuild",
},
ImportBasePath: "github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild",
},
"csharp": csgen.CSharpPackageInfo{
PackageReferences: map[string]string{
"Pulumi": "3.*",
},
},
"java": java.PackageInfo{
BuildFiles: "gradle",
GradleNexusPublishPluginVersion: "1.1.0",
Dependencies: map[string]string{
"com.pulumi:pulumi": "0.9.9",
"com.google.code.gson:gson": "2.8.9",
"com.google.code.findbugs:jsr305": "3.0.2",
},
},
"nodejs": tsgen.NodePackageInfo{
Dependencies: map[string]string{
"@pulumi/pulumi": "^3.0.0",
},
},
"python": pygen.PackageInfo{
PyProject: struct {
Enabled bool `json:"enabled,omitempty"`
}{Enabled: true},
Requires: map[string]string{
"pulumi": ">=3.0.0,<4.0.0",
},
},
},
Description: "Description",
Keywords: []string{"keywords"},
Homepage: "pulumi.com",
Publisher: "pulumi",
Repository: "https://github.com/pulumi/pulumi-dockerbuild",
PluginDownloadURL: "github.com/pulumi/pulumi-dockerbuild",
},
Resources: []infer.InferredResource{
infer.Resource[Random, RandomArgs, RandomState](),
},
ModuleMap: map[tokens.ModuleName]tokens.ModuleName{
"provider": "index",
},
})
}
// Each resource has a controlling struct.
// Resource behavior is determined by implementing methods on the controlling struct.
// The `Create` method is mandatory, but other methods are optional.
// - Check: Remap inputs before they are typed.
// - Diff: Change how instances of a resource are compared.
// - Update: Mutate a resource in place.
// - Read: Get the state of a resource from the backing provider.
// - Delete: Custom logic when the resource is deleted.
// - Annotate: Describe fields and set defaults for a resource.
// - WireDependencies: Control how outputs and secrets flows through values.
type Random struct{}
// Each resource has an input struct, defining what arguments it accepts.
type RandomArgs struct {
// Fields projected into Pulumi must be public and hava a `pulumi:"..."` tag.
// The pulumi tag doesn't need to match the field name, but it's generally a
// good idea.
Length int `pulumi:"length"`
}
// Each resource has a state, describing the fields that exist on the created resource.
type RandomState struct {
// It is generally a good idea to embed args in outputs, but it isn't strictly necessary.
RandomArgs
// Here we define a required output called result.
Result string `pulumi:"result" provider:"output"`
}
// All resources must implement Create at a minimum.
func (Random) Create(ctx p.Context, name string, input RandomArgs, preview bool) (string, RandomState, error) {
state := RandomState{RandomArgs: input}
if preview {
return name, state, nil
}
state.Result = makeRandom(input.Length)
return name, state, nil
}
func makeRandom(length int) string {
seededRand := rand.New(rand.NewSource(time.Now().UnixNano())) //nolint: gosec
charset := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
result := make([]rune, length)
for i := range result {
result[i] = charset[seededRand.Intn(len(charset))]
}
return string(result)
}

View File

@@ -1,57 +0,0 @@
// Copyright 2016-2023, Pulumi Corporation.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package provider
import (
"testing"
"github.com/blang/semver"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
p "github.com/pulumi/pulumi-go-provider"
"github.com/pulumi/pulumi-go-provider/integration"
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
)
func TestRandomCreate(t *testing.T) {
t.Parallel()
prov := provider()
response, err := prov.Create(p.CreateRequest{
Urn: urn("Random"),
Properties: resource.PropertyMap{
"length": resource.NewNumberProperty(12),
},
Preview: false,
})
require.NoError(t, err)
result := response.Properties["result"].StringValue()
assert.Len(t, result, 12)
}
// urn is a helper function to build an urn for running integration tests.
func urn(typ string) resource.URN {
return resource.NewURN("stack", "proj", "",
tokens.Type("test:index:"+typ), "name")
}
// Create a test server.
func provider() integration.Server {
return integration.NewServer(Name, semver.MustParse("1.0.0"), Provider())
}

View File

@@ -1,48 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.Dockerbuild
{
[DockerbuildResourceType("pulumi:providers:dockerbuild")]
public partial class Provider : global::Pulumi.ProviderResource
{
/// <summary>
/// Create a Provider resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Provider(string name, ProviderArgs? args = null, CustomResourceOptions? options = null)
: base("dockerbuild", name, args ?? new ProviderArgs(), MakeResourceOptions(options, ""))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-dockerbuild",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
}
public sealed class ProviderArgs : global::Pulumi.ResourceArgs
{
public ProviderArgs()
{
}
public static new ProviderArgs Empty => new ProviderArgs();
}
}

View File

@@ -1,60 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>pulumi</Authors>
<Company>pulumi</Company>
<Description>Description</Description>
<PackageLicenseExpression></PackageLicenseExpression>
<PackageProjectUrl>pulumi.com</PackageProjectUrl>
<RepositoryUrl>https://github.com/pulumi/pulumi-dockerbuild</RepositoryUrl>
<PackageIcon>logo.png</PackageIcon>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
<PropertyGroup>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="version.txt" />
<None Include="version.txt" Pack="True" PackagePath="content" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="pulumi-plugin.json" />
<None Include="pulumi-plugin.json" Pack="True" PackagePath="content" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Pulumi" Version="3.*" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
<None Include="logo.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>

View File

@@ -1 +0,0 @@
Description

View File

@@ -1,75 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.Dockerbuild
{
[DockerbuildResourceType("dockerbuild:index:Random")]
public partial class Random : global::Pulumi.CustomResource
{
[Output("length")]
public Output<int> Length { get; private set; } = null!;
[Output("result")]
public Output<string> Result { get; private set; } = null!;
/// <summary>
/// Create a Random resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Random(string name, RandomArgs args, CustomResourceOptions? options = null)
: base("dockerbuild:index:Random", name, args ?? new RandomArgs(), MakeResourceOptions(options, ""))
{
}
private Random(string name, Input<string> id, CustomResourceOptions? options = null)
: base("dockerbuild:index:Random", name, null, MakeResourceOptions(options, id))
{
}
private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "github.com/pulumi/pulumi-dockerbuild",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
/// <summary>
/// Get an existing Random resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
/// </summary>
///
/// <param name="name">The unique name of the resulting resource.</param>
/// <param name="id">The unique provider ID of the resource to lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static Random Get(string name, Input<string> id, CustomResourceOptions? options = null)
{
return new Random(name, id, options);
}
}
public sealed class RandomArgs : global::Pulumi.ResourceArgs
{
[Input("length", required: true)]
public Input<int> Length { get; set; } = null!;
public RandomArgs()
{
}
public static new RandomArgs Empty => new RandomArgs();
}
}

View File

@@ -1,84 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
namespace Pulumi.Dockerbuild
{
static class Utilities
{
public static string? GetEnv(params string[] names)
{
foreach (var n in names)
{
var value = global::System.Environment.GetEnvironmentVariable(n);
if (value != null)
{
return value;
}
}
return null;
}
static string[] trueValues = { "1", "t", "T", "true", "TRUE", "True" };
static string[] falseValues = { "0", "f", "F", "false", "FALSE", "False" };
public static bool? GetEnvBoolean(params string[] names)
{
var s = GetEnv(names);
if (s != null)
{
if (global::System.Array.IndexOf(trueValues, s) != -1)
{
return true;
}
if (global::System.Array.IndexOf(falseValues, s) != -1)
{
return false;
}
}
return null;
}
public static int? GetEnvInt32(params string[] names) => int.TryParse(GetEnv(names), out int v) ? (int?)v : null;
public static double? GetEnvDouble(params string[] names) => double.TryParse(GetEnv(names), out double v) ? (double?)v : null;
[global::System.Obsolete("Please use WithDefaults instead")]
public static global::Pulumi.InvokeOptions WithVersion(this global::Pulumi.InvokeOptions? options)
{
var dst = options ?? new global::Pulumi.InvokeOptions{};
dst.Version = options?.Version ?? Version;
return dst;
}
public static global::Pulumi.InvokeOptions WithDefaults(this global::Pulumi.InvokeOptions? src)
{
var dst = src ?? new global::Pulumi.InvokeOptions{};
dst.Version = src?.Version ?? Version;
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github.com/pulumi/pulumi-dockerbuild";
return dst;
}
private readonly static string version;
public static string Version => version;
static Utilities()
{
var assembly = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(Utilities)).Assembly;
using var stream = assembly.GetManifestResourceStream("Pulumi.Dockerbuild.version.txt");
using var reader = new global::System.IO.StreamReader(stream ?? throw new global::System.NotSupportedException("Missing embedded version.txt file"));
version = reader.ReadToEnd().Trim();
var parts = version.Split("\n");
if (parts.Length == 2)
{
// The first part is the provider name.
version = parts[1].Trim();
}
}
}
internal sealed class DockerbuildResourceTypeAttribute : global::Pulumi.ResourceTypeAttribute
{
public DockerbuildResourceTypeAttribute(string type) : base(type, Utilities.Version)
{
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -1,5 +0,0 @@
{
"resource": true,
"name": "dockerbuild",
"server": "github.com/pulumi/pulumi-dockerbuild"
}

View File

@@ -0,0 +1,28 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
var _ = internal.GetEnvOrDefault
// The build daemon's address.
func GetHost(ctx *pulumi.Context) string {
v, err := config.Try(ctx, "docker-build:host")
if err == nil {
return v
}
var value string
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
value = d.(string)
}
return value
}
func GetRegistries(ctx *pulumi.Context) string {
return config.Get(ctx, "docker-build:registries")
}

View File

@@ -1,2 +1,2 @@
// Description
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

View File

@@ -1,54 +1,59 @@
module github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild
module github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild
go 1.21.7
go 1.22.0
toolchain go1.23.4
require (
github.com/blang/semver v3.5.1+incompatible
github.com/pulumi/pulumi/sdk/v3 v3.111.1
github.com/pulumi/pulumi/sdk/v3 v3.144.1
)
require (
dario.cat/mergo v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
dario.cat/mergo v1.0.1 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.1.3 // indirect
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
github.com/agext/levenshtein v1.2.3 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/bubbles v0.16.1 // indirect
github.com/charmbracelet/bubbletea v0.24.2 // indirect
github.com/charmbracelet/lipgloss v0.7.1 // indirect
github.com/charmbracelet/bubbles v0.20.0 // indirect
github.com/charmbracelet/bubbletea v1.1.0 // indirect
github.com/charmbracelet/lipgloss v0.13.0 // indirect
github.com/charmbracelet/x/ansi v0.2.3 // indirect
github.com/charmbracelet/x/term v0.2.0 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/djherbis/times v1.5.0 // indirect
github.com/cloudflare/circl v1.4.0 // indirect
github.com/cyphar/filepath-securejoin v0.3.6 // indirect
github.com/djherbis/times v1.6.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/fatih/color v1.17.0 // indirect
github.com/frankban/quicktest v1.14.6 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.11.0 // indirect
github.com/go-git/go-billy/v5 v5.6.1 // indirect
github.com/go-git/go-git/v5 v5.13.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.1.2 // indirect
github.com/golang/glog v1.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl/v2 v2.18.0 // indirect
github.com/hashicorp/hcl/v2 v2.22.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
@@ -57,35 +62,35 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.6.2 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/pulumi/esc v0.10.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
github.com/sergi/go-diff v1.3.1 // indirect
github.com/skeema/knownhosts v1.2.1 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.3.0 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/zclconf/go-cty v1.14.0 // indirect
github.com/zclconf/go-cty v1.15.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/term v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/tools v0.15.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/grpc v1.59.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
golang.org/x/crypto v0.31.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/mod v0.21.0 // indirect
golang.org/x/net v0.33.0 // indirect
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/term v0.27.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/tools v0.25.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.35.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/frand v1.4.2 // indirect

View File

@@ -1,12 +1,14 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk=
github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
@@ -23,60 +25,62 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY=
github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc=
github.com/charmbracelet/bubbletea v0.24.2 h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06RaW2cx/SY=
github.com/charmbracelet/bubbletea v0.24.2/go.mod h1:XdrNrV4J8GiyshTtx3DNuYkR1FDaJmO3l2nejekbsgg=
github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E=
github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c=
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
github.com/charmbracelet/bubbletea v1.1.0 h1:FjAl9eAL3HBCHenhz/ZPjkKdScmaS5SK69JAK2YJK9c=
github.com/charmbracelet/bubbletea v1.1.0/go.mod h1:9Ogk0HrdbHolIKHdjfFpyXJmiCzGwy+FesYkZr7hYU4=
github.com/charmbracelet/lipgloss v0.13.0 h1:4X3PPeoWEDCMvzDvGmTajSyYPcZM4+y8sCA/SsA3cjw=
github.com/charmbracelet/lipgloss v0.13.0/go.mod h1:nw4zy0SBX/F/eAO1cWdcvy6qnkDUxr8Lw7dvFrAIbbY=
github.com/charmbracelet/x/ansi v0.2.3 h1:VfFN0NUpcjBRd4DnKfRaIRo53KRgey/nhOoEqosGDEY=
github.com/charmbracelet/x/ansi v0.2.3/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0=
github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/cloudflare/circl v1.4.0 h1:BV7h5MgrktNzytKmWjpOtdYrf0lkkbF8YMlBGPhJQrY=
github.com/cloudflare/circl v1.4.0/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.3.6 h1:4d9N5ykBnSp5Xn2JkhocYDkOpURL/18CYMpo6xB9uWM=
github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU=
github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
github.com/elazarl/goproxy v1.2.3 h1:xwIyKHbaP5yfT6O9KIeYJR5549MXRQkoQMRXGztz8YQ=
github.com/elazarl/goproxy v1.2.3/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
github.com/go-git/go-billy/v5 v5.6.1 h1:u+dcrgaguSSkbjzHwelEjc0Yj300NUevrrPphk/SoRA=
github.com/go-git/go-billy/v5 v5.6.1/go.mod h1:0AsLr1z2+Uksi4NlElmMblP5rPcDZNRCD8ujZCRR2BE=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q+M=
github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=
github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -84,8 +88,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/hcl/v2 v2.18.0 h1:wYnG7Lt31t2zYkcquwgKo6MWXzRUDIeIVU5naZwHLl8=
github.com/hashicorp/hcl/v2 v2.18.0/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
github.com/hashicorp/hcl/v2 v2.22.0 h1:hkZ3nCtqeJsDhPRFz5EA9iwcG1hNWGePOTw6oyul12M=
github.com/hashicorp/hcl/v2 v2.22.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
@@ -105,18 +109,17 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
@@ -125,12 +128,10 @@ github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
@@ -140,6 +141,7 @@ github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
@@ -148,47 +150,44 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw=
github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k=
github.com/pulumi/pulumi/sdk/v3 v3.111.1 h1:uOeG/b6YxBuL59xHtmFPspMa8BB6ovjHelL7sVCGJZw=
github.com/pulumi/pulumi/sdk/v3 v3.111.1/go.mod h1:5A6GHUwAJlRY1SSLZh84aDIbsBShcrfcmHzI50ecSBg=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c=
github.com/pulumi/pulumi/sdk/v3 v3.144.1 h1:QQtCDERihhlfvcmRzqHeBmOER1Fg1VkFj9933Lxqv00=
github.com/pulumi/pulumi/sdk/v3 v3.144.1/go.mod h1:/6gxU2XirnLlImBy5OoqV6I4HcjOf+IznNIZNZExZzo=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY=
github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68=
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
@@ -197,50 +196,37 @@ github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.14.0 h1:/Xrd39K7DXbHzlisFP9c4pHao4yyf+/Ug9LEz+Y/yhc=
github.com/zclconf/go-cty v1.14.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ=
github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -253,54 +239,38 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I=
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

1363
sdk/go/dockerbuild/image.go Normal file

File diff suppressed because it is too large Load Diff

307
sdk/go/dockerbuild/index.go Normal file
View File

@@ -0,0 +1,307 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching
// ```go
// package main
//
// import (
//
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// amd64, err := dockerbuild.NewImage(ctx, "amd64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_amd64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
// },
// })
// if err != nil {
// return err
// }
// arm64, err := dockerbuild.NewImage(ctx, "arm64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_arm64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
// },
// })
// if err != nil {
// return err
// }
// index, err := dockerbuild.NewIndex(ctx, "index", &dockerbuild.IndexArgs{
// Sources: pulumi.StringArray{
// amd64.Ref,
// arm64.Ref,
// },
// Tag: pulumi.String("docker.io/pulumi/pulumi:3.107.0"),
// })
// if err != nil {
// return err
// }
// ctx.Export("ref", index.Ref)
// return nil
// })
// }
//
// ```
type Index struct {
pulumi.CustomResourceState
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumi.BoolPtrOutput `pulumi:"push"`
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
Ref pulumi.StringOutput `pulumi:"ref"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry RegistryPtrOutput `pulumi:"registry"`
// Existing images to include in the index.
Sources pulumi.StringArrayOutput `pulumi:"sources"`
// The tag to apply to the index.
Tag pulumi.StringOutput `pulumi:"tag"`
}
// NewIndex registers a new resource with the given unique name, arguments, and options.
func NewIndex(ctx *pulumi.Context,
name string, args *IndexArgs, opts ...pulumi.ResourceOption) (*Index, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Sources == nil {
return nil, errors.New("invalid value for required argument 'Sources'")
}
if args.Tag == nil {
return nil, errors.New("invalid value for required argument 'Tag'")
}
if args.Push == nil {
args.Push = pulumi.BoolPtr(true)
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Index
err := ctx.RegisterResource("docker-build:index:Index", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetIndex gets an existing Index resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetIndex(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IndexState, opts ...pulumi.ResourceOption) (*Index, error) {
var resource Index
err := ctx.ReadResource("docker-build:index:Index", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Index resources.
type indexState struct {
}
type IndexState struct {
}
func (IndexState) ElementType() reflect.Type {
return reflect.TypeOf((*indexState)(nil)).Elem()
}
type indexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push *bool `pulumi:"push"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry *Registry `pulumi:"registry"`
// Existing images to include in the index.
Sources []string `pulumi:"sources"`
// The tag to apply to the index.
Tag string `pulumi:"tag"`
}
// The set of arguments for constructing a Index resource.
type IndexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumi.BoolPtrInput
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry RegistryPtrInput
// Existing images to include in the index.
Sources pulumi.StringArrayInput
// The tag to apply to the index.
Tag pulumi.StringInput
}
func (IndexArgs) ElementType() reflect.Type {
return reflect.TypeOf((*indexArgs)(nil)).Elem()
}
type IndexInput interface {
pulumi.Input
ToIndexOutput() IndexOutput
ToIndexOutputWithContext(ctx context.Context) IndexOutput
}
func (*Index) ElementType() reflect.Type {
return reflect.TypeOf((**Index)(nil)).Elem()
}
func (i *Index) ToIndexOutput() IndexOutput {
return i.ToIndexOutputWithContext(context.Background())
}
func (i *Index) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return pulumi.ToOutputWithContext(ctx, i).(IndexOutput)
}
func (i *Index) ToOutput(ctx context.Context) pulumix.Output[*Index] {
return pulumix.Output[*Index]{
OutputState: i.ToIndexOutputWithContext(ctx).OutputState,
}
}
type IndexOutput struct{ *pulumi.OutputState }
func (IndexOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Index)(nil)).Elem()
}
func (o IndexOutput) ToIndexOutput() IndexOutput {
return o
}
func (o IndexOutput) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return o
}
func (o IndexOutput) ToOutput(ctx context.Context) pulumix.Output[*Index] {
return pulumix.Output[*Index]{
OutputState: o.OutputState,
}
}
// If true, push the index to the target registry.
//
// Defaults to `true`.
func (o IndexOutput) Push() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *Index) pulumi.BoolPtrOutput { return v.Push }).(pulumi.BoolPtrOutput)
}
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
func (o IndexOutput) Ref() pulumi.StringOutput {
return o.ApplyT(func(v *Index) pulumi.StringOutput { return v.Ref }).(pulumi.StringOutput)
}
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
func (o IndexOutput) Registry() RegistryPtrOutput {
return o.ApplyT(func(v *Index) RegistryPtrOutput { return v.Registry }).(RegistryPtrOutput)
}
// Existing images to include in the index.
func (o IndexOutput) Sources() pulumi.StringArrayOutput {
return o.ApplyT(func(v *Index) pulumi.StringArrayOutput { return v.Sources }).(pulumi.StringArrayOutput)
}
// The tag to apply to the index.
func (o IndexOutput) Tag() pulumi.StringOutput {
return o.ApplyT(func(v *Index) pulumi.StringOutput { return v.Tag }).(pulumi.StringOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*IndexInput)(nil)).Elem(), &Index{})
pulumi.RegisterOutputType(IndexOutput{})
}

View File

@@ -7,7 +7,7 @@ import (
"fmt"
"github.com/blang/semver"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
@@ -21,8 +21,10 @@ func (m *module) Version() semver.Version {
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
switch typ {
case "dockerbuild:index:Random":
r = &Random{}
case "docker-build:index:Image":
r = &Image{}
case "docker-build:index:Index":
r = &Index{}
default:
return nil, fmt.Errorf("unknown resource type: %s", typ)
}
@@ -40,7 +42,7 @@ func (p *pkg) Version() semver.Version {
}
func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) {
if typ != "pulumi:providers:dockerbuild" {
if typ != "pulumi:providers:docker-build" {
return nil, fmt.Errorf("unknown provider type: %s", typ)
}
@@ -55,12 +57,12 @@ func init() {
version = semver.Version{Major: 1}
}
pulumi.RegisterResourceModule(
"dockerbuild",
"docker-build",
"index",
&module{version},
)
pulumi.RegisterResourcePackage(
"dockerbuild",
"docker-build",
&pkg{version},
)
}

View File

@@ -75,7 +75,7 @@ func PkgVersion() (semver.Version, error) {
}
type sentinal struct{}
pkgPath := reflect.TypeOf(sentinal{}).PkgPath()
re := regexp.MustCompile("^.*/pulumi-dockerbuild/sdk(/v\\d+)?")
re := regexp.MustCompile("^.*/pulumi-docker-build/sdk(/v\\d+)?")
if match := re.FindStringSubmatch(pkgPath); match != nil {
vStr := match[1]
if len(vStr) == 0 { // If the version capture group was empty, default to v1.
@@ -164,8 +164,8 @@ func callPlainInner(
// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource.
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
defaults := []pulumi.ResourceOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-dockerbuild"))
version := SdkVersion
version := semver.MustParse("0.0.10")
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
}
@@ -175,8 +175,8 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio
// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke.
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
defaults := []pulumi.InvokeOption{}
defaults = append(defaults, pulumi.PluginDownloadURL("github.com/pulumi/pulumi-dockerbuild"))
version := SdkVersion
version := semver.MustParse("0.0.10")
if !version.Equals(semver.Version{}) {
defaults = append(defaults, pulumi.Version(version.String()))
}

View File

@@ -7,13 +7,16 @@ import (
"context"
"reflect"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Provider struct {
pulumi.ProviderResourceState
// The build daemon's address.
Host pulumi.StringPtrOutput `pulumi:"host"`
}
// NewProvider registers a new resource with the given unique name, arguments, and options.
@@ -23,9 +26,14 @@ func NewProvider(ctx *pulumi.Context,
args = &ProviderArgs{}
}
if args.Host == nil {
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
args.Host = pulumi.StringPtr(d.(string))
}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Provider
err := ctx.RegisterResource("pulumi:providers:dockerbuild", name, args, &resource, opts...)
err := ctx.RegisterResource("pulumi:providers:docker-build", name, args, &resource, opts...)
if err != nil {
return nil, err
}
@@ -33,20 +41,51 @@ func NewProvider(ctx *pulumi.Context,
}
type providerArgs struct {
// The build daemon's address.
Host *string `pulumi:"host"`
Registries []Registry `pulumi:"registries"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
// The build daemon's address.
Host pulumi.StringPtrInput
Registries RegistryArrayInput
}
func (ProviderArgs) ElementType() reflect.Type {
return reflect.TypeOf((*providerArgs)(nil)).Elem()
}
type ProviderInput interface {
pulumi.Input
ToProviderOutput() ProviderOutput
ToProviderOutputWithContext(ctx context.Context) ProviderOutput
}
func (*Provider) ElementType() reflect.Type {
return reflect.TypeOf((**Provider)(nil)).Elem()
}
func (i *Provider) ToProviderOutput() ProviderOutput {
return i.ToProviderOutputWithContext(context.Background())
}
func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput)
}
func (i *Provider) ToOutput(ctx context.Context) pulumix.Output[*Provider] {
return pulumix.Output[*Provider]{
OutputState: i.ToProviderOutputWithContext(ctx).OutputState,
}
}
type ProviderOutput struct{ *pulumi.OutputState }
func (ProviderOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Provider)(nil)).Elem()
return reflect.TypeOf((**Provider)(nil)).Elem()
}
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
@@ -57,12 +96,18 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide
return o
}
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[Provider] {
return pulumix.Output[Provider]{
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[*Provider] {
return pulumix.Output[*Provider]{
OutputState: o.OutputState,
}
}
// The build daemon's address.
func (o ProviderOutput) Host() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Host }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{})
pulumi.RegisterOutputType(ProviderOutput{})
}

View File

@@ -1,5 +1,5 @@
{
"resource": true,
"name": "dockerbuild",
"server": "github.com/pulumi/pulumi-dockerbuild"
"name": "docker-build",
"version": "0.0.10"
}

View File

@@ -0,0 +1,886 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type CacheMode string
const (
// Only layers that are exported into the resulting image are cached.
CacheModeMin = CacheMode("min")
// All layers are cached, even those of intermediate steps.
CacheModeMax = CacheMode("max")
)
func (CacheMode) ElementType() reflect.Type {
return reflect.TypeOf((*CacheMode)(nil)).Elem()
}
func (e CacheMode) ToCacheModeOutput() CacheModeOutput {
return pulumi.ToOutput(e).(CacheModeOutput)
}
func (e CacheMode) ToCacheModeOutputWithContext(ctx context.Context) CacheModeOutput {
return pulumi.ToOutputWithContext(ctx, e).(CacheModeOutput)
}
func (e CacheMode) ToCacheModePtrOutput() CacheModePtrOutput {
return e.ToCacheModePtrOutputWithContext(context.Background())
}
func (e CacheMode) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return CacheMode(e).ToCacheModeOutputWithContext(ctx).ToCacheModePtrOutputWithContext(ctx)
}
func (e CacheMode) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e CacheMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e CacheMode) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e CacheMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type CacheModeOutput struct{ *pulumi.OutputState }
func (CacheModeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*CacheMode)(nil)).Elem()
}
func (o CacheModeOutput) ToCacheModeOutput() CacheModeOutput {
return o
}
func (o CacheModeOutput) ToCacheModeOutputWithContext(ctx context.Context) CacheModeOutput {
return o
}
func (o CacheModeOutput) ToCacheModePtrOutput() CacheModePtrOutput {
return o.ToCacheModePtrOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v CacheMode) *CacheMode {
return &v
}).(CacheModePtrOutput)
}
func (o CacheModeOutput) ToOutput(ctx context.Context) pulumix.Output[CacheMode] {
return pulumix.Output[CacheMode]{
OutputState: o.OutputState,
}
}
func (o CacheModeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CacheMode) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o CacheModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CacheModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CacheMode) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type CacheModePtrOutput struct{ *pulumi.OutputState }
func (CacheModePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**CacheMode)(nil)).Elem()
}
func (o CacheModePtrOutput) ToCacheModePtrOutput() CacheModePtrOutput {
return o
}
func (o CacheModePtrOutput) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return o
}
func (o CacheModePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*CacheMode] {
return pulumix.Output[*CacheMode]{
OutputState: o.OutputState,
}
}
func (o CacheModePtrOutput) Elem() CacheModeOutput {
return o.ApplyT(func(v *CacheMode) CacheMode {
if v != nil {
return *v
}
var ret CacheMode
return ret
}).(CacheModeOutput)
}
func (o CacheModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CacheModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *CacheMode) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// CacheModeInput is an input type that accepts values of the CacheMode enum
// A concrete instance of `CacheModeInput` can be one of the following:
//
// CacheModeMin
// CacheModeMax
type CacheModeInput interface {
pulumi.Input
ToCacheModeOutput() CacheModeOutput
ToCacheModeOutputWithContext(context.Context) CacheModeOutput
}
var cacheModePtrType = reflect.TypeOf((**CacheMode)(nil)).Elem()
type CacheModePtrInput interface {
pulumi.Input
ToCacheModePtrOutput() CacheModePtrOutput
ToCacheModePtrOutputWithContext(context.Context) CacheModePtrOutput
}
type cacheModePtr string
func CacheModePtr(v string) CacheModePtrInput {
return (*cacheModePtr)(&v)
}
func (*cacheModePtr) ElementType() reflect.Type {
return cacheModePtrType
}
func (in *cacheModePtr) ToCacheModePtrOutput() CacheModePtrOutput {
return pulumi.ToOutput(in).(CacheModePtrOutput)
}
func (in *cacheModePtr) ToCacheModePtrOutputWithContext(ctx context.Context) CacheModePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(CacheModePtrOutput)
}
func (in *cacheModePtr) ToOutput(ctx context.Context) pulumix.Output[*CacheMode] {
return pulumix.Output[*CacheMode]{
OutputState: in.ToCacheModePtrOutputWithContext(ctx).OutputState,
}
}
type CompressionType string
const (
// Use `gzip` for compression.
CompressionTypeGzip = CompressionType("gzip")
// Use `estargz` for compression.
CompressionTypeEstargz = CompressionType("estargz")
// Use `zstd` for compression.
CompressionTypeZstd = CompressionType("zstd")
)
func (CompressionType) ElementType() reflect.Type {
return reflect.TypeOf((*CompressionType)(nil)).Elem()
}
func (e CompressionType) ToCompressionTypeOutput() CompressionTypeOutput {
return pulumi.ToOutput(e).(CompressionTypeOutput)
}
func (e CompressionType) ToCompressionTypeOutputWithContext(ctx context.Context) CompressionTypeOutput {
return pulumi.ToOutputWithContext(ctx, e).(CompressionTypeOutput)
}
func (e CompressionType) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return e.ToCompressionTypePtrOutputWithContext(context.Background())
}
func (e CompressionType) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return CompressionType(e).ToCompressionTypeOutputWithContext(ctx).ToCompressionTypePtrOutputWithContext(ctx)
}
func (e CompressionType) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e CompressionType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e CompressionType) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e CompressionType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type CompressionTypeOutput struct{ *pulumi.OutputState }
func (CompressionTypeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*CompressionType)(nil)).Elem()
}
func (o CompressionTypeOutput) ToCompressionTypeOutput() CompressionTypeOutput {
return o
}
func (o CompressionTypeOutput) ToCompressionTypeOutputWithContext(ctx context.Context) CompressionTypeOutput {
return o
}
func (o CompressionTypeOutput) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return o.ToCompressionTypePtrOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v CompressionType) *CompressionType {
return &v
}).(CompressionTypePtrOutput)
}
func (o CompressionTypeOutput) ToOutput(ctx context.Context) pulumix.Output[CompressionType] {
return pulumix.Output[CompressionType]{
OutputState: o.OutputState,
}
}
func (o CompressionTypeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CompressionType) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o CompressionTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CompressionTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e CompressionType) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type CompressionTypePtrOutput struct{ *pulumi.OutputState }
func (CompressionTypePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**CompressionType)(nil)).Elem()
}
func (o CompressionTypePtrOutput) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return o
}
func (o CompressionTypePtrOutput) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return o
}
func (o CompressionTypePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*CompressionType] {
return pulumix.Output[*CompressionType]{
OutputState: o.OutputState,
}
}
func (o CompressionTypePtrOutput) Elem() CompressionTypeOutput {
return o.ApplyT(func(v *CompressionType) CompressionType {
if v != nil {
return *v
}
var ret CompressionType
return ret
}).(CompressionTypeOutput)
}
func (o CompressionTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o CompressionTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *CompressionType) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// CompressionTypeInput is an input type that accepts values of the CompressionType enum
// A concrete instance of `CompressionTypeInput` can be one of the following:
//
// CompressionTypeGzip
// CompressionTypeEstargz
// CompressionTypeZstd
type CompressionTypeInput interface {
pulumi.Input
ToCompressionTypeOutput() CompressionTypeOutput
ToCompressionTypeOutputWithContext(context.Context) CompressionTypeOutput
}
var compressionTypePtrType = reflect.TypeOf((**CompressionType)(nil)).Elem()
type CompressionTypePtrInput interface {
pulumi.Input
ToCompressionTypePtrOutput() CompressionTypePtrOutput
ToCompressionTypePtrOutputWithContext(context.Context) CompressionTypePtrOutput
}
type compressionTypePtr string
func CompressionTypePtr(v string) CompressionTypePtrInput {
return (*compressionTypePtr)(&v)
}
func (*compressionTypePtr) ElementType() reflect.Type {
return compressionTypePtrType
}
func (in *compressionTypePtr) ToCompressionTypePtrOutput() CompressionTypePtrOutput {
return pulumi.ToOutput(in).(CompressionTypePtrOutput)
}
func (in *compressionTypePtr) ToCompressionTypePtrOutputWithContext(ctx context.Context) CompressionTypePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(CompressionTypePtrOutput)
}
func (in *compressionTypePtr) ToOutput(ctx context.Context) pulumix.Output[*CompressionType] {
return pulumix.Output[*CompressionType]{
OutputState: in.ToCompressionTypePtrOutputWithContext(ctx).OutputState,
}
}
type NetworkMode string
const (
// The default sandbox network mode.
NetworkModeDefault = NetworkMode("default")
// Host network mode.
NetworkModeHost = NetworkMode("host")
// Disable network access.
NetworkModeNone = NetworkMode("none")
)
func (NetworkMode) ElementType() reflect.Type {
return reflect.TypeOf((*NetworkMode)(nil)).Elem()
}
func (e NetworkMode) ToNetworkModeOutput() NetworkModeOutput {
return pulumi.ToOutput(e).(NetworkModeOutput)
}
func (e NetworkMode) ToNetworkModeOutputWithContext(ctx context.Context) NetworkModeOutput {
return pulumi.ToOutputWithContext(ctx, e).(NetworkModeOutput)
}
func (e NetworkMode) ToNetworkModePtrOutput() NetworkModePtrOutput {
return e.ToNetworkModePtrOutputWithContext(context.Background())
}
func (e NetworkMode) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return NetworkMode(e).ToNetworkModeOutputWithContext(ctx).ToNetworkModePtrOutputWithContext(ctx)
}
func (e NetworkMode) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e NetworkMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e NetworkMode) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e NetworkMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type NetworkModeOutput struct{ *pulumi.OutputState }
func (NetworkModeOutput) ElementType() reflect.Type {
return reflect.TypeOf((*NetworkMode)(nil)).Elem()
}
func (o NetworkModeOutput) ToNetworkModeOutput() NetworkModeOutput {
return o
}
func (o NetworkModeOutput) ToNetworkModeOutputWithContext(ctx context.Context) NetworkModeOutput {
return o
}
func (o NetworkModeOutput) ToNetworkModePtrOutput() NetworkModePtrOutput {
return o.ToNetworkModePtrOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkMode) *NetworkMode {
return &v
}).(NetworkModePtrOutput)
}
func (o NetworkModeOutput) ToOutput(ctx context.Context) pulumix.Output[NetworkMode] {
return pulumix.Output[NetworkMode]{
OutputState: o.OutputState,
}
}
func (o NetworkModeOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e NetworkMode) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o NetworkModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o NetworkModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e NetworkMode) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type NetworkModePtrOutput struct{ *pulumi.OutputState }
func (NetworkModePtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**NetworkMode)(nil)).Elem()
}
func (o NetworkModePtrOutput) ToNetworkModePtrOutput() NetworkModePtrOutput {
return o
}
func (o NetworkModePtrOutput) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return o
}
func (o NetworkModePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*NetworkMode] {
return pulumix.Output[*NetworkMode]{
OutputState: o.OutputState,
}
}
func (o NetworkModePtrOutput) Elem() NetworkModeOutput {
return o.ApplyT(func(v *NetworkMode) NetworkMode {
if v != nil {
return *v
}
var ret NetworkMode
return ret
}).(NetworkModeOutput)
}
func (o NetworkModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o NetworkModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *NetworkMode) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// NetworkModeInput is an input type that accepts values of the NetworkMode enum
// A concrete instance of `NetworkModeInput` can be one of the following:
//
// NetworkModeDefault
// NetworkModeHost
// NetworkModeNone
type NetworkModeInput interface {
pulumi.Input
ToNetworkModeOutput() NetworkModeOutput
ToNetworkModeOutputWithContext(context.Context) NetworkModeOutput
}
var networkModePtrType = reflect.TypeOf((**NetworkMode)(nil)).Elem()
type NetworkModePtrInput interface {
pulumi.Input
ToNetworkModePtrOutput() NetworkModePtrOutput
ToNetworkModePtrOutputWithContext(context.Context) NetworkModePtrOutput
}
type networkModePtr string
func NetworkModePtr(v string) NetworkModePtrInput {
return (*networkModePtr)(&v)
}
func (*networkModePtr) ElementType() reflect.Type {
return networkModePtrType
}
func (in *networkModePtr) ToNetworkModePtrOutput() NetworkModePtrOutput {
return pulumi.ToOutput(in).(NetworkModePtrOutput)
}
func (in *networkModePtr) ToNetworkModePtrOutputWithContext(ctx context.Context) NetworkModePtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(NetworkModePtrOutput)
}
func (in *networkModePtr) ToOutput(ctx context.Context) pulumix.Output[*NetworkMode] {
return pulumix.Output[*NetworkMode]{
OutputState: in.ToNetworkModePtrOutputWithContext(ctx).OutputState,
}
}
type Platform string
const (
Platform_Darwin_386 = Platform("darwin/386")
Platform_Darwin_amd64 = Platform("darwin/amd64")
Platform_Darwin_arm = Platform("darwin/arm")
Platform_Darwin_arm64 = Platform("darwin/arm64")
Platform_Dragonfly_amd64 = Platform("dragonfly/amd64")
Platform_Freebsd_386 = Platform("freebsd/386")
Platform_Freebsd_amd64 = Platform("freebsd/amd64")
Platform_Freebsd_arm = Platform("freebsd/arm")
Platform_Linux_386 = Platform("linux/386")
Platform_Linux_amd64 = Platform("linux/amd64")
Platform_Linux_arm = Platform("linux/arm")
Platform_Linux_arm64 = Platform("linux/arm64")
Platform_Linux_mips64 = Platform("linux/mips64")
Platform_Linux_mips64le = Platform("linux/mips64le")
Platform_Linux_ppc64le = Platform("linux/ppc64le")
Platform_Linux_riscv64 = Platform("linux/riscv64")
Platform_Linux_s390x = Platform("linux/s390x")
Platform_Netbsd_386 = Platform("netbsd/386")
Platform_Netbsd_amd64 = Platform("netbsd/amd64")
Platform_Netbsd_arm = Platform("netbsd/arm")
Platform_Openbsd_386 = Platform("openbsd/386")
Platform_Openbsd_amd64 = Platform("openbsd/amd64")
Platform_Openbsd_arm = Platform("openbsd/arm")
Platform_Plan9_386 = Platform("plan9/386")
Platform_Plan9_amd64 = Platform("plan9/amd64")
Platform_Solaris_amd64 = Platform("solaris/amd64")
Platform_Windows_386 = Platform("windows/386")
Platform_Windows_amd64 = Platform("windows/amd64")
)
func (Platform) ElementType() reflect.Type {
return reflect.TypeOf((*Platform)(nil)).Elem()
}
func (e Platform) ToPlatformOutput() PlatformOutput {
return pulumi.ToOutput(e).(PlatformOutput)
}
func (e Platform) ToPlatformOutputWithContext(ctx context.Context) PlatformOutput {
return pulumi.ToOutputWithContext(ctx, e).(PlatformOutput)
}
func (e Platform) ToPlatformPtrOutput() PlatformPtrOutput {
return e.ToPlatformPtrOutputWithContext(context.Background())
}
func (e Platform) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return Platform(e).ToPlatformOutputWithContext(ctx).ToPlatformPtrOutputWithContext(ctx)
}
func (e Platform) ToStringOutput() pulumi.StringOutput {
return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput)
}
func (e Platform) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput)
}
func (e Platform) ToStringPtrOutput() pulumi.StringPtrOutput {
return pulumi.String(e).ToStringPtrOutputWithContext(context.Background())
}
func (e Platform) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx)
}
type PlatformOutput struct{ *pulumi.OutputState }
func (PlatformOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Platform)(nil)).Elem()
}
func (o PlatformOutput) ToPlatformOutput() PlatformOutput {
return o
}
func (o PlatformOutput) ToPlatformOutputWithContext(ctx context.Context) PlatformOutput {
return o
}
func (o PlatformOutput) ToPlatformPtrOutput() PlatformPtrOutput {
return o.ToPlatformPtrOutputWithContext(context.Background())
}
func (o PlatformOutput) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, v Platform) *Platform {
return &v
}).(PlatformPtrOutput)
}
func (o PlatformOutput) ToOutput(ctx context.Context) pulumix.Output[Platform] {
return pulumix.Output[Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformOutput) ToStringOutput() pulumi.StringOutput {
return o.ToStringOutputWithContext(context.Background())
}
func (o PlatformOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e Platform) string {
return string(e)
}).(pulumi.StringOutput)
}
func (o PlatformOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o PlatformOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e Platform) *string {
v := string(e)
return &v
}).(pulumi.StringPtrOutput)
}
type PlatformPtrOutput struct{ *pulumi.OutputState }
func (PlatformPtrOutput) ElementType() reflect.Type {
return reflect.TypeOf((**Platform)(nil)).Elem()
}
func (o PlatformPtrOutput) ToPlatformPtrOutput() PlatformPtrOutput {
return o
}
func (o PlatformPtrOutput) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return o
}
func (o PlatformPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*Platform] {
return pulumix.Output[*Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformPtrOutput) Elem() PlatformOutput {
return o.ApplyT(func(v *Platform) Platform {
if v != nil {
return *v
}
var ret Platform
return ret
}).(PlatformOutput)
}
func (o PlatformPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput {
return o.ToStringPtrOutputWithContext(context.Background())
}
func (o PlatformPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput {
return o.ApplyTWithContext(ctx, func(_ context.Context, e *Platform) *string {
if e == nil {
return nil
}
v := string(*e)
return &v
}).(pulumi.StringPtrOutput)
}
// PlatformInput is an input type that accepts values of the Platform enum
// A concrete instance of `PlatformInput` can be one of the following:
//
// Platform_Darwin_386
// Platform_Darwin_amd64
// Platform_Darwin_arm
// Platform_Darwin_arm64
// Platform_Dragonfly_amd64
// Platform_Freebsd_386
// Platform_Freebsd_amd64
// Platform_Freebsd_arm
// Platform_Linux_386
// Platform_Linux_amd64
// Platform_Linux_arm
// Platform_Linux_arm64
// Platform_Linux_mips64
// Platform_Linux_mips64le
// Platform_Linux_ppc64le
// Platform_Linux_riscv64
// Platform_Linux_s390x
// Platform_Netbsd_386
// Platform_Netbsd_amd64
// Platform_Netbsd_arm
// Platform_Openbsd_386
// Platform_Openbsd_amd64
// Platform_Openbsd_arm
// Platform_Plan9_386
// Platform_Plan9_amd64
// Platform_Solaris_amd64
// Platform_Windows_386
// Platform_Windows_amd64
type PlatformInput interface {
pulumi.Input
ToPlatformOutput() PlatformOutput
ToPlatformOutputWithContext(context.Context) PlatformOutput
}
var platformPtrType = reflect.TypeOf((**Platform)(nil)).Elem()
type PlatformPtrInput interface {
pulumi.Input
ToPlatformPtrOutput() PlatformPtrOutput
ToPlatformPtrOutputWithContext(context.Context) PlatformPtrOutput
}
type platformPtr string
func PlatformPtr(v string) PlatformPtrInput {
return (*platformPtr)(&v)
}
func (*platformPtr) ElementType() reflect.Type {
return platformPtrType
}
func (in *platformPtr) ToPlatformPtrOutput() PlatformPtrOutput {
return pulumi.ToOutput(in).(PlatformPtrOutput)
}
func (in *platformPtr) ToPlatformPtrOutputWithContext(ctx context.Context) PlatformPtrOutput {
return pulumi.ToOutputWithContext(ctx, in).(PlatformPtrOutput)
}
func (in *platformPtr) ToOutput(ctx context.Context) pulumix.Output[*Platform] {
return pulumix.Output[*Platform]{
OutputState: in.ToPlatformPtrOutputWithContext(ctx).OutputState,
}
}
// PlatformArrayInput is an input type that accepts PlatformArray and PlatformArrayOutput values.
// You can construct a concrete instance of `PlatformArrayInput` via:
//
// PlatformArray{ PlatformArgs{...} }
type PlatformArrayInput interface {
pulumi.Input
ToPlatformArrayOutput() PlatformArrayOutput
ToPlatformArrayOutputWithContext(context.Context) PlatformArrayOutput
}
type PlatformArray []Platform
func (PlatformArray) ElementType() reflect.Type {
return reflect.TypeOf((*[]Platform)(nil)).Elem()
}
func (i PlatformArray) ToPlatformArrayOutput() PlatformArrayOutput {
return i.ToPlatformArrayOutputWithContext(context.Background())
}
func (i PlatformArray) ToPlatformArrayOutputWithContext(ctx context.Context) PlatformArrayOutput {
return pulumi.ToOutputWithContext(ctx, i).(PlatformArrayOutput)
}
func (i PlatformArray) ToOutput(ctx context.Context) pulumix.Output[[]Platform] {
return pulumix.Output[[]Platform]{
OutputState: i.ToPlatformArrayOutputWithContext(ctx).OutputState,
}
}
type PlatformArrayOutput struct{ *pulumi.OutputState }
func (PlatformArrayOutput) ElementType() reflect.Type {
return reflect.TypeOf((*[]Platform)(nil)).Elem()
}
func (o PlatformArrayOutput) ToPlatformArrayOutput() PlatformArrayOutput {
return o
}
func (o PlatformArrayOutput) ToPlatformArrayOutputWithContext(ctx context.Context) PlatformArrayOutput {
return o
}
func (o PlatformArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]Platform] {
return pulumix.Output[[]Platform]{
OutputState: o.OutputState,
}
}
func (o PlatformArrayOutput) Index(i pulumi.IntInput) PlatformOutput {
return pulumi.All(o, i).ApplyT(func(vs []interface{}) Platform {
return vs[0].([]Platform)[vs[1].(int)]
}).(PlatformOutput)
}
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*CacheModeInput)(nil)).Elem(), CacheMode("min"))
pulumi.RegisterInputType(reflect.TypeOf((*CacheModePtrInput)(nil)).Elem(), CacheMode("min"))
pulumi.RegisterInputType(reflect.TypeOf((*CompressionTypeInput)(nil)).Elem(), CompressionType("gzip"))
pulumi.RegisterInputType(reflect.TypeOf((*CompressionTypePtrInput)(nil)).Elem(), CompressionType("gzip"))
pulumi.RegisterInputType(reflect.TypeOf((*NetworkModeInput)(nil)).Elem(), NetworkMode("default"))
pulumi.RegisterInputType(reflect.TypeOf((*NetworkModePtrInput)(nil)).Elem(), NetworkMode("default"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformInput)(nil)).Elem(), Platform("darwin/386"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformPtrInput)(nil)).Elem(), Platform("darwin/386"))
pulumi.RegisterInputType(reflect.TypeOf((*PlatformArrayInput)(nil)).Elem(), PlatformArray{})
pulumi.RegisterOutputType(CacheModeOutput{})
pulumi.RegisterOutputType(CacheModePtrOutput{})
pulumi.RegisterOutputType(CompressionTypeOutput{})
pulumi.RegisterOutputType(CompressionTypePtrOutput{})
pulumi.RegisterOutputType(NetworkModeOutput{})
pulumi.RegisterOutputType(NetworkModePtrOutput{})
pulumi.RegisterOutputType(PlatformOutput{})
pulumi.RegisterOutputType(PlatformPtrOutput{})
pulumi.RegisterOutputType(PlatformArrayOutput{})
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,110 +0,0 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Random struct {
pulumi.CustomResourceState
Length pulumix.Output[int] `pulumi:"length"`
Result pulumix.Output[string] `pulumi:"result"`
}
// NewRandom registers a new resource with the given unique name, arguments, and options.
func NewRandom(ctx *pulumi.Context,
name string, args *RandomArgs, opts ...pulumi.ResourceOption) (*Random, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Length == nil {
return nil, errors.New("invalid value for required argument 'Length'")
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Random
err := ctx.RegisterResource("dockerbuild:index:Random", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetRandom gets an existing Random resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetRandom(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *RandomState, opts ...pulumi.ResourceOption) (*Random, error) {
var resource Random
err := ctx.ReadResource("dockerbuild:index:Random", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Random resources.
type randomState struct {
}
type RandomState struct {
}
func (RandomState) ElementType() reflect.Type {
return reflect.TypeOf((*randomState)(nil)).Elem()
}
type randomArgs struct {
Length int `pulumi:"length"`
}
// The set of arguments for constructing a Random resource.
type RandomArgs struct {
Length pulumix.Input[int]
}
func (RandomArgs) ElementType() reflect.Type {
return reflect.TypeOf((*randomArgs)(nil)).Elem()
}
type RandomOutput struct{ *pulumi.OutputState }
func (RandomOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Random)(nil)).Elem()
}
func (o RandomOutput) ToRandomOutput() RandomOutput {
return o
}
func (o RandomOutput) ToRandomOutputWithContext(ctx context.Context) RandomOutput {
return o
}
func (o RandomOutput) ToOutput(ctx context.Context) pulumix.Output[Random] {
return pulumix.Output[Random]{
OutputState: o.OutputState,
}
}
func (o RandomOutput) Length() pulumix.Output[int] {
value := pulumix.Apply[Random](o, func(v Random) pulumix.Output[int] { return v.Length })
return pulumix.Flatten[int, pulumix.Output[int]](value)
}
func (o RandomOutput) Result() pulumix.Output[string] {
value := pulumix.Apply[Random](o, func(v Random) pulumix.Output[string] { return v.Result })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
func init() {
pulumi.RegisterOutputType(RandomOutput{})
}

View File

@@ -0,0 +1,28 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package config
import (
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
var _ = internal.GetEnvOrDefault
// The build daemon's address.
func GetHost(ctx *pulumi.Context) string {
v, err := config.Try(ctx, "docker-build:host")
if err == nil {
return v
}
var value string
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
value = d.(string)
}
return value
}
func GetRegistries(ctx *pulumi.Context) string {
return config.Get(ctx, "docker-build:registries")
}

View File

@@ -0,0 +1,2 @@
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
package dockerbuild

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,288 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"errors"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
// A wrapper around `docker buildx imagetools create` to create an index
// (or manifest list) referencing one or more existing images.
//
// In most cases you do not need an `Index` to build a multi-platform
// image -- specifying multiple platforms on the `Image` will handle this
// for you automatically.
//
// However, as of April 2024, building multi-platform images _with
// caching_ will only export a cache for one platform at a time (see [this
// discussion](https://github.com/docker/buildx/discussions/1382) for more
// details).
//
// Therefore this resource can be helpful if you are building
// multi-platform images with caching: each platform can be built and
// cached separately, and an `Index` can join them all together. An
// example of this is shown below.
//
// This resource creates an OCI image index or a Docker manifest list
// depending on the media types of the source images.
//
// ## Example Usage
// ### Multi-platform registry caching
// ```go
// package main
//
// import (
//
// "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// amd64, err := dockerbuild.NewImage(ctx, "amd64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_amd64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
// },
// })
// if err != nil {
// return err
// }
// arm64, err := dockerbuild.NewImage(ctx, "arm64", &dockerbuild.ImageArgs{
// CacheFrom: dockerbuild.CacheFromArray{
// &dockerbuild.CacheFromArgs{
// Registry: &dockerbuild.CacheFromRegistryArgs{
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// CacheTo: dockerbuild.CacheToArray{
// &dockerbuild.CacheToArgs{
// Registry: &dockerbuild.CacheToRegistryArgs{
// Mode: dockerbuild.CacheModeMax,
// Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
// },
// },
// },
// Context: &dockerbuild.BuildContextArgs{
// Location: pulumi.String("app"),
// },
// Platforms: docker - build.PlatformArray{
// dockerbuild.Platform_Linux_arm64,
// },
// Tags: pulumi.StringArray{
// pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
// },
// })
// if err != nil {
// return err
// }
// index, err := dockerbuild.NewIndex(ctx, "index", &dockerbuild.IndexArgs{
// Sources: pulumi.StringArray{
// amd64.Ref,
// arm64.Ref,
// },
// Tag: pulumi.String("docker.io/pulumi/pulumi:3.107.0"),
// })
// if err != nil {
// return err
// }
// ctx.Export("ref", index.Ref)
// return nil
// })
// }
//
// ```
type Index struct {
pulumi.CustomResourceState
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumix.Output[*bool] `pulumi:"push"`
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
Ref pulumix.Output[string] `pulumi:"ref"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry pulumix.GPtrOutput[Registry, RegistryOutput] `pulumi:"registry"`
// Existing images to include in the index.
Sources pulumix.ArrayOutput[string] `pulumi:"sources"`
// The tag to apply to the index.
Tag pulumix.Output[string] `pulumi:"tag"`
}
// NewIndex registers a new resource with the given unique name, arguments, and options.
func NewIndex(ctx *pulumi.Context,
name string, args *IndexArgs, opts ...pulumi.ResourceOption) (*Index, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.Sources == nil {
return nil, errors.New("invalid value for required argument 'Sources'")
}
if args.Tag == nil {
return nil, errors.New("invalid value for required argument 'Tag'")
}
if args.Push == nil {
args.Push = pulumix.Ptr(true)
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Index
err := ctx.RegisterResource("docker-build:index:Index", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetIndex gets an existing Index resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetIndex(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IndexState, opts ...pulumi.ResourceOption) (*Index, error) {
var resource Index
err := ctx.ReadResource("docker-build:index:Index", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering Index resources.
type indexState struct {
}
type IndexState struct {
}
func (IndexState) ElementType() reflect.Type {
return reflect.TypeOf((*indexState)(nil)).Elem()
}
type indexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push *bool `pulumi:"push"`
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry *Registry `pulumi:"registry"`
// Existing images to include in the index.
Sources []string `pulumi:"sources"`
// The tag to apply to the index.
Tag string `pulumi:"tag"`
}
// The set of arguments for constructing a Index resource.
type IndexArgs struct {
// If true, push the index to the target registry.
//
// Defaults to `true`.
Push pulumix.Input[*bool]
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
Registry pulumix.Input[*RegistryArgs]
// Existing images to include in the index.
Sources pulumix.Input[[]string]
// The tag to apply to the index.
Tag pulumix.Input[string]
}
func (IndexArgs) ElementType() reflect.Type {
return reflect.TypeOf((*indexArgs)(nil)).Elem()
}
type IndexOutput struct{ *pulumi.OutputState }
func (IndexOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Index)(nil)).Elem()
}
func (o IndexOutput) ToIndexOutput() IndexOutput {
return o
}
func (o IndexOutput) ToIndexOutputWithContext(ctx context.Context) IndexOutput {
return o
}
func (o IndexOutput) ToOutput(ctx context.Context) pulumix.Output[Index] {
return pulumix.Output[Index]{
OutputState: o.OutputState,
}
}
// If true, push the index to the target registry.
//
// Defaults to `true`.
func (o IndexOutput) Push() pulumix.Output[*bool] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[*bool] { return v.Push })
return pulumix.Flatten[*bool, pulumix.Output[*bool]](value)
}
// The pushed tag with digest.
//
// Identical to the tag if the index was not pushed.
func (o IndexOutput) Ref() pulumix.Output[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[string] { return v.Ref })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
// Authentication for the registry where the tagged index will be pushed.
//
// Credentials can also be included with the provider's configuration.
func (o IndexOutput) Registry() pulumix.GPtrOutput[Registry, RegistryOutput] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.GPtrOutput[Registry, RegistryOutput] { return v.Registry })
unwrapped := pulumix.Flatten[*Registry, pulumix.GPtrOutput[Registry, RegistryOutput]](value)
return pulumix.GPtrOutput[Registry, RegistryOutput]{OutputState: unwrapped.OutputState}
}
// Existing images to include in the index.
func (o IndexOutput) Sources() pulumix.ArrayOutput[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.ArrayOutput[string] { return v.Sources })
unwrapped := pulumix.Flatten[[]string, pulumix.ArrayOutput[string]](value)
return pulumix.ArrayOutput[string]{OutputState: unwrapped.OutputState}
}
// The tag to apply to the index.
func (o IndexOutput) Tag() pulumix.Output[string] {
value := pulumix.Apply[Index](o, func(v Index) pulumix.Output[string] { return v.Tag })
return pulumix.Flatten[string, pulumix.Output[string]](value)
}
func init() {
pulumi.RegisterOutputType(IndexOutput{})
}

View File

@@ -0,0 +1,68 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"fmt"
"github.com/blang/semver"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type module struct {
version semver.Version
}
func (m *module) Version() semver.Version {
return m.version
}
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
switch typ {
case "docker-build:index:Image":
r = &Image{}
case "docker-build:index:Index":
r = &Index{}
default:
return nil, fmt.Errorf("unknown resource type: %s", typ)
}
err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
return
}
type pkg struct {
version semver.Version
}
func (p *pkg) Version() semver.Version {
return p.version
}
func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) {
if typ != "pulumi:providers:docker-build" {
return nil, fmt.Errorf("unknown provider type: %s", typ)
}
r := &Provider{}
err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
return r, err
}
func init() {
version, err := internal.PkgVersion()
if err != nil {
version = semver.Version{Major: 1}
}
pulumi.RegisterResourceModule(
"docker-build",
"index",
&module{version},
)
pulumi.RegisterResourcePackage(
"docker-build",
&pkg{version},
)
}

View File

@@ -0,0 +1,88 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
import (
"context"
"reflect"
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
)
type Provider struct {
pulumi.ProviderResourceState
// The build daemon's address.
Host pulumix.Output[*string] `pulumi:"host"`
}
// NewProvider registers a new resource with the given unique name, arguments, and options.
func NewProvider(ctx *pulumi.Context,
name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) {
if args == nil {
args = &ProviderArgs{}
}
if args.Host == nil {
if d := internal.GetEnvOrDefault("", nil, "DOCKER_HOST"); d != nil {
args.Host = pulumix.Ptr(d.(string))
}
}
opts = internal.PkgResourceDefaultOpts(opts)
var resource Provider
err := ctx.RegisterResource("pulumi:providers:docker-build", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
type providerArgs struct {
// The build daemon's address.
Host *string `pulumi:"host"`
Registries []Registry `pulumi:"registries"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
// The build daemon's address.
Host pulumix.Input[*string]
Registries pulumix.Input[[]*RegistryArgs]
}
func (ProviderArgs) ElementType() reflect.Type {
return reflect.TypeOf((*providerArgs)(nil)).Elem()
}
type ProviderOutput struct{ *pulumi.OutputState }
func (ProviderOutput) ElementType() reflect.Type {
return reflect.TypeOf((*Provider)(nil)).Elem()
}
func (o ProviderOutput) ToProviderOutput() ProviderOutput {
return o
}
func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput {
return o
}
func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[Provider] {
return pulumix.Output[Provider]{
OutputState: o.OutputState,
}
}
// The build daemon's address.
func (o ProviderOutput) Host() pulumix.Output[*string] {
value := pulumix.Apply[Provider](o, func(v Provider) pulumix.Output[*string] { return v.Host })
return pulumix.Flatten[*string, pulumix.Output[*string]](value)
}
func init() {
pulumi.RegisterOutputType(ProviderOutput{})
}

View File

@@ -0,0 +1,68 @@
// Code generated by pulumi-language-go DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package dockerbuild
type CacheMode string
const (
// Only layers that are exported into the resulting image are cached.
CacheModeCacheModeMin = CacheMode("min")
// All layers are cached, even those of intermediate steps.
CacheModeCacheModeMax = CacheMode("max")
)
type CompressionType string
const (
// Use `gzip` for compression.
CompressionTypeCompressionTypeGzip = CompressionType("gzip")
// Use `estargz` for compression.
CompressionTypeCompressionTypeEstargz = CompressionType("estargz")
// Use `zstd` for compression.
CompressionTypeCompressionTypeZstd = CompressionType("zstd")
)
type NetworkMode string
const (
// The default sandbox network mode.
NetworkModeNetworkModeDefault = NetworkMode("default")
// Host network mode.
NetworkModeNetworkModeHost = NetworkMode("host")
// Disable network access.
NetworkModeNetworkModeNone = NetworkMode("none")
)
type Platform string
const (
Platform_Platform_Darwin_386 = Platform("darwin/386")
Platform_Platform_Darwin_amd64 = Platform("darwin/amd64")
Platform_Platform_Darwin_arm = Platform("darwin/arm")
Platform_Platform_Darwin_arm64 = Platform("darwin/arm64")
Platform_Platform_Dragonfly_amd64 = Platform("dragonfly/amd64")
Platform_Platform_Freebsd_386 = Platform("freebsd/386")
Platform_Platform_Freebsd_amd64 = Platform("freebsd/amd64")
Platform_Platform_Freebsd_arm = Platform("freebsd/arm")
Platform_Platform_Linux_386 = Platform("linux/386")
Platform_Platform_Linux_amd64 = Platform("linux/amd64")
Platform_Platform_Linux_arm = Platform("linux/arm")
Platform_Platform_Linux_arm64 = Platform("linux/arm64")
Platform_Platform_Linux_mips64 = Platform("linux/mips64")
Platform_Platform_Linux_mips64le = Platform("linux/mips64le")
Platform_Platform_Linux_ppc64le = Platform("linux/ppc64le")
Platform_Platform_Linux_riscv64 = Platform("linux/riscv64")
Platform_Platform_Linux_s390x = Platform("linux/s390x")
Platform_Platform_Netbsd_386 = Platform("netbsd/386")
Platform_Platform_Netbsd_amd64 = Platform("netbsd/amd64")
Platform_Platform_Netbsd_arm = Platform("netbsd/arm")
Platform_Platform_Openbsd_386 = Platform("openbsd/386")
Platform_Platform_Openbsd_amd64 = Platform("openbsd/amd64")
Platform_Platform_Openbsd_arm = Platform("openbsd/arm")
Platform_Platform_Plan9_386 = Platform("plan9/386")
Platform_Platform_Plan9_amd64 = Platform("plan9/amd64")
Platform_Platform_Solaris_amd64 = Platform("solaris/amd64")
Platform_Platform_Windows_386 = Platform("windows/386")
Platform_Platform_Windows_amd64 = Platform("windows/amd64")
)

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
Description

View File

@@ -1,14 +0,0 @@
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
pluginManagement {
repositories {
maven { // The google mirror is less flaky than mavenCentral()
url("https://maven-central.storage-download.googleapis.com/maven2/")
}
gradlePluginPortal()
}
}
rootProject.name = "com.pulumi.dockerbuild"
include("lib")

View File

@@ -1,47 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.ProviderArgs;
import com.pulumi.dockerbuild.Utilities;
import javax.annotation.Nullable;
@ResourceType(type="pulumi:providers:dockerbuild")
public class Provider extends com.pulumi.resources.ProviderResource {
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public Provider(String name) {
this(name, ProviderArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public Provider(String name, @Nullable ProviderArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public Provider(String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
}

View File

@@ -1,28 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
public final class ProviderArgs extends com.pulumi.resources.ResourceArgs {
public static final ProviderArgs Empty = new ProviderArgs();
public static Builder builder() {
return new Builder();
}
public static final class Builder {
private ProviderArgs $;
public Builder() {
$ = new ProviderArgs();
}
public ProviderArgs build() {
return $;
}
}
}

View File

@@ -1,78 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.dockerbuild.RandomArgs;
import com.pulumi.dockerbuild.Utilities;
import java.lang.Integer;
import java.lang.String;
import javax.annotation.Nullable;
@ResourceType(type="dockerbuild:index:Random")
public class Random extends com.pulumi.resources.CustomResource {
@Export(name="length", refs={Integer.class}, tree="[0]")
private Output<Integer> length;
public Output<Integer> length() {
return this.length;
}
@Export(name="result", refs={String.class}, tree="[0]")
private Output<String> result;
public Output<String> result() {
return this.result;
}
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public Random(String name) {
this(name, RandomArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public Random(String name, RandomArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public Random(String name, RandomArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild:index:Random", name, args == null ? RandomArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
}
private Random(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("dockerbuild:index:Random", name, null, makeResourceOptions(options, id));
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
/**
* Get an existing Host resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource.
*/
public static Random get(String name, Output<String> id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new Random(name, id, options);
}
}

View File

@@ -1,65 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.util.Objects;
public final class RandomArgs extends com.pulumi.resources.ResourceArgs {
public static final RandomArgs Empty = new RandomArgs();
@Import(name="length", required=true)
private Output<Integer> length;
public Output<Integer> length() {
return this.length;
}
private RandomArgs() {}
private RandomArgs(RandomArgs $) {
this.length = $.length;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(RandomArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private RandomArgs $;
public Builder() {
$ = new RandomArgs();
}
public Builder(RandomArgs defaults) {
$ = new RandomArgs(Objects.requireNonNull(defaults));
}
public Builder length(Output<Integer> length) {
$.length = length;
return this;
}
public Builder length(Integer length) {
return length(Output.of(length));
}
public RandomArgs build() {
if ($.length == null) {
throw new MissingRequiredPropertyException("RandomArgs", "length");
}
return $;
}
}
}

View File

@@ -1,89 +0,0 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.dockerbuild;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import com.pulumi.core.internal.Environment;
import com.pulumi.deployment.InvokeOptions;
public class Utilities {
public static Optional<String> getEnv(String... names) {
for (var n : names) {
var value = Environment.getEnvironmentVariable(n);
if (value.isValue()) {
return Optional.of(value.value());
}
}
return Optional.empty();
}
public static Optional<Boolean> getEnvBoolean(String... names) {
for (var n : names) {
var value = Environment.getBooleanEnvironmentVariable(n);
if (value.isValue()) {
return Optional.of(value.value());
}
}
return Optional.empty();
}
public static Optional<Integer> getEnvInteger(String... names) {
for (var n : names) {
var value = Environment.getIntegerEnvironmentVariable(n);
if (value.isValue()) {
return Optional.of(value.value());
}
}
return Optional.empty();
}
public static Optional<Double> getEnvDouble(String... names) {
for (var n : names) {
var value = Environment.getDoubleEnvironmentVariable(n);
if (value.isValue()) {
return Optional.of(value.value());
}
}
return Optional.empty();
}
public static InvokeOptions withVersion(@Nullable InvokeOptions options) {
if (options != null && options.getVersion().isPresent()) {
return options;
}
return new InvokeOptions(
options == null ? null : options.getParent().orElse(null),
options == null ? null : options.getProvider().orElse(null),
getVersion()
);
}
private static final String version;
public static String getVersion() {
return version;
}
static {
var resourceName = "com/pulumi/dockerbuild/version.txt";
var versionFile = Utilities.class.getClassLoader().getResourceAsStream(resourceName);
if (versionFile == null) {
throw new IllegalStateException(
String.format("expected resource '%s' on Classpath, not found", resourceName)
);
}
version = new BufferedReader(new InputStreamReader(versionFile))
.lines()
.collect(Collectors.joining("\n"))
.trim();
}
}

View File

@@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,106 +0,0 @@
# Pulumi Native Provider Boilerplate
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
## Authoring a Pulumi Native Provider
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
### Prerequisites
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)

View File

@@ -1,39 +0,0 @@
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";
// Export members:
export { ProviderArgs } from "./provider";
export type Provider = import("./provider").Provider;
export const Provider: typeof import("./provider").Provider = null as any;
utilities.lazyLoad(exports, ["Provider"], () => require("./provider"));
export { RandomArgs } from "./random";
export type Random = import("./random").Random;
export const Random: typeof import("./random").Random = null as any;
utilities.lazyLoad(exports, ["Random"], () => require("./random"));
const _module = {
version: utilities.getVersion(),
construct: (name: string, type: string, urn: string): pulumi.Resource => {
switch (type) {
case "dockerbuild:index:Random":
return new Random(name, <any>undefined, { urn })
default:
throw new Error(`unknown resource type ${type}`);
}
},
};
pulumi.runtime.registerResourceModule("dockerbuild", "index", _module)
pulumi.runtime.registerResourcePackage("dockerbuild", {
version: utilities.getVersion(),
constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => {
if (type !== "pulumi:providers:dockerbuild") {
throw new Error(`unknown provider type ${type}`);
}
return new Provider(name, <any>undefined, { urn });
},
});

View File

@@ -1,24 +0,0 @@
{
"name": "@pulumi/dockerbuild",
"version": "${VERSION}",
"keywords": [
"keywords"
],
"homepage": "pulumi.com",
"repository": "https://github.com/pulumi/pulumi-dockerbuild",
"scripts": {
"build": "tsc"
},
"dependencies": {
"@pulumi/pulumi": "^3.0.0"
},
"devDependencies": {
"@types/node": "^14",
"typescript": "^4.3.5"
},
"pulumi": {
"resource": true,
"name": "dockerbuild",
"server": "github.com/pulumi/pulumi-dockerbuild"
}
}

View File

@@ -1,44 +0,0 @@
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";
export class Provider extends pulumi.ProviderResource {
/** @internal */
public static readonly __pulumiType = 'dockerbuild';
/**
* Returns true if the given object is an instance of Provider. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
public static isInstance(obj: any): obj is Provider {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType;
}
/**
* Create a Provider resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions) {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
{
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Provider.__pulumiType, name, resourceInputs, opts);
}
}
/**
* The set of arguments for constructing a Provider resource.
*/
export interface ProviderArgs {
}

View File

@@ -1,67 +0,0 @@
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";
export class Random extends pulumi.CustomResource {
/**
* Get an existing Random resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
public static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Random {
return new Random(name, undefined as any, { ...opts, id: id });
}
/** @internal */
public static readonly __pulumiType = 'dockerbuild:index:Random';
/**
* Returns true if the given object is an instance of Random. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
public static isInstance(obj: any): obj is Random {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Random.__pulumiType;
}
public readonly length!: pulumi.Output<number>;
public /*out*/ readonly result!: pulumi.Output<string>;
/**
* Create a Random resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: RandomArgs, opts?: pulumi.CustomResourceOptions) {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
if (!opts.id) {
if ((!args || args.length === undefined) && !opts.urn) {
throw new Error("Missing required property 'length'");
}
resourceInputs["length"] = args ? args.length : undefined;
resourceInputs["result"] = undefined /*out*/;
} else {
resourceInputs["length"] = undefined /*out*/;
resourceInputs["result"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Random.__pulumiType, name, resourceInputs, opts);
}
}
/**
* The set of arguments for constructing a Random resource.
*/
export interface RandomArgs {
length: pulumi.Input<number>;
}

View File

@@ -1,21 +0,0 @@
{
"compilerOptions": {
"outDir": "bin",
"target": "es2016",
"module": "commonjs",
"moduleResolution": "node",
"declaration": true,
"sourceMap": true,
"stripInternal": true,
"experimentalDecorators": true,
"noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true,
"strict": true
},
"files": [
"index.ts",
"provider.ts",
"random.ts",
"utilities.ts"
]
}

View File

@@ -1,95 +0,0 @@
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as runtime from "@pulumi/pulumi/runtime";
import * as pulumi from "@pulumi/pulumi";
export function getEnv(...vars: string[]): string | undefined {
for (const v of vars) {
const value = process.env[v];
if (value) {
return value;
}
}
return undefined;
}
export function getEnvBoolean(...vars: string[]): boolean | undefined {
const s = getEnv(...vars);
if (s !== undefined) {
// NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what
// Terraform uses internally when parsing boolean values.
if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) {
return true;
}
if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) {
return false;
}
}
return undefined;
}
export function getEnvNumber(...vars: string[]): number | undefined {
const s = getEnv(...vars);
if (s !== undefined) {
const f = parseFloat(s);
if (!isNaN(f)) {
return f;
}
}
return undefined;
}
export function getVersion(): string {
let version = require('./package.json').version;
// Node allows for the version to be prefixed by a "v", while semver doesn't.
// If there is a v, strip it off.
if (version.indexOf('v') === 0) {
version = version.slice(1);
}
return version;
}
/** @internal */
export function resourceOptsDefaults(): any {
return { version: getVersion(), pluginDownloadURL: "github.com/pulumi/pulumi-dockerbuild" };
}
/** @internal */
export function lazyLoad(exports: any, props: string[], loadModule: any) {
for (let property of props) {
Object.defineProperty(exports, property, {
enumerable: true,
get: function() {
return loadModule()[property];
},
});
}
}
export async function callAsync<T>(
tok: string,
props: pulumi.Inputs,
res?: pulumi.Resource,
opts?: {property?: string},
): Promise<T> {
const o: any = runtime.call<T>(tok, props, res);
const value = await o.promise(true /*withUnknowns*/);
const isKnown = await o.isKnown;
const isSecret = await o.isSecret;
const problem: string|undefined =
!isKnown ? "an unknown value"
: isSecret ? "a secret value"
: undefined;
// Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency.
if (problem) {
throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` +
"This is an error in the provider, please report this to the provider developer.");
}
// Extract a single property if requested.
if (opts && opts.property) {
return value[opts.property];
}
return value;
}

View File

@@ -1,106 +0,0 @@
# Pulumi Native Provider Boilerplate
This repository is a boilerplate showing how to create and locally test a native Pulumi provider.
## Authoring a Pulumi Native Provider
This boilerplate creates a working Pulumi-owned provider named `xyz`.
It implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.
### Prerequisites
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
* [Go 1.21](https://golang.org/dl/) or 1.latest
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
* [Yarn](https://yarnpkg.com/)
* [TypeScript](https://www.typescriptlang.org/)
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
* [.NET](https://dotnet.microsoft.com/download)
### Build & test the boilerplate XYZ provider
1. Create a new Github CodeSpaces environment using this repository.
1. Open a terminal in the CodeSpaces environment.
1. Run `make build install` to build and install the provider.
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
1. Run `make up` to run the example program in `examples/yaml`.
1. Run `make down` to tear down the example program.
### Creating a new provider repository
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
1. Click "Use this template".
1. Set the following options:
* Owner: pulumi
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
* Description: Pulumi provider for xyz
* Repository type: Public
1. Clone the generated repository.
From the templated repository:
1. Search-replace `xyz` with the name of your desired provider.
#### Build the provider and install the plugin
```bash
$ make build install
```
This will:
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
2. Create the provider binary and place it in the `./bin` folder (gitignored)
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
4. Install the provider on your machine.
#### Test against the example
```bash
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
#### A brief repository overview
You now have:
1. A `provider/` folder containing the building and implementation logic
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
2. `deployment-templates` - a set of files to help you around deployment and publication
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
5. A `Makefile` and this `README`.
#### Additional Details
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
### Build Examples
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
You can now repeat the steps for [build, install, and test](#test-against-the-example).
## Configuring CI and releases
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
## References
Other resources/examples for implementing providers:
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)

View File

@@ -1 +0,0 @@
Description

View File

@@ -1,33 +0,0 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
from . import _utilities
import typing
# Export this package's modules as members:
from .provider import *
from .random import *
_utilities.register(
resource_modules="""
[
{
"pkg": "dockerbuild",
"mod": "index",
"fqn": "pulumi_dockerbuild",
"classes": {
"dockerbuild:index:Random": "Random"
}
}
]
""",
resource_packages="""
[
{
"pkg": "dockerbuild",
"token": "pulumi:providers:dockerbuild",
"fqn": "pulumi_dockerbuild",
"class": "Provider"
}
]
"""
)

View File

@@ -1,291 +0,0 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import asyncio
import importlib.metadata
import importlib.util
import inspect
import json
import os
import sys
import typing
import pulumi
import pulumi.runtime
from pulumi.runtime.sync_await import _sync_await
from semver import VersionInfo as SemverVersion
from parver import Version as PEP440Version
def get_env(*args):
for v in args:
value = os.getenv(v)
if value is not None:
return value
return None
def get_env_bool(*args):
str = get_env(*args)
if str is not None:
# NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what
# Terraform uses internally when parsing boolean values.
if str in ["1", "t", "T", "true", "TRUE", "True"]:
return True
if str in ["0", "f", "F", "false", "FALSE", "False"]:
return False
return None
def get_env_int(*args):
str = get_env(*args)
if str is not None:
try:
return int(str)
except:
return None
return None
def get_env_float(*args):
str = get_env(*args)
if str is not None:
try:
return float(str)
except:
return None
return None
def _get_semver_version():
# __name__ is set to the fully-qualified name of the current module, In our case, it will be
# <some module>._utilities. <some module> is the module we want to query the version for.
root_package, *rest = __name__.split('.')
# pkg_resources uses setuptools to inspect the set of installed packages. We use it here to ask
# for the currently installed version of the root package (i.e. us) and get its version.
# Unfortunately, PEP440 and semver differ slightly in incompatible ways. The Pulumi engine expects
# to receive a valid semver string when receiving requests from the language host, so it's our
# responsibility as the library to convert our own PEP440 version into a valid semver string.
pep440_version_string = importlib.metadata.version(root_package)
pep440_version = PEP440Version.parse(pep440_version_string)
(major, minor, patch) = pep440_version.release
prerelease = None
if pep440_version.pre_tag == 'a':
prerelease = f"alpha.{pep440_version.pre}"
elif pep440_version.pre_tag == 'b':
prerelease = f"beta.{pep440_version.pre}"
elif pep440_version.pre_tag == 'rc':
prerelease = f"rc.{pep440_version.pre}"
elif pep440_version.dev is not None:
prerelease = f"dev.{pep440_version.dev}"
# The only significant difference between PEP440 and semver as it pertains to us is that PEP440 has explicit support
# for dev builds, while semver encodes them as "prerelease" versions. In order to bridge between the two, we convert
# our dev build version into a prerelease tag. This matches what all of our other packages do when constructing
# their own semver string.
return SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease)
# Determine the version once and cache the value, which measurably improves program performance.
_version = _get_semver_version()
_version_str = str(_version)
def get_version():
return _version_str
def get_resource_opts_defaults() -> pulumi.ResourceOptions:
return pulumi.ResourceOptions(
version=get_version(),
plugin_download_url=get_plugin_download_url(),
)
def get_invoke_opts_defaults() -> pulumi.InvokeOptions:
return pulumi.InvokeOptions(
version=get_version(),
plugin_download_url=get_plugin_download_url(),
)
def get_resource_args_opts(resource_args_type, resource_options_type, *args, **kwargs):
"""
Return the resource args and options given the *args and **kwargs of a resource's
__init__ method.
"""
resource_args, opts = None, None
# If the first item is the resource args type, save it and remove it from the args list.
if args and isinstance(args[0], resource_args_type):
resource_args, args = args[0], args[1:]
# Now look at the first item in the args list again.
# If the first item is the resource options class, save it.
if args and isinstance(args[0], resource_options_type):
opts = args[0]
# If resource_args is None, see if "args" is in kwargs, and, if so, if it's typed as the
# the resource args type.
if resource_args is None:
a = kwargs.get("args")
if isinstance(a, resource_args_type):
resource_args = a
# If opts is None, look it up in kwargs.
if opts is None:
opts = kwargs.get("opts")
return resource_args, opts
# Temporary: just use pulumi._utils.lazy_import once everyone upgrades.
def lazy_import(fullname):
import pulumi._utils as u
f = getattr(u, 'lazy_import', None)
if f is None:
f = _lazy_import_temp
return f(fullname)
# Copied from pulumi._utils.lazy_import, see comments there.
def _lazy_import_temp(fullname):
m = sys.modules.get(fullname, None)
if m is not None:
return m
spec = importlib.util.find_spec(fullname)
m = sys.modules.get(fullname, None)
if m is not None:
return m
loader = importlib.util.LazyLoader(spec.loader)
spec.loader = loader
module = importlib.util.module_from_spec(spec)
m = sys.modules.get(fullname, None)
if m is not None:
return m
sys.modules[fullname] = module
loader.exec_module(module)
return module
class Package(pulumi.runtime.ResourcePackage):
def __init__(self, pkg_info):
super().__init__()
self.pkg_info = pkg_info
def version(self):
return _version
def construct_provider(self, name: str, typ: str, urn: str) -> pulumi.ProviderResource:
if typ != self.pkg_info['token']:
raise Exception(f"unknown provider type {typ}")
Provider = getattr(lazy_import(self.pkg_info['fqn']), self.pkg_info['class'])
return Provider(name, pulumi.ResourceOptions(urn=urn))
class Module(pulumi.runtime.ResourceModule):
def __init__(self, mod_info):
super().__init__()
self.mod_info = mod_info
def version(self):
return _version
def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource:
class_name = self.mod_info['classes'].get(typ, None)
if class_name is None:
raise Exception(f"unknown resource type {typ}")
TheClass = getattr(lazy_import(self.mod_info['fqn']), class_name)
return TheClass(name, pulumi.ResourceOptions(urn=urn))
def register(resource_modules, resource_packages):
resource_modules = json.loads(resource_modules)
resource_packages = json.loads(resource_packages)
for pkg_info in resource_packages:
pulumi.runtime.register_resource_package(pkg_info['pkg'], Package(pkg_info))
for mod_info in resource_modules:
pulumi.runtime.register_resource_module(
mod_info['pkg'],
mod_info['mod'],
Module(mod_info))
_F = typing.TypeVar('_F', bound=typing.Callable[..., typing.Any])
def lift_output_func(func: typing.Any) -> typing.Callable[[_F], _F]:
"""Decorator internally used on {fn}_output lifted function versions
to implement them automatically from the un-lifted function."""
func_sig = inspect.signature(func)
def lifted_func(*args, opts=None, **kwargs):
bound_args = func_sig.bind(*args, **kwargs)
# Convert tuple to list, see pulumi/pulumi#8172
args_list = list(bound_args.args)
return pulumi.Output.from_input({
'args': args_list,
'kwargs': bound_args.kwargs
}).apply(lambda resolved_args: func(*resolved_args['args'],
opts=opts,
**resolved_args['kwargs']))
return (lambda _: lifted_func)
def call_plain(
tok: str,
props: pulumi.Inputs,
res: typing.Optional[pulumi.Resource] = None,
typ: typing.Optional[type] = None,
) -> typing.Any:
"""
Wraps pulumi.runtime.plain to force the output and return it plainly.
"""
output = pulumi.runtime.call(tok, props, res, typ)
# Ingoring deps silently. They are typically non-empty, r.f() calls include r as a dependency.
result, known, secret, _ = _sync_await(asyncio.ensure_future(_await_output(output)))
problem = None
if not known:
problem = ' an unknown value'
elif secret:
problem = ' a secret value'
if problem:
raise AssertionError(
f"Plain resource method '{tok}' incorrectly returned {problem}. "
+ "This is an error in the provider, please report this to the provider developer."
)
return result
async def _await_output(o: pulumi.Output[typing.Any]) -> typing.Tuple[object, bool, bool, set]:
return (
await o._future,
await o._is_known,
await o._is_secret,
await o._resources,
)
def get_plugin_download_url():
return "github.com/pulumi/pulumi-dockerbuild"

View File

@@ -1,71 +0,0 @@
# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***
import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
__all__ = ['ProviderArgs', 'Provider']
@pulumi.input_type
class ProviderArgs:
def __init__(__self__):
"""
The set of arguments for constructing a Provider resource.
"""
pass
class Provider(pulumi.ProviderResource):
@overload
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
__props__=None):
"""
Create a Dockerbuild resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
@overload
def __init__(__self__,
resource_name: str,
args: Optional[ProviderArgs] = None,
opts: Optional[pulumi.ResourceOptions] = None):
"""
Create a Dockerbuild resource with the given unique name, props, and options.
:param str resource_name: The name of the resource.
:param ProviderArgs args: The arguments to use to populate this resource's properties.
:param pulumi.ResourceOptions opts: Options for the resource.
"""
...
def __init__(__self__, resource_name: str, *args, **kwargs):
resource_args, opts = _utilities.get_resource_args_opts(ProviderArgs, pulumi.ResourceOptions, *args, **kwargs)
if resource_args is not None:
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
else:
__self__._internal_init(resource_name, *args, **kwargs)
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
raise TypeError('Expected resource options to be a ResourceOptions instance')
if opts.id is None:
if __props__ is not None:
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = ProviderArgs.__new__(ProviderArgs)
super(Provider, __self__).__init__(
'dockerbuild',
resource_name,
__props__,
opts)

Some files were not shown because too many files have changed in this diff Show More