Compare commits
51 Commits
v0.0.1-alp
...
mise
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5b79b4a1d | ||
|
|
08245eaffd | ||
|
|
4e730f689b | ||
|
|
5d7ff1eeca | ||
|
|
b1d2d5b5b3 | ||
|
|
3856050305 | ||
|
|
d9c3284f40 | ||
|
|
81a7aa4ec4 | ||
|
|
c9c5986598 | ||
|
|
75a73687db | ||
|
|
f2b29d43ec | ||
|
|
81cfc63d5a | ||
|
|
7dd7fc6cbf | ||
|
|
fe794ee018 | ||
|
|
119bdcf8db | ||
|
|
3a6f828c8c | ||
|
|
b61b8df9f9 | ||
|
|
fddf8fd81b | ||
|
|
213bf56765 | ||
|
|
5379812b59 | ||
|
|
0ba90b8cde | ||
|
|
3d127da671 | ||
|
|
0bd5fe74bc | ||
|
|
5cc3415b34 | ||
|
|
724836b5ef | ||
|
|
78057473ac | ||
|
|
cc8725ef27 | ||
|
|
bbdefef3c8 | ||
|
|
3ce3c83c3e | ||
|
|
343eadd0b6 | ||
|
|
1febe659ca | ||
|
|
233b5e0508 | ||
|
|
b8ecfb287a | ||
|
|
92ed9d50e9 | ||
|
|
dd64d7b65d | ||
|
|
4e8cf8f4ba | ||
|
|
44e082a0a0 | ||
|
|
effb497234 | ||
|
|
9a1706a203 | ||
|
|
c305ea88c4 | ||
|
|
f0aaf7095d | ||
|
|
c9e5913af1 | ||
|
|
1d6038bb07 | ||
|
|
ff71c251e1 | ||
|
|
9b789f3742 | ||
|
|
d3e22d5679 | ||
|
|
dc1ba98390 | ||
|
|
5cb40f8957 | ||
|
|
26c144c916 | ||
|
|
2545dd3089 | ||
|
|
c6ebf2c6ca |
34
.github/actions/setup-tools/action.yml
vendored
Normal file
34
.github/actions/setup-tools/action.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Setup tools
|
||||||
|
description: Installs all tools necessary for building and testing the project.
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Collect workflow stats
|
||||||
|
uses: catchpoint/workflow-telemetry-action@v2
|
||||||
|
with:
|
||||||
|
comment_on_pr: false
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ""
|
||||||
|
|
||||||
|
- name: Setup mise
|
||||||
|
uses: jdx/mise-action@v2
|
||||||
|
|
||||||
|
- name: Go cache paths
|
||||||
|
id: go-cache-paths
|
||||||
|
shell: sh
|
||||||
|
run: |
|
||||||
|
echo "go-build=$(go env GOCACHE)" >> $GITHUB_OUTPUT
|
||||||
|
echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Go build cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.go-cache-paths.outputs.go-build }}
|
||||||
|
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
|
||||||
|
|
||||||
|
- name: Go mod cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.go-cache-paths.outputs.go-mod }}
|
||||||
|
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
|
||||||
14
.github/dependabot.yml
vendored
14
.github/dependabot.yml
vendored
@@ -8,8 +8,18 @@ updates:
|
|||||||
pulumi:
|
pulumi:
|
||||||
patterns:
|
patterns:
|
||||||
- "github.com/pulumi/*"
|
- "github.com/pulumi/*"
|
||||||
exclude-patterns:
|
docker:
|
||||||
- "k8s.io/utils"
|
patterns:
|
||||||
|
- "github.com/distribution/*"
|
||||||
|
- "github.com/docker/*"
|
||||||
|
- "github.com/moby/*"
|
||||||
|
security:
|
||||||
|
applies-to: security-updates
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
other:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
labels:
|
labels:
|
||||||
- dependencies
|
- dependencies
|
||||||
- impact/no-changelog-required
|
- impact/no-changelog-required
|
||||||
|
|||||||
92
.github/workflows/build.yml
vendored
92
.github/workflows/build.yml
vendored
@@ -64,17 +64,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -119,7 +118,14 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar provider binaries
|
- name: Tar provider binaries
|
||||||
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
||||||
@@ -161,17 +167,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -217,7 +222,14 @@ jobs:
|
|||||||
- name: Build SDK
|
- name: Build SDK
|
||||||
run: make build_${{ matrix.language }}
|
run: make build_${{ matrix.language }}
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar SDK folder
|
- name: Tar SDK folder
|
||||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||||
@@ -256,17 +268,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -373,12 +384,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Unshallow clone for tags
|
- id: version
|
||||||
run: git fetch --prune --unshallow --tags
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Clear GitHub Actions Ubuntu runner disk space
|
- name: Clear GitHub Actions Ubuntu runner disk space
|
||||||
uses: jlumbroso/free-disk-space@v1.3.1
|
uses: jlumbroso/free-disk-space@v1.3.1
|
||||||
with:
|
with:
|
||||||
@@ -404,11 +419,10 @@ jobs:
|
|||||||
role-session-name: ${{ env.PROVIDER }}@githubActions
|
role-session-name: ${{ env.PROVIDER }}@githubActions
|
||||||
role-external-id: upload-pulumi-release
|
role-external-id: upload-pulumi-release
|
||||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
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
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v5
|
uses: goreleaser/goreleaser-action@v5
|
||||||
|
env:
|
||||||
|
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||||
with:
|
with:
|
||||||
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
|
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
|
||||||
version: latest
|
version: latest
|
||||||
@@ -428,17 +442,22 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
|
- id: version
|
||||||
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Checkout Scripts Repo
|
- name: Checkout Scripts Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
path: ci-scripts
|
||||||
repository: pulumi/scripts
|
repository: pulumi/scripts
|
||||||
- name: Unshallow clone for tags
|
- run: echo "ci-scripts" >> .git/info/exclude
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -483,7 +502,7 @@ jobs:
|
|||||||
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
||||||
${{github.workspace}}/sdk/nodejs
|
${{github.workspace}}/sdk/nodejs
|
||||||
- name: Install Twine
|
- name: Install Twine
|
||||||
run: python -m pip install pip twine
|
run: python -m pip install twine==5.0.0
|
||||||
- name: Publish SDKs
|
- name: Publish SDKs
|
||||||
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
||||||
env:
|
env:
|
||||||
@@ -506,17 +525,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -541,11 +559,10 @@ jobs:
|
|||||||
- name: Uncompress java SDK
|
- name: Uncompress java SDK
|
||||||
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
||||||
${{github.workspace}}/sdk/java
|
${{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
|
- name: Publish Java SDK
|
||||||
uses: gradle/gradle-build-action@v3
|
uses: gradle/gradle-build-action@v3
|
||||||
|
env:
|
||||||
|
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
|
||||||
with:
|
with:
|
||||||
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||||
build-root-directory: ./sdk/java
|
build-root-directory: ./sdk/java
|
||||||
@@ -562,6 +579,7 @@ jobs:
|
|||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: golangci-lint provider pkg
|
- name: golangci-lint provider pkg
|
||||||
uses: golangci/golangci-lint-action@v4
|
uses: golangci/golangci-lint-action@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
123
.github/workflows/prerelease.yml
vendored
123
.github/workflows/prerelease.yml
vendored
@@ -56,17 +56,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -111,7 +110,14 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar provider binaries
|
- name: Tar provider binaries
|
||||||
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
||||||
@@ -153,17 +159,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -209,7 +214,14 @@ jobs:
|
|||||||
- name: Build SDK
|
- name: Build SDK
|
||||||
run: make build_${{ matrix.language }}
|
run: make build_${{ matrix.language }}
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar SDK folder
|
- name: Tar SDK folder
|
||||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||||
@@ -247,17 +259,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -364,12 +375,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Unshallow clone for tags
|
- id: version
|
||||||
run: git fetch --prune --unshallow --tags
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Clear GitHub Actions Ubuntu runner disk space
|
- name: Clear GitHub Actions Ubuntu runner disk space
|
||||||
uses: jlumbroso/free-disk-space@v1.3.1
|
uses: jlumbroso/free-disk-space@v1.3.1
|
||||||
with:
|
with:
|
||||||
@@ -395,11 +410,10 @@ jobs:
|
|||||||
role-session-name: ${{ env.PROVIDER }}@githubActions
|
role-session-name: ${{ env.PROVIDER }}@githubActions
|
||||||
role-external-id: upload-pulumi-release
|
role-external-id: upload-pulumi-release
|
||||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
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
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v5
|
uses: goreleaser/goreleaser-action@v5
|
||||||
|
env:
|
||||||
|
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||||
with:
|
with:
|
||||||
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
|
args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s
|
||||||
version: latest
|
version: latest
|
||||||
@@ -419,17 +433,22 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
|
- id: version
|
||||||
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Checkout Scripts Repo
|
- name: Checkout Scripts Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
path: ci-scripts
|
||||||
repository: pulumi/scripts
|
repository: pulumi/scripts
|
||||||
- name: Unshallow clone for tags
|
- run: echo "ci-scripts" >> .git/info/exclude
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -474,7 +493,7 @@ jobs:
|
|||||||
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
||||||
${{github.workspace}}/sdk/nodejs
|
${{github.workspace}}/sdk/nodejs
|
||||||
- name: Install Twine
|
- name: Install Twine
|
||||||
run: python -m pip install pip twine
|
run: python -m pip install twine==5.0.0
|
||||||
- name: Publish SDKs
|
- name: Publish SDKs
|
||||||
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
||||||
env:
|
env:
|
||||||
@@ -497,17 +516,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -532,12 +550,43 @@ jobs:
|
|||||||
- name: Uncompress java SDK
|
- name: Uncompress java SDK
|
||||||
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
||||||
${{github.workspace}}/sdk/java
|
${{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
|
- name: Publish Java SDK
|
||||||
uses: gradle/gradle-build-action@v3
|
uses: gradle/gradle-build-action@v3
|
||||||
|
env:
|
||||||
|
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
|
||||||
with:
|
with:
|
||||||
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||||
build-root-directory: ./sdk/java
|
build-root-directory: ./sdk/java
|
||||||
gradle-version: 7.4.1
|
gradle-version: 7.4.1
|
||||||
|
publish_go_sdk:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: publish-go-sdk
|
||||||
|
needs: publish_sdk
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
- id: version
|
||||||
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
|
- name: Download go SDK
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: go-sdk.tar.gz
|
||||||
|
path: ${{ github.workspace}}/sdk/
|
||||||
|
- name: Uncompress go SDK
|
||||||
|
run: tar -zxf ${{github.workspace}}/sdk/go.tar.gz -C
|
||||||
|
${{github.workspace}}/sdk/go
|
||||||
|
- name: Publish Go SDK
|
||||||
|
uses: pulumi/publish-go-sdk-action@v1
|
||||||
|
with:
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
base-ref: ${{ github.sha }}
|
||||||
|
source: sdk/go/dockerbuild
|
||||||
|
path: sdk/go/dockerbuild
|
||||||
|
version: ${{ steps.version.outputs.version }}
|
||||||
|
additive: false
|
||||||
|
files: "**"
|
||||||
|
|||||||
125
.github/workflows/release.yml
vendored
125
.github/workflows/release.yml
vendored
@@ -56,17 +56,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -111,7 +110,14 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar provider binaries
|
- name: Tar provider binaries
|
||||||
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{
|
||||||
@@ -153,17 +159,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -209,7 +214,14 @@ jobs:
|
|||||||
- name: Build SDK
|
- name: Build SDK
|
||||||
run: make build_${{ matrix.language }}
|
run: make build_${{ matrix.language }}
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
run: ./ci-scripts/ci/check-worktree-is-clean
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
- run: git status --porcelain
|
- run: git status --porcelain
|
||||||
- name: Tar SDK folder
|
- name: Tar SDK folder
|
||||||
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
|
||||||
@@ -247,17 +259,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -364,12 +375,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Unshallow clone for tags
|
- id: version
|
||||||
run: git fetch --prune --unshallow --tags
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Clear GitHub Actions Ubuntu runner disk space
|
- name: Clear GitHub Actions Ubuntu runner disk space
|
||||||
uses: jlumbroso/free-disk-space@v1.3.1
|
uses: jlumbroso/free-disk-space@v1.3.1
|
||||||
with:
|
with:
|
||||||
@@ -395,11 +410,10 @@ jobs:
|
|||||||
role-session-name: ${{ env.PROVIDER }}@githubActions
|
role-session-name: ${{ env.PROVIDER }}@githubActions
|
||||||
role-external-id: upload-pulumi-release
|
role-external-id: upload-pulumi-release
|
||||||
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
|
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
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v5
|
uses: goreleaser/goreleaser-action@v5
|
||||||
|
env:
|
||||||
|
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
|
||||||
with:
|
with:
|
||||||
args: -p 3 release --clean --timeout 60m0s
|
args: -p 3 release --clean --timeout 60m0s
|
||||||
version: latest
|
version: latest
|
||||||
@@ -419,17 +433,22 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
|
- id: version
|
||||||
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
- name: Checkout Scripts Repo
|
- name: Checkout Scripts Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
path: ci-scripts
|
||||||
repository: pulumi/scripts
|
repository: pulumi/scripts
|
||||||
- name: Unshallow clone for tags
|
- run: echo "ci-scripts" >> .git/info/exclude
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -474,7 +493,7 @@ jobs:
|
|||||||
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C
|
||||||
${{github.workspace}}/sdk/nodejs
|
${{github.workspace}}/sdk/nodejs
|
||||||
- name: Install Twine
|
- name: Install Twine
|
||||||
run: python -m pip install pip twine
|
run: python -m pip install twine==5.0.0
|
||||||
- name: Publish SDKs
|
- name: Publish SDKs
|
||||||
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }}
|
||||||
env:
|
env:
|
||||||
@@ -497,17 +516,16 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Checkout Scripts Repo
|
- id: version
|
||||||
uses: actions/checkout@v4
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
path: ci-scripts
|
set-env: PROVIDER_VERSION
|
||||||
repository: pulumi/scripts
|
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -532,34 +550,49 @@ jobs:
|
|||||||
- name: Uncompress java SDK
|
- name: Uncompress java SDK
|
||||||
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C
|
||||||
${{github.workspace}}/sdk/java
|
${{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
|
- name: Publish Java SDK
|
||||||
uses: gradle/gradle-build-action@v3
|
uses: gradle/gradle-build-action@v3
|
||||||
|
env:
|
||||||
|
PACKAGE_VERSION: ${{ env.PROVIDER_VERSION }}
|
||||||
with:
|
with:
|
||||||
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||||
build-root-directory: ./sdk/java
|
build-root-directory: ./sdk/java
|
||||||
gradle-version: 7.4.1
|
gradle-version: 7.4.1
|
||||||
tag_sdk:
|
publish_go_sdk:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
name: publish-go-sdk
|
||||||
needs: publish_sdk
|
needs: publish_sdk
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Install pulumictl
|
- id: version
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
with:
|
with:
|
||||||
repo: pulumi/pulumictl
|
set-env: PROVIDER_VERSION
|
||||||
- name: Add SDK version tag
|
- name: Download go SDK
|
||||||
run: git tag sdk/v$(pulumictl get version --language generic) && git push origin
|
uses: actions/download-artifact@v4
|
||||||
sdk/v$(pulumictl get version --language generic)
|
with:
|
||||||
name: tag_sdk
|
name: go-sdk.tar.gz
|
||||||
|
path: ${{ github.workspace}}/sdk/
|
||||||
|
- name: Uncompress go SDK
|
||||||
|
run: tar -zxf ${{github.workspace}}/sdk/go.tar.gz -C
|
||||||
|
${{github.workspace}}/sdk/go
|
||||||
|
- name: Publish Go SDK
|
||||||
|
uses: pulumi/publish-go-sdk-action@v1
|
||||||
|
with:
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
base-ref: ${{ github.sha }}
|
||||||
|
source: sdk/go/dockerbuild
|
||||||
|
path: sdk/go/dockerbuild
|
||||||
|
version: ${{ steps.version.outputs.version }}
|
||||||
|
additive: false
|
||||||
|
files: "**"
|
||||||
dispatch_docs_build:
|
dispatch_docs_build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: tag_sdk
|
needs: publish_go_sdk
|
||||||
steps:
|
steps:
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
|
|||||||
584
.github/workflows/run-acceptance-tests.yml
vendored
584
.github/workflows/run-acceptance-tests.yml
vendored
@@ -4,13 +4,10 @@ name: run-acceptance-tests
|
|||||||
on:
|
on:
|
||||||
repository_dispatch:
|
repository_dispatch:
|
||||||
types:
|
types:
|
||||||
- run-acceptance-tests-command
|
- run-acceptance-tests-command
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- CHANGELOG.md
|
- CHANGELOG.md
|
||||||
workflow_dispatch: {}
|
workflow_dispatch: {}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
@@ -30,13 +27,6 @@ env:
|
|||||||
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
|
||||||
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
|
||||||
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
|
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
|
AWS_REGION: us-west-2
|
||||||
PULUMI_API: https://api.pulumi-staging.io
|
PULUMI_API: https://api.pulumi-staging.io
|
||||||
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
ARM_CLIENT_ID: 30e520fa-12b4-4e21-b473-9426c5ac2e1e
|
||||||
@@ -59,365 +49,251 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: comment-notification
|
name: comment-notification
|
||||||
steps:
|
steps:
|
||||||
- name: Create URL to the run output
|
- name: Create URL to the run output
|
||||||
id: vars
|
id: vars
|
||||||
run: echo
|
run: echo
|
||||||
run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
|
run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
|
||||||
>> "$GITHUB_OUTPUT"
|
>> "$GITHUB_OUTPUT"
|
||||||
- name: Update with Result
|
- name: Update with Result
|
||||||
uses: peter-evans/create-or-update-comment@v1
|
uses: peter-evans/create-or-update-comment@v1
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
|
||||||
issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
|
issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
|
||||||
body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}"
|
body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}"
|
||||||
if: github.event_name == 'repository_dispatch'
|
if: github.event_name == 'repository_dispatch'
|
||||||
prerequisites:
|
prerequisites:
|
||||||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
|
github.event.pull_request.head.repo.full_name == github.repository
|
||||||
runs-on: ubuntu-latest
|
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 }}
|
|
||||||
- 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 }}
|
|
||||||
- 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:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
id-token: write
|
id-token: write
|
||||||
|
actions: write # For telemetry.
|
||||||
|
pull-requests: write # For schema comment.
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo
|
- name: Checkout Repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
ref: ${{ env.PR_COMMIT_SHA }}
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
- name: Checkout Scripts Repo
|
- name: Setup tools
|
||||||
uses: actions/checkout@v4
|
uses: ./.github/actions/setup-tools
|
||||||
with:
|
- id: version
|
||||||
path: ci-scripts
|
name: Set Provider Version
|
||||||
repository: pulumi/scripts
|
uses: pulumi/provider-version-action@v1
|
||||||
- name: Unshallow clone for tags
|
with:
|
||||||
run: git fetch --prune --unshallow --tags
|
set-env: PROVIDER_VERSION
|
||||||
- name: Install Go
|
- name: Build codegen binaries
|
||||||
uses: actions/setup-go@v5
|
run: make codegen
|
||||||
with:
|
- name: Build Schema
|
||||||
go-version: ${{ env.GOVERSION }}
|
run: make generate_schema
|
||||||
- name: Install pulumictl
|
- if: github.event_name == 'pull_request'
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
name: Check Schema is Valid
|
||||||
with:
|
run: >-
|
||||||
repo: pulumi/pulumictl
|
echo 'SCHEMA_CHANGES<<EOF' >> $GITHUB_ENV
|
||||||
- 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
|
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
|
||||||
- if: failure() && github.event_name == 'push'
|
|
||||||
name: Notify Slack
|
echo 'EOF' >> $GITHUB_ENV
|
||||||
uses: 8398a7/action-slack@v3
|
env:
|
||||||
with:
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
author_name: Failure in SDK tests
|
- if: github.event_name == 'pull_request'
|
||||||
fields: repo,commit,author,action
|
name: Comment on PR with Details of Schema Check
|
||||||
status: ${{ job.status }}
|
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
|
||||||
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
|
- 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 }}
|
||||||
|
|
||||||
|
- name: Generate & Build SDK
|
||||||
|
run: mise run sdk
|
||||||
|
- name: Check worktree clean
|
||||||
|
uses: pulumi/git-status-check-action@v1
|
||||||
|
with:
|
||||||
|
allowed-changes: |-
|
||||||
|
sdk/**/pulumi-plugin.json
|
||||||
|
sdk/dotnet/Pulumi.*.csproj
|
||||||
|
sdk/go/**/pulumiUtilities.go
|
||||||
|
sdk/nodejs/package.json
|
||||||
|
sdk/python/pyproject.toml
|
||||||
|
- run: git status --porcelain
|
||||||
|
- name: Tar SDK folder
|
||||||
|
run: tar -zcf sdk.tar.gz -C sdk .
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: sdk.tar.gz
|
||||||
|
path: ${{ github.workspace}}/sdk.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: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
actions: write # For telemetry.
|
||||||
|
needs:
|
||||||
|
- prerequisites
|
||||||
|
strategy:
|
||||||
|
fail-fast: true
|
||||||
|
matrix:
|
||||||
|
shard: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
|
- name: Setup tools
|
||||||
|
uses: ./.github/actions/setup-tools
|
||||||
|
- id: version
|
||||||
|
name: Set Provider Version
|
||||||
|
uses: pulumi/provider-version-action@v1
|
||||||
|
with:
|
||||||
|
set-env: PROVIDER_VERSION
|
||||||
|
- 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: sdk.tar.gz
|
||||||
|
path: ${{ github.workspace}}
|
||||||
|
- name: UnTar SDK folder
|
||||||
|
run: tar -zxf ${{ github.workspace}}/sdk.tar.gz -C ${{github.workspace}}/sdk
|
||||||
|
- 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 dependencies
|
||||||
|
run: mise run install
|
||||||
|
- 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:
|
||||||
|
skip_install: true
|
||||||
|
- name: Shard tests
|
||||||
|
run: mise run "test:examples:shard" -- --total ${{ strategy.job-total }} --index ${{ strategy.job-index }} > go-test
|
||||||
|
- name: Run tests
|
||||||
|
run: mise run "test:examples" $(cat go-test) 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' ||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
github.event.pull_request.head.repo.full_name == github.repository
|
github.event.pull_request.head.repo.full_name == github.repository
|
||||||
sentinel:
|
sentinel:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: sentinel
|
name: sentinel
|
||||||
steps:
|
steps:
|
||||||
- name: Is workflow a success
|
- name: Mark workflow as successful
|
||||||
run: echo yes
|
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76
|
||||||
|
with:
|
||||||
|
authToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
context: Sentinel
|
||||||
|
state: success
|
||||||
|
description: Sentinel checks passed
|
||||||
|
sha: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||||
if: github.event_name == 'repository_dispatch' ||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
github.event.pull_request.head.repo.full_name == github.repository
|
github.event.pull_request.head.repo.full_name == github.repository
|
||||||
needs:
|
needs:
|
||||||
- test
|
- test
|
||||||
- lint
|
- lint
|
||||||
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 }}
|
|
||||||
- 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' ||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
github.event.pull_request.head.repo.full_name == github.repository
|
github.event.pull_request.head.repo.full_name == github.repository
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
actions: write # For telemetry.
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
|
- name: Setup tools
|
||||||
|
uses: ./.github/actions/setup-tools
|
||||||
|
- run: make lint
|
||||||
|
|||||||
7
.github/workflows/weekly-pulumi-update.yml
vendored
7
.github/workflows/weekly-pulumi-update.yml
vendored
@@ -54,12 +54,11 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- name: Unshallow clone for tags
|
|
||||||
run: git fetch --prune --unshallow --tags
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOVERSION }}
|
go-version: ${{ env.GOVERSION }}
|
||||||
|
cache-dependency-path: "**/*.sum"
|
||||||
- name: Install pulumictl
|
- name: Install pulumictl
|
||||||
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
with:
|
with:
|
||||||
@@ -90,6 +89,8 @@ jobs:
|
|||||||
|
|
||||||
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
|
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
|
||||||
|
|
||||||
|
gh repo view pulumi/pulumi --json latestRelease --jq .latestRelease.tagName | sed 's/^v//' > .pulumi.version
|
||||||
|
|
||||||
git update-index -q --refresh
|
git update-index -q --refresh
|
||||||
|
|
||||||
if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi
|
if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi
|
||||||
@@ -129,7 +130,7 @@ jobs:
|
|||||||
uses: repo-sync/pull-request@v2.6.2
|
uses: repo-sync/pull-request@v2.6.2
|
||||||
with:
|
with:
|
||||||
source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }}
|
source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }}
|
||||||
destination_branch: master
|
destination_branch: main
|
||||||
pr_title: Automated Pulumi/Pulumi upgrade
|
pr_title: Automated Pulumi/Pulumi upgrade
|
||||||
github_token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
github_token: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
env:
|
env:
|
||||||
|
|||||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -2,6 +2,7 @@
|
|||||||
**/bin/
|
**/bin/
|
||||||
**/obj/
|
**/obj/
|
||||||
**/node_modules/
|
**/node_modules/
|
||||||
|
**/venv
|
||||||
**/.vs
|
**/.vs
|
||||||
**/.idea
|
**/.idea
|
||||||
**/.ionide
|
**/.ionide
|
||||||
@@ -18,4 +19,7 @@ sdk/dotnet/version.txt
|
|||||||
sdk/java/.gradle
|
sdk/java/.gradle
|
||||||
sdk/java/build/
|
sdk/java/build/
|
||||||
sdk/java/build.gradle
|
sdk/java/build.gradle
|
||||||
sdk/python/venv
|
|
||||||
|
# Allow local mise overrides.
|
||||||
|
.mise.*.local.toml
|
||||||
|
.mise.local.toml
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ builds:
|
|||||||
ldflags:
|
ldflags:
|
||||||
- -X
|
- -X
|
||||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
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
|
binary: pulumi-resource-docker-build
|
||||||
archives:
|
archives:
|
||||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ builds:
|
|||||||
ldflags:
|
ldflags:
|
||||||
- -X
|
- -X
|
||||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
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
|
binary: pulumi-resource-docker-build
|
||||||
archives:
|
archives:
|
||||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||||
|
|||||||
133
.mise.toml
Normal file
133
.mise.toml
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
[tasks.provider]
|
||||||
|
run = ["make provider"]
|
||||||
|
sources = ["provider/**/*.go", "go.mod"]
|
||||||
|
outputs = ["bin/pulumi-resource-docker-build"]
|
||||||
|
|
||||||
|
# Generate
|
||||||
|
|
||||||
|
[tasks."generate:nodejs"]
|
||||||
|
depends = ["provider"]
|
||||||
|
run = "make generate_nodejs"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["sdk/nodejs/**/*.ts"]
|
||||||
|
|
||||||
|
[tasks."generate:python"]
|
||||||
|
run = "make generate_python"
|
||||||
|
depends = ["provider"]
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["sdk/python/**/*.py"]
|
||||||
|
|
||||||
|
[tasks."generate:dotnet"]
|
||||||
|
depends = ["provider"]
|
||||||
|
run = "make generate_dotnet"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["sdk/dotnet/**/*.cs"]
|
||||||
|
|
||||||
|
[tasks."generate:go"]
|
||||||
|
depends = ["provider"]
|
||||||
|
run = "make generate_go"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["sdk/go/**/*.go"]
|
||||||
|
|
||||||
|
[tasks."generate:java"]
|
||||||
|
depends = ["provider"]
|
||||||
|
run = "make generate_java"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["sdk/java/**/*.java"]
|
||||||
|
|
||||||
|
# Build
|
||||||
|
|
||||||
|
[tasks."build:nodejs"]
|
||||||
|
depends = ["generate:nodejs"]
|
||||||
|
run = "make build_nodejs"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["*"]
|
||||||
|
|
||||||
|
[tasks."build:python"]
|
||||||
|
depends = ["generate:python"]
|
||||||
|
run = "make build_python"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["*"]
|
||||||
|
|
||||||
|
[tasks."build:dotnet"]
|
||||||
|
depends = ["generate:dotnet"]
|
||||||
|
run = "make build_dotnet"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["*"]
|
||||||
|
|
||||||
|
[tasks."build:go"]
|
||||||
|
depends = ["generate:go"]
|
||||||
|
run = "make build_go"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["*"]
|
||||||
|
|
||||||
|
[tasks."build:java"]
|
||||||
|
depends = ["generate:java"]
|
||||||
|
run = "make build_java"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["*"]
|
||||||
|
|
||||||
|
# TODO: Might be able to link these directly?
|
||||||
|
[tasks."install:dotnet"]
|
||||||
|
run = "make install_dotnet_sdk"
|
||||||
|
|
||||||
|
[tasks."install:nodejs"]
|
||||||
|
run = "make install_nodejs_sdk"
|
||||||
|
|
||||||
|
[tasks.sdk]
|
||||||
|
depends = ["generate:*", "build:*"]
|
||||||
|
|
||||||
|
[tasks.install]
|
||||||
|
depends = ["install:*"]
|
||||||
|
|
||||||
|
[tasks.test]
|
||||||
|
sources = ["**/*.go"]
|
||||||
|
outputs = ["*"]
|
||||||
|
run = "make test_provider"
|
||||||
|
|
||||||
|
[tasks."test:examples"]
|
||||||
|
run = "go test -v -json -cover -timeout 2h -tags=all -parallel 4"
|
||||||
|
|
||||||
|
[tasks."test:examples:shard"]
|
||||||
|
run = "go run github.com/blampe/shard@latest --root ./examples"
|
||||||
|
|
||||||
|
[tasks.schema]
|
||||||
|
run = "pulumi package get-schema bin/pulumi-resource-docker-build | jq 'del(.version)' > provider/cmd/pulumi-resource-docker-build/schema.json"
|
||||||
|
sources = ["bin/pulumi-resource-docker-build"]
|
||||||
|
outputs = ["provider/cmd/pulumi-resource-docker-build/schema.json"]
|
||||||
|
|
||||||
|
[tasks.docs]
|
||||||
|
run = "go generate docs/generate.go"
|
||||||
|
depends = ["schema"]
|
||||||
|
sources = ["docs/yaml/*.yaml"]
|
||||||
|
outputs= ["provider/internal/embed/*.md"]
|
||||||
|
|
||||||
|
# TODO: tasks.examples
|
||||||
|
|
||||||
|
[tools]
|
||||||
|
# Development tooling.
|
||||||
|
go = "latest" # Will read version from go.mod.
|
||||||
|
lefthook = "1.7.12"
|
||||||
|
golangci-lint = "1.58.1"
|
||||||
|
|
||||||
|
# Build and test tools.
|
||||||
|
pulumi = "3.128.0"
|
||||||
|
node = "22"
|
||||||
|
dotnet = "6"
|
||||||
|
python = "3.11.9"
|
||||||
|
java = "temurin-11"
|
||||||
|
gradle = "7.6"
|
||||||
|
"go:github.com/pulumi/schema-tools" = "v0.6.0"
|
||||||
|
"go:github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt" = "v2.5.0"
|
||||||
|
"go:github.com/pulumi/pulumictl/cmd/pulumictl" = "a1b89aaf4299fe5bc78e140fc60eba79088b3dc5" # blampe/replace branch doesn't work?
|
||||||
|
yarn = "1.22.19"
|
||||||
|
gcloud = "455.0.0"
|
||||||
|
|
||||||
|
[env]
|
||||||
|
# TODO(https://github.com/jdx/mise/issues/1898): create = true
|
||||||
|
_.python.venv = { path = "venv", create = false }
|
||||||
|
CGO_ENABLED = "0"
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
experimental = true # Enable Go backend.
|
||||||
|
python_compile = false # Don't build Python from source.
|
||||||
1
.pulumi.version
Normal file
1
.pulumi.version
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.128.0
|
||||||
52
CHANGELOG.md
Normal file
52
CHANGELOG.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
## Unreleased
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Refreshing an `Index` resource will no longer fail if its stored credentials
|
||||||
|
have expired. (https://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)
|
||||||
|
|
||||||
|
## 0.0.5 (2024-08-08)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed Go SDK publishing.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Upgraded docker from 27.0.3 to 27.1.0.
|
||||||
|
|
||||||
|
## 0.0.4 (2024-07-15)
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
## 0.0.3 (2024-05-31)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed the default value for `ACTIONS_CACHE_URL` when using GitHub action caching. (https://github.com/pulumi/pulumi-docker-build/pull/80)
|
||||||
|
- Fixed Java SDK publishing. (https://github.com/pulumi/pulumi-docker-build/pull/89)
|
||||||
|
- Fixed a panic that could occur when `context` was omitted. (https://github.com/pulumi/pulumi-docker-build/pull/83)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The provider will now wait for new builders to fully boot.
|
||||||
|
|
||||||
|
## 0.0.2 (2024-04-25)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Upgraded pulumi-go-provider to fix a panic during cancellation.
|
||||||
|
|
||||||
|
## 0.0.1 (2024-04-23)
|
||||||
|
|
||||||
|
Initial release.
|
||||||
80
CODE-OF-CONDUCT.md
Normal file
80
CODE-OF-CONDUCT.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||||
|
education, socio-economic status, nationality, personal appearance, race,
|
||||||
|
religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
* Using welcoming and inclusive language
|
||||||
|
* Being respectful of differing viewpoints and experiences
|
||||||
|
* Gracefully accepting constructive criticism
|
||||||
|
* Focusing on what is best for the community
|
||||||
|
* Showing empathy towards other community members
|
||||||
|
* Contribute in a positive and constructive way
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Our Community Guidelines
|
||||||
|
* Be clear and stay on topic. Communicating with strangers on the Internet can make it hard to convey or read tone, and sarcasm is frequently misunderstood. Try to use clear language, and think about how the other person will receive it.
|
||||||
|
* Don’t cross-post the same thing in multiple GitHub Discussion topics or multiple Slack channels. This can make it difficult for people answering your questions and creates "scrollback spam".
|
||||||
|
* Public discussion is preferred to private. Avoid using Slack DMs for questions, and instead share them in public Slack channels or GitHub Discussion threads. This allows a larger audience to both share their knowledge as well as learn from your question or issue. If you're having a problem, chances are someone else is having a similar problem. Learning in public is a community contribution.
|
||||||
|
* Minimize notifications to other community members. Avoid tagging other community members in Slack messages or Discussion threads, unless you are replying to something specific. Community members are here to help each other, but are not "on call" for support, and we expect everyone to try to minimize "notification fatigue". If your issue is time-sensitive or critical, use methods like support@pulumi.com instead.
|
||||||
|
|
||||||
|
## Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, GitHub Discussions posts,
|
||||||
|
and other contributions that are not aligned to this Code of Conduct, or to ban
|
||||||
|
temporarily or permanently any contributor for other behaviors that they deem
|
||||||
|
inappropriate, threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces (including the Community Slack
|
||||||
|
and GitHub Discussions forums) and in public spaces when an individual is representing the
|
||||||
|
project or its community. Examples of representing a project or community include
|
||||||
|
using an official project e-mail address, posting via an official social media account,
|
||||||
|
or acting as an appointed representative at an online or offline event. Representation
|
||||||
|
of a project may be further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project team at code-of-conduct@pulumi.com. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
94
Makefile
94
Makefile
@@ -7,7 +7,6 @@ NODE_MODULE_NAME := @pulumi/docker-build
|
|||||||
NUGET_PKG_NAME := Pulumi.DockerBuild
|
NUGET_PKG_NAME := Pulumi.DockerBuild
|
||||||
|
|
||||||
PROVIDER := pulumi-resource-${PACK}
|
PROVIDER := pulumi-resource-${PACK}
|
||||||
VERSION ?= $(shell pulumictl get version)
|
|
||||||
PROVIDER_PATH := provider
|
PROVIDER_PATH := provider
|
||||||
VERSION_PATH := ${PROVIDER_PATH}.Version
|
VERSION_PATH := ${PROVIDER_PATH}.Version
|
||||||
SCHEMA_PATH := ${PROVIDER_PATH}/cmd/pulumi-resource-${PACK}/schema.json
|
SCHEMA_PATH := ${PROVIDER_PATH}/cmd/pulumi-resource-${PACK}/schema.json
|
||||||
@@ -18,20 +17,30 @@ WORKING_DIR := $(shell pwd)
|
|||||||
EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml
|
EXAMPLES_DIR := ${WORKING_DIR}/examples/yaml
|
||||||
TESTPARALLELISM := 4
|
TESTPARALLELISM := 4
|
||||||
|
|
||||||
PULUMI := bin/pulumi
|
# Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable
|
||||||
GOGLANGCILINT := bin/golangci-lint
|
# Local & branch builds will just used this fixed default version unless specified
|
||||||
|
PROVIDER_VERSION ?= 0.1.0-alpha.0+dev
|
||||||
|
# Use this normalised version everywhere rather than the raw input to ensure consistency.
|
||||||
|
VERSION_GENERIC = $(shell pulumictl convert-version --language generic --version "$(PROVIDER_VERSION)")
|
||||||
|
|
||||||
|
export PULUMI_IGNORE_AMBIENT_PLUGINS = true
|
||||||
|
export PULUMI_DISABLE_AUTOMATIC_PLUGIN_ACQUISITION = true
|
||||||
|
|
||||||
.PHONY: ensure
|
.PHONY: ensure
|
||||||
ensure:: tidy lint test_provider examples
|
ensure:: tidy lint test_provider examples
|
||||||
|
|
||||||
.PHONY: tidy
|
.PHONY: tidy
|
||||||
tidy: go.sum
|
tidy:
|
||||||
|
go mod tidy
|
||||||
|
|
||||||
.PHONY: provider
|
.PHONY: provider
|
||||||
provider: bin/${PROVIDER} bin/pulumi-gen-${PACK} # Required by CI
|
provider: bin/${PROVIDER} bin/pulumi-gen-${PACK} # Required by CI
|
||||||
|
|
||||||
|
.PHONY: local_generate
|
||||||
|
local_generate: sdk # Required by CI
|
||||||
|
|
||||||
provider_debug::
|
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))
|
(cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -gcflags="all=-N -l" -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
||||||
|
|
||||||
test_provider:: # Required by CI
|
test_provider:: # Required by CI
|
||||||
go test -short -v -coverprofile="coverage.txt" -coverpkg=./provider/... -timeout 2h -parallel ${TESTPARALLELISM} ./provider/...
|
go test -short -v -coverprofile="coverage.txt" -coverpkg=./provider/... -timeout 2h -parallel ${TESTPARALLELISM} ./provider/...
|
||||||
@@ -51,33 +60,26 @@ examples/yaml:
|
|||||||
rm -rf ${WORKING_DIR}/examples/yaml/app
|
rm -rf ${WORKING_DIR}/examples/yaml/app
|
||||||
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app
|
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/yaml/app
|
||||||
|
|
||||||
examples/go: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/go: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,go)
|
$(call example,go)
|
||||||
@git checkout examples/go/go.mod
|
@git checkout examples/go/go.mod
|
||||||
|
|
||||||
examples/nodejs: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/nodejs: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,nodejs)
|
$(call example,nodejs)
|
||||||
@git checkout examples/nodejs/package.json
|
@git checkout examples/nodejs/package.json
|
||||||
|
|
||||||
examples/python: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/python: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,python)
|
$(call example,python)
|
||||||
@git checkout examples/python/requirements.txt
|
@git checkout examples/python/requirements.txt
|
||||||
|
|
||||||
examples/dotnet: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/dotnet: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,dotnet)
|
$(call example,dotnet)
|
||||||
@git checkout examples/dotnet/provider-docker-build.csproj
|
@git checkout examples/dotnet/provider-docker-build.csproj
|
||||||
|
|
||||||
examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/java: bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,java)
|
$(call example,java)
|
||||||
@git checkout examples/java/pom.xml
|
@git checkout examples/java/pom.xml
|
||||||
|
|
||||||
${PULUMI}: go.sum
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/pkg/v3/cmd/pulumi
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3
|
|
||||||
|
|
||||||
${GOGLANGCILINT}: go.sum
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint
|
|
||||||
|
|
||||||
define pulumi_login
|
define pulumi_login
|
||||||
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
|
export PULUMI_CONFIG_PASSPHRASE=asdfqwerty1234; \
|
||||||
pulumi login --local;
|
pulumi login --local;
|
||||||
@@ -85,7 +87,7 @@ endef
|
|||||||
|
|
||||||
define example
|
define example
|
||||||
rm -rf ${WORKING_DIR}/examples/$(1)
|
rm -rf ${WORKING_DIR}/examples/$(1)
|
||||||
$(PULUMI) convert \
|
pulumi convert \
|
||||||
--cwd ${WORKING_DIR}/examples/yaml \
|
--cwd ${WORKING_DIR}/examples/yaml \
|
||||||
--logtostderr \
|
--logtostderr \
|
||||||
--generate-only \
|
--generate-only \
|
||||||
@@ -93,6 +95,7 @@ define example
|
|||||||
--language $(1) \
|
--language $(1) \
|
||||||
--out ${WORKING_DIR}/examples/$(1)
|
--out ${WORKING_DIR}/examples/$(1)
|
||||||
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/$(1)/app
|
cp -r ${WORKING_DIR}/examples/app ${WORKING_DIR}/examples/$(1)/app
|
||||||
|
cp ${WORKING_DIR}/examples/yaml/.dockerignore ${WORKING_DIR}/examples/$(1)/.dockerignore
|
||||||
endef
|
endef
|
||||||
|
|
||||||
up::
|
up::
|
||||||
@@ -116,14 +119,14 @@ devcontainer::
|
|||||||
cp -f .devcontainer/devcontainer.json .devcontainer.json
|
cp -f .devcontainer/devcontainer.json .devcontainer.json
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:: provider dotnet_sdk go_sdk nodejs_sdk python_sdk
|
build:: provider sdk/dotnet sdk/go sdk/nodejs sdk/python sdk/java ${SCHEMA_PATH}
|
||||||
|
|
||||||
# Required for the codegen action that runs in pulumi/pulumi
|
# Required for the codegen action that runs in pulumi/pulumi
|
||||||
only_build:: build
|
only_build:: build
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: ${GOGLANGCILINT}
|
lint:
|
||||||
${GOGLANGCILINT} run --fix -c .golangci.yml
|
golangci-lint run --fix -c .golangci.yml
|
||||||
|
|
||||||
install:: install_nodejs_sdk install_dotnet_sdk
|
install:: install_nodejs_sdk install_dotnet_sdk
|
||||||
cp $(WORKING_DIR)/bin/${PROVIDER} ${GOPATH}/bin
|
cp $(WORKING_DIR)/bin/${PROVIDER} ${GOPATH}/bin
|
||||||
@@ -146,7 +149,7 @@ install_nodejs_sdk:: # Required by CI
|
|||||||
codegen: # Required by CI
|
codegen: # Required by CI
|
||||||
|
|
||||||
.PHONY: generate_schema
|
.PHONY: generate_schema
|
||||||
generate_schema: # Required by CI
|
generate_schema: ${SCHEMA_PATH} # Required by CI
|
||||||
|
|
||||||
.PHONY: build_go install_go_sdk
|
.PHONY: build_go install_go_sdk
|
||||||
generate_go: sdk/go # Required by CI
|
generate_go: sdk/go # Required by CI
|
||||||
@@ -169,80 +172,75 @@ generate_dotnet: sdk/dotnet # Required by CI
|
|||||||
build_dotnet: # Required by CI
|
build_dotnet: # Required by CI
|
||||||
|
|
||||||
${SCHEMA_PATH}: bin/${PROVIDER}
|
${SCHEMA_PATH}: bin/${PROVIDER}
|
||||||
pulumi package get-schema bin/${PROVIDER} > $(SCHEMA_PATH)
|
pulumi package get-schema bin/${PROVIDER} | jq 'del(.version)' > $(SCHEMA_PATH)
|
||||||
|
|
||||||
bin/${PROVIDER}: $(shell find ./provider -name '*.go') go.mod
|
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))
|
(cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
||||||
|
|
||||||
bin/pulumi-gen-${PACK}: # Required by CI
|
bin/pulumi-gen-${PACK}: # Required by CI
|
||||||
touch bin/pulumi-gen-${PACK}
|
touch bin/pulumi-gen-${PACK}
|
||||||
|
|
||||||
go.mod: $(shell find . -name '*.go')
|
go.mod: $(shell find provider -name '*.go')
|
||||||
go.sum: go.mod
|
go.sum: go.mod
|
||||||
go mod tidy
|
|
||||||
|
|
||||||
sdk: $(shell mkdir -p sdk)
|
sdk: $(shell mkdir -p sdk)
|
||||||
sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
|
sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
|
||||||
|
|
||||||
sdk/python: PYPI_VERSION := $(shell pulumictl get version --language python)
|
# Folders can't be used for up-to-date checks as they will be marked as up-to-date even if the step fails - leading to a broken state.
|
||||||
|
.PHONY: sdk/*
|
||||||
|
|
||||||
sdk/python: TMPDIR := $(shell mktemp -d)
|
sdk/python: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/python: $(PULUMI) bin/${PROVIDER}
|
sdk/python: bin/${PROVIDER}
|
||||||
rm -rf sdk/python
|
rm -rf sdk/python
|
||||||
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language python -o ${TMPDIR}
|
pulumi package gen-sdk bin/$(PROVIDER) --language python -o ${TMPDIR}
|
||||||
cp README.md ${TMPDIR}/python/
|
cp README.md ${TMPDIR}/python/
|
||||||
cd ${TMPDIR}/python/ && \
|
cd ${TMPDIR}/python/ && \
|
||||||
rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \
|
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 && \
|
python3 -m venv venv && \
|
||||||
./venv/bin/python -m pip install build && \
|
./venv/bin/python -m pip install build && \
|
||||||
cd ./bin && \
|
cd ./bin && \
|
||||||
../venv/bin/python -m build .
|
../venv/bin/python -m build .
|
||||||
mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/.
|
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: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/nodejs: $(PULUMI) bin/${PROVIDER}
|
sdk/nodejs: bin/${PROVIDER}
|
||||||
rm -rf sdk/nodejs
|
rm -rf sdk/nodejs
|
||||||
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language nodejs -o ${TMPDIR}
|
pulumi package gen-sdk bin/$(PROVIDER) --language nodejs -o ${TMPDIR}
|
||||||
cp README.md LICENSE ${TMPDIR}/nodejs
|
cp README.md LICENSE ${TMPDIR}/nodejs
|
||||||
cd ${TMPDIR}/nodejs/ && \
|
cd ${TMPDIR}/nodejs/ && \
|
||||||
yarn install && \
|
yarn install && \
|
||||||
yarn run tsc && \
|
yarn run tsc && \
|
||||||
cp README.md LICENSE package.json yarn.lock bin/ && \
|
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/.
|
mv -f ${TMPDIR}/nodejs ${WORKING_DIR}/sdk/.
|
||||||
|
|
||||||
sdk/go: TMPDIR := $(shell mktemp -d)
|
sdk/go: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)"
|
sdk/go: PATH := "$(WORKING_DIR)/bin:$(PATH)"
|
||||||
sdk/go: $(PULUMI) bin/${PROVIDER}
|
sdk/go: bin/${PROVIDER}
|
||||||
rm -rf sdk/go
|
rm -rf sdk/go
|
||||||
PATH=$(PATH) $(PULUMI) package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
|
PATH=$(PATH) pulumi package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
|
||||||
cp go.mod ${TMPDIR}/go/dockerbuild/go.mod
|
cp go.mod ${TMPDIR}/go/dockerbuild/go.mod
|
||||||
cd ${TMPDIR}/go/dockerbuild && \
|
cd ${TMPDIR}/go/dockerbuild && \
|
||||||
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/dockerbuild && \
|
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/dockerbuild && \
|
||||||
go mod tidy
|
go mod tidy
|
||||||
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
|
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
|
||||||
|
|
||||||
sdk/dotnet: DOTNET_VERSION := $(shell pulumictl get version --language dotnet)
|
|
||||||
sdk/dotnet: TMPDIR := $(shell mktemp -d)
|
sdk/dotnet: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/dotnet: $(PULUMI) bin/${PROVIDER}
|
sdk/dotnet: bin/${PROVIDER}
|
||||||
rm -rf sdk/dotnet
|
rm -rf sdk/dotnet
|
||||||
$(PULUMI) package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR}
|
pulumi package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR}
|
||||||
cd ${TMPDIR}/dotnet/ && \
|
cd ${TMPDIR}/dotnet/ && \
|
||||||
echo "$(DOTNET_VERSION)" > version.txt && \
|
echo "$(VERSION_GENERIC)" > version.txt && \
|
||||||
dotnet build /p:Version=${DOTNET_VERSION}
|
dotnet build
|
||||||
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
|
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
|
||||||
|
|
||||||
sdk/java: PACKAGE_VERSION := $(shell pulumictl get version --language generic)
|
sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)")
|
||||||
sdk/java: TMPDIR := $(shell mktemp -d)
|
sdk/java: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/java: $(PULUMI) bin/${PROVIDER}
|
sdk/java: bin/${PROVIDER}
|
||||||
rm -rf sdk/java
|
rm -rf sdk/java
|
||||||
$(PULUMI) package gen-sdk --language java bin/${PROVIDER} -o ${TMPDIR}
|
pulumi package gen-sdk --language java bin/${PROVIDER} -o ${TMPDIR}
|
||||||
cd ${TMPDIR}/java/ && gradle --console=plain build
|
cd ${TMPDIR}/java/ && gradle --console=plain build
|
||||||
mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/.
|
mv -f ${TMPDIR}/java ${WORKING_DIR}/sdk/.
|
||||||
|
|
||||||
docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -name '*.md')
|
docs: $(shell find docs/yaml -type f) $(shell find ./provider/internal/embed -name '*.md') ${SCHEMA_PATH}
|
||||||
go generate docs/generate.go
|
go generate docs/generate.go
|
||||||
@touch docs
|
@touch docs
|
||||||
|
|||||||
117
README.md
117
README.md
@@ -1,106 +1,23 @@
|
|||||||
# Pulumi Native Provider Boilerplate
|
[](https://slack.pulumi.com)
|
||||||
|
[](https://www.npmjs.com/package/@pulumi/docker-build)
|
||||||
|
[](https://pypi.org/project/pulumi-docker-build)
|
||||||
|
[](https://badge.fury.io/nu/pulumi.dockerbuild)
|
||||||
|
[](https://pkg.go.dev/github.com/pulumi/pulumi-docker-build/sdk/go)
|
||||||
|
[](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`.
|
Not to be confused with the earlier
|
||||||
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.
|
[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.
|
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/).
|
||||||
|
|
||||||
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)
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if len(os.Args) < 3 {
|
if len(os.Args) < 3 {
|
||||||
fmt.Fprintf(os.Stdout, "Usage: %s <yaml source dir path> <markdown destination path>\n", os.Args[0])
|
_, _ = fmt.Fprintf(os.Stdout, "Usage: %s <yaml source dir path> <markdown destination path>\n", os.Args[0])
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
yamlPath := os.Args[1]
|
yamlPath := os.Args[1]
|
||||||
@@ -204,7 +204,7 @@ func processYaml(path, mdDir string) error {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintf(os.Stdout, "Writing %s\n", filepath.Join(mdDir, md))
|
_, _ = fmt.Fprintf(os.Stdout, "Writing %s\n", filepath.Join(mdDir, md))
|
||||||
f, err := os.OpenFile(filepath.Clean(filepath.Join(mdDir, md)), os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o600)
|
f, err := os.OpenFile(filepath.Clean(filepath.Join(mdDir, md)), os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ resources:
|
|||||||
ecr-repository:
|
ecr-repository:
|
||||||
type: aws:ecr:Repository
|
type: aws:ecr:Repository
|
||||||
my-image:
|
my-image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
tags:
|
tags:
|
||||||
- ${ecr-repository.repositoryUrl}:latest
|
- ${ecr-repository.repositoryUrl}:latest
|
||||||
@@ -36,20 +36,21 @@ runtime: yaml
|
|||||||
description: Multi-platform image
|
description: Multi-platform image
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
platforms:
|
platforms:
|
||||||
- plan9/amd64
|
- plan9/amd64
|
||||||
- plan9/386
|
- plan9/386
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: registry
|
name: registry
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Registry export
|
description: Registry export
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
tags:
|
tags:
|
||||||
- "docker.io/pulumi/pulumi:3.107.0"
|
- "docker.io/pulumi/pulumi:3.107.0"
|
||||||
@@ -68,7 +69,7 @@ runtime: yaml
|
|||||||
description: Caching
|
description: Caching
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
@@ -79,65 +80,71 @@ resources:
|
|||||||
cacheFrom:
|
cacheFrom:
|
||||||
- local:
|
- local:
|
||||||
src: tmp/cache
|
src: tmp/cache
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: dbc
|
name: dbc
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Docker Build Cloud
|
description: Docker Build Cloud
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
exec: true
|
exec: true
|
||||||
builder:
|
builder:
|
||||||
name: cloud-builder-name
|
name: cloud-builder-name
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: build-args
|
name: build-args
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Build arguments
|
description: Build arguments
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
buildArgs:
|
buildArgs:
|
||||||
SET_ME_TO_TRUE: "true"
|
SET_ME_TO_TRUE: "true"
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: build-target
|
name: build-target
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Build target
|
description: Build target
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
target: "build-me"
|
target: "build-me"
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: named-contexts
|
name: named-contexts
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Named contexts
|
description: Named contexts
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: app
|
location: app
|
||||||
named:
|
named:
|
||||||
"golang:latest":
|
"golang:latest":
|
||||||
location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: remote-context
|
name: remote-context
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Remote context
|
description: Remote context
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||||
|
push: false
|
||||||
|
|
||||||
---
|
---
|
||||||
name: inline
|
name: inline
|
||||||
@@ -145,7 +152,7 @@ runtime: yaml
|
|||||||
description: Inline Dockerfile
|
description: Inline Dockerfile
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
dockerfile:
|
dockerfile:
|
||||||
inline: |
|
inline: |
|
||||||
@@ -153,28 +160,31 @@ resources:
|
|||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: remote-context
|
name: remote-context
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Remote context
|
description: Remote context
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: app/Dockerfile
|
location: app/Dockerfile
|
||||||
context:
|
context:
|
||||||
location: "https://github.com/docker-library/hello-world.git"
|
location: "https://github.com/docker-library/hello-world.git"
|
||||||
|
push: false
|
||||||
---
|
---
|
||||||
name: docker-load
|
name: docker-load
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
description: Local export
|
description: Local export
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: dockerbuild:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
exports:
|
exports:
|
||||||
- docker:
|
- docker:
|
||||||
tar: true
|
tar: true
|
||||||
|
push: false
|
||||||
|
|||||||
2
examples/dotnet/.dockerignore
Normal file
2
examples/dotnet/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -9,6 +9,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
var dockerHubPassword = config.Require("dockerHubPassword");
|
var dockerHubPassword = config.Require("dockerHubPassword");
|
||||||
var multiPlatform = new DockerBuild.Image("multiPlatform", new()
|
var multiPlatform = new DockerBuild.Image("multiPlatform", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.multiPlatform",
|
Location = "./app/Dockerfile.multiPlatform",
|
||||||
@@ -26,6 +27,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var registryPush = new DockerBuild.Image("registryPush", new()
|
var registryPush = new DockerBuild.Image("registryPush", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
@@ -58,6 +60,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var cached = new DockerBuild.Image("cached", new()
|
var cached = new DockerBuild.Image("cached", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
@@ -87,6 +90,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var buildArgs = new DockerBuild.Image("buildArgs", new()
|
var buildArgs = new DockerBuild.Image("buildArgs", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.buildArgs",
|
Location = "./app/Dockerfile.buildArgs",
|
||||||
@@ -103,6 +107,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var extraHosts = new DockerBuild.Image("extraHosts", new()
|
var extraHosts = new DockerBuild.Image("extraHosts", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.extraHosts",
|
Location = "./app/Dockerfile.extraHosts",
|
||||||
@@ -119,6 +124,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var sshMount = new DockerBuild.Image("sshMount", new()
|
var sshMount = new DockerBuild.Image("sshMount", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.sshMount",
|
Location = "./app/Dockerfile.sshMount",
|
||||||
@@ -138,6 +144,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var secrets = new DockerBuild.Image("secrets", new()
|
var secrets = new DockerBuild.Image("secrets", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.secrets",
|
Location = "./app/Dockerfile.secrets",
|
||||||
@@ -154,6 +161,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var labels = new DockerBuild.Image("labels", new()
|
var labels = new DockerBuild.Image("labels", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
@@ -166,6 +174,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var target = new DockerBuild.Image("target", new()
|
var target = new DockerBuild.Image("target", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.target",
|
Location = "./app/Dockerfile.target",
|
||||||
@@ -179,6 +188,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var namedContexts = new DockerBuild.Image("namedContexts", new()
|
var namedContexts = new DockerBuild.Image("namedContexts", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Location = "./app/Dockerfile.namedContexts",
|
Location = "./app/Dockerfile.namedContexts",
|
||||||
@@ -198,6 +208,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var remoteContext = new DockerBuild.Image("remoteContext", new()
|
var remoteContext = new DockerBuild.Image("remoteContext", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
@@ -206,6 +217,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
|
|
||||||
var remoteContextWithInline = new DockerBuild.Image("remoteContextWithInline", new()
|
var remoteContextWithInline = new DockerBuild.Image("remoteContextWithInline", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Inline = @"FROM busybox
|
Inline = @"FROM busybox
|
||||||
@@ -220,20 +232,18 @@ COPY hello.c ./
|
|||||||
|
|
||||||
var inline = new DockerBuild.Image("inline", new()
|
var inline = new DockerBuild.Image("inline", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
{
|
{
|
||||||
Inline = @"FROM alpine
|
Inline = @"FROM alpine
|
||||||
RUN echo ""This uses an inline Dockerfile! 👍""
|
RUN echo ""This uses an inline Dockerfile! 👍""
|
||||||
",
|
",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
|
||||||
{
|
|
||||||
Location = "./app",
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var dockerLoad = new DockerBuild.Image("dockerLoad", new()
|
var dockerLoad = new DockerBuild.Image("dockerLoad", new()
|
||||||
{
|
{
|
||||||
|
Push = false,
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
|
|||||||
2
examples/go/.dockerignore
Normal file
2
examples/go/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -1,7 +1,95 @@
|
|||||||
module provider-docker-build
|
module provider-docker-build
|
||||||
|
|
||||||
go 1.20
|
go 1.21.7
|
||||||
|
|
||||||
|
toolchain go1.21.9
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.111.1
|
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
dario.cat/mergo v1.0.0 // indirect
|
||||||
|
github.com/BurntSushi/toml v1.2.1 // indirect
|
||||||
|
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||||
|
github.com/ProtonMail/go-crypto v1.0.0 // 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/blang/semver v3.5.1+incompatible // indirect
|
||||||
|
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
||||||
|
github.com/charmbracelet/bubbletea v0.25.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 // indirect
|
||||||
|
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
||||||
|
github.com/djherbis/times v1.5.0 // indirect
|
||||||
|
github.com/emirpasic/gods v1.18.1 // 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.12.0 // indirect
|
||||||
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
|
github.com/golang/glog v1.2.0 // indirect
|
||||||
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 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.19.1 // 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.20 // indirect
|
||||||
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
||||||
|
github.com/mattn/go-runewidth v0.0.15 // 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
|
||||||
|
github.com/pgavlin/fx v0.1.6 // indirect
|
||||||
|
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||||
|
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.9.1 // indirect
|
||||||
|
github.com/rivo/uniseg v0.4.4 // 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.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
||||||
|
github.com/skeema/knownhosts v1.2.2 // indirect
|
||||||
|
github.com/spf13/cast v1.5.0 // indirect
|
||||||
|
github.com/spf13/cobra v1.8.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.5 // 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.1 // indirect
|
||||||
|
go.uber.org/atomic v1.10.0 // indirect
|
||||||
|
golang.org/x/crypto v0.24.0 // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
|
||||||
|
golang.org/x/mod v0.18.0 // indirect
|
||||||
|
golang.org/x/net v0.26.0 // indirect
|
||||||
|
golang.org/x/sync v0.7.0 // indirect
|
||||||
|
golang.org/x/sys v0.21.0 // indirect
|
||||||
|
golang.org/x/term v0.21.0 // indirect
|
||||||
|
golang.org/x/text v0.16.0 // indirect
|
||||||
|
golang.org/x/tools v0.22.0 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||||
|
google.golang.org/grpc v1.63.2 // indirect
|
||||||
|
google.golang.org/protobuf v1.33.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
|
||||||
)
|
)
|
||||||
|
|||||||
319
examples/go/go.sum
Normal file
319
examples/go/go.sum
Normal file
@@ -0,0 +1,319 @@
|
|||||||
|
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
|
||||||
|
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||||
|
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
|
||||||
|
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||||
|
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 v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
|
||||||
|
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||||
|
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=
|
||||||
|
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||||
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
|
||||||
|
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||||
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||||
|
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
|
||||||
|
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
|
||||||
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
|
||||||
|
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.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
|
||||||
|
github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
|
||||||
|
github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E=
|
||||||
|
github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c=
|
||||||
|
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 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
|
||||||
|
github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.3/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/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/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
|
||||||
|
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||||
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
|
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||||
|
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||||
|
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.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
|
||||||
|
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
|
||||||
|
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-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.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys=
|
||||||
|
github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY=
|
||||||
|
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.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68=
|
||||||
|
github.com/golang/glog v1.2.0/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.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||||
|
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||||
|
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.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=
|
||||||
|
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||||
|
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.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
|
||||||
|
github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
|
||||||
|
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=
|
||||||
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
|
||||||
|
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
|
||||||
|
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
|
||||||
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
|
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.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.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/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=
|
||||||
|
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
|
||||||
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
|
||||||
|
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.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo=
|
||||||
|
github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0=
|
||||||
|
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=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
|
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||||
|
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/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=
|
||||||
|
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
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.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs=
|
||||||
|
github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c=
|
||||||
|
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7 h1:elp7Ar01zvIJtRQv+megjeGSfpxxzPYyKBGfDDtWFBA=
|
||||||
|
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7/go.mod h1:48lEA1mq2tRC4SfASAJmLYG1hRWM5sP5VPFeoZEM54U=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0 h1:5VPFfygxt6rva0bEYVQZXxsGAo2/D1wsb9erGOtXxzk=
|
||||||
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY=
|
||||||
|
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
|
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.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.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.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A=
|
||||||
|
github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
|
||||||
|
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.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
|
||||||
|
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
|
||||||
|
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 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
|
||||||
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
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.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
|
github.com/stretchr/testify v1.9.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=
|
||||||
|
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
||||||
|
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.1 h1:t9fyA35fwjjUMcmL5hLER+e/rEPqrbCK1/OSE4SI9KA=
|
||||||
|
github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
|
||||||
|
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||||
|
go.uber.org/atomic v1.10.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.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
|
||||||
|
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
|
||||||
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM=
|
||||||
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
|
||||||
|
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.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
|
||||||
|
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||||
|
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.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
|
||||||
|
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
|
||||||
|
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.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||||
|
golang.org/x/sync v0.7.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=
|
||||||
|
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
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-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.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
||||||
|
golang.org/x/sys v0.21.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.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
|
||||||
|
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
|
||||||
|
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.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
||||||
|
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||||
|
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.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
|
||||||
|
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
|
||||||
|
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-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
|
||||||
|
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
|
||||||
|
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
|
||||||
|
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||||
|
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
|
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=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
|
||||||
|
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw=
|
||||||
|
lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s=
|
||||||
|
pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
|
||||||
|
pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
|
||||||
@@ -11,6 +11,7 @@ func main() {
|
|||||||
cfg := config.New(ctx, "")
|
cfg := config.New(ctx, "")
|
||||||
dockerHubPassword := cfg.Require("dockerHubPassword")
|
dockerHubPassword := cfg.Require("dockerHubPassword")
|
||||||
multiPlatform, err := dockerbuild.NewImage(ctx, "multiPlatform", &dockerbuild.ImageArgs{
|
multiPlatform, err := dockerbuild.NewImage(ctx, "multiPlatform", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.multiPlatform"),
|
Location: pulumi.String("./app/Dockerfile.multiPlatform"),
|
||||||
},
|
},
|
||||||
@@ -26,6 +27,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "registryPush", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "registryPush", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &dockerbuild.BuildContextArgs{
|
||||||
Location: pulumi.String("./app"),
|
Location: pulumi.String("./app"),
|
||||||
},
|
},
|
||||||
@@ -52,6 +54,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "cached", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "cached", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &dockerbuild.BuildContextArgs{
|
||||||
Location: pulumi.String("./app"),
|
Location: pulumi.String("./app"),
|
||||||
},
|
},
|
||||||
@@ -75,6 +78,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "buildArgs", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "buildArgs", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.buildArgs"),
|
Location: pulumi.String("./app/Dockerfile.buildArgs"),
|
||||||
},
|
},
|
||||||
@@ -89,6 +93,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "extraHosts", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "extraHosts", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.extraHosts"),
|
Location: pulumi.String("./app/Dockerfile.extraHosts"),
|
||||||
},
|
},
|
||||||
@@ -103,6 +108,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "sshMount", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "sshMount", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.sshMount"),
|
Location: pulumi.String("./app/Dockerfile.sshMount"),
|
||||||
},
|
},
|
||||||
@@ -119,6 +125,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "secrets", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "secrets", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.secrets"),
|
Location: pulumi.String("./app/Dockerfile.secrets"),
|
||||||
},
|
},
|
||||||
@@ -133,6 +140,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "labels", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "labels", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &dockerbuild.BuildContextArgs{
|
||||||
Location: pulumi.String("./app"),
|
Location: pulumi.String("./app"),
|
||||||
},
|
},
|
||||||
@@ -144,6 +152,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "target", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "target", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.target"),
|
Location: pulumi.String("./app/Dockerfile.target"),
|
||||||
},
|
},
|
||||||
@@ -156,6 +165,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "namedContexts", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "namedContexts", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Location: pulumi.String("./app/Dockerfile.namedContexts"),
|
Location: pulumi.String("./app/Dockerfile.namedContexts"),
|
||||||
},
|
},
|
||||||
@@ -172,6 +182,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "remoteContext", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "remoteContext", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &dockerbuild.BuildContextArgs{
|
||||||
Location: pulumi.String("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"),
|
Location: pulumi.String("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"),
|
||||||
},
|
},
|
||||||
@@ -180,6 +191,7 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "remoteContextWithInline", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "remoteContextWithInline", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Inline: pulumi.String("FROM busybox\nCOPY hello.c ./\n"),
|
Inline: pulumi.String("FROM busybox\nCOPY hello.c ./\n"),
|
||||||
},
|
},
|
||||||
@@ -191,17 +203,16 @@ func main() {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "inline", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "inline", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Dockerfile: &dockerbuild.DockerfileArgs{
|
Dockerfile: &dockerbuild.DockerfileArgs{
|
||||||
Inline: pulumi.String("FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"),
|
Inline: pulumi.String("FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"),
|
||||||
},
|
},
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
|
||||||
Location: pulumi.String("./app"),
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, err = dockerbuild.NewImage(ctx, "dockerLoad", &dockerbuild.ImageArgs{
|
_, err = dockerbuild.NewImage(ctx, "dockerLoad", &dockerbuild.ImageArgs{
|
||||||
|
Push: pulumi.Bool(false),
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &dockerbuild.BuildContextArgs{
|
||||||
Location: pulumi.String("./app"),
|
Location: pulumi.String("./app"),
|
||||||
},
|
},
|
||||||
|
|||||||
2
examples/java/.dockerignore
Normal file
2
examples/java/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -32,6 +32,7 @@ public class App {
|
|||||||
final var config = ctx.config();
|
final var config = ctx.config();
|
||||||
final var dockerHubPassword = config.get("dockerHubPassword");
|
final var dockerHubPassword = config.get("dockerHubPassword");
|
||||||
var multiPlatform = new Image("multiPlatform", ImageArgs.builder()
|
var multiPlatform = new Image("multiPlatform", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.multiPlatform")
|
.location("./app/Dockerfile.multiPlatform")
|
||||||
.build())
|
.build())
|
||||||
@@ -44,6 +45,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var registryPush = new Image("registryPush", ImageArgs.builder()
|
var registryPush = new Image("registryPush", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.context(BuildContextArgs.builder()
|
.context(BuildContextArgs.builder()
|
||||||
.location("./app")
|
.location("./app")
|
||||||
.build())
|
.build())
|
||||||
@@ -62,6 +64,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var cached = new Image("cached", ImageArgs.builder()
|
var cached = new Image("cached", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.context(BuildContextArgs.builder()
|
.context(BuildContextArgs.builder()
|
||||||
.location("./app")
|
.location("./app")
|
||||||
.build())
|
.build())
|
||||||
@@ -79,6 +82,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var buildArgs = new Image("buildArgs", ImageArgs.builder()
|
var buildArgs = new Image("buildArgs", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.buildArgs")
|
.location("./app/Dockerfile.buildArgs")
|
||||||
.build())
|
.build())
|
||||||
@@ -89,6 +93,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var extraHosts = new Image("extraHosts", ImageArgs.builder()
|
var extraHosts = new Image("extraHosts", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.extraHosts")
|
.location("./app/Dockerfile.extraHosts")
|
||||||
.build())
|
.build())
|
||||||
@@ -99,6 +104,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var sshMount = new Image("sshMount", ImageArgs.builder()
|
var sshMount = new Image("sshMount", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.sshMount")
|
.location("./app/Dockerfile.sshMount")
|
||||||
.build())
|
.build())
|
||||||
@@ -111,6 +117,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var secrets = new Image("secrets", ImageArgs.builder()
|
var secrets = new Image("secrets", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.secrets")
|
.location("./app/Dockerfile.secrets")
|
||||||
.build())
|
.build())
|
||||||
@@ -121,6 +128,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var labels = new Image("labels", ImageArgs.builder()
|
var labels = new Image("labels", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.context(BuildContextArgs.builder()
|
.context(BuildContextArgs.builder()
|
||||||
.location("./app")
|
.location("./app")
|
||||||
.build())
|
.build())
|
||||||
@@ -128,6 +136,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var target = new Image("target", ImageArgs.builder()
|
var target = new Image("target", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.target")
|
.location("./app/Dockerfile.target")
|
||||||
.build())
|
.build())
|
||||||
@@ -138,6 +147,7 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var namedContexts = new Image("namedContexts", ImageArgs.builder()
|
var namedContexts = new Image("namedContexts", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.location("./app/Dockerfile.namedContexts")
|
.location("./app/Dockerfile.namedContexts")
|
||||||
.build())
|
.build())
|
||||||
@@ -148,12 +158,14 @@ public class App {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var remoteContext = new Image("remoteContext", ImageArgs.builder()
|
var remoteContext = new Image("remoteContext", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.context(BuildContextArgs.builder()
|
.context(BuildContextArgs.builder()
|
||||||
.location("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile")
|
.location("https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile")
|
||||||
.build())
|
.build())
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
var remoteContextWithInline = new Image("remoteContextWithInline", ImageArgs.builder()
|
var remoteContextWithInline = new Image("remoteContextWithInline", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.inline("""
|
.inline("""
|
||||||
FROM busybox
|
FROM busybox
|
||||||
@@ -166,18 +178,17 @@ COPY hello.c ./
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
var inline = new Image("inline", ImageArgs.builder()
|
var inline = new Image("inline", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.dockerfile(DockerfileArgs.builder()
|
.dockerfile(DockerfileArgs.builder()
|
||||||
.inline("""
|
.inline("""
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo "This uses an inline Dockerfile! 👍"
|
RUN echo "This uses an inline Dockerfile! 👍"
|
||||||
""")
|
""")
|
||||||
.build())
|
.build())
|
||||||
.context(BuildContextArgs.builder()
|
|
||||||
.location("./app")
|
|
||||||
.build())
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
var dockerLoad = new Image("dockerLoad", ImageArgs.builder()
|
var dockerLoad = new Image("dockerLoad", ImageArgs.builder()
|
||||||
|
.push(false)
|
||||||
.context(BuildContextArgs.builder()
|
.context(BuildContextArgs.builder()
|
||||||
.location("./app")
|
.location("./app")
|
||||||
.build())
|
.build())
|
||||||
|
|||||||
2
examples/nodejs/.dockerignore
Normal file
2
examples/nodejs/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -4,6 +4,7 @@ import * as docker_build from "@pulumi/docker-build";
|
|||||||
const config = new pulumi.Config();
|
const config = new pulumi.Config();
|
||||||
const dockerHubPassword = config.require("dockerHubPassword");
|
const dockerHubPassword = config.require("dockerHubPassword");
|
||||||
const multiPlatform = new docker_build.Image("multiPlatform", {
|
const multiPlatform = new docker_build.Image("multiPlatform", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.multiPlatform",
|
location: "./app/Dockerfile.multiPlatform",
|
||||||
},
|
},
|
||||||
@@ -16,6 +17,7 @@ const multiPlatform = new docker_build.Image("multiPlatform", {
|
|||||||
],
|
],
|
||||||
});
|
});
|
||||||
const registryPush = new docker_build.Image("registryPush", {
|
const registryPush = new docker_build.Image("registryPush", {
|
||||||
|
push: false,
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
@@ -33,6 +35,7 @@ const registryPush = new docker_build.Image("registryPush", {
|
|||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const cached = new docker_build.Image("cached", {
|
const cached = new docker_build.Image("cached", {
|
||||||
|
push: false,
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
@@ -49,6 +52,7 @@ const cached = new docker_build.Image("cached", {
|
|||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const buildArgs = new docker_build.Image("buildArgs", {
|
const buildArgs = new docker_build.Image("buildArgs", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.buildArgs",
|
location: "./app/Dockerfile.buildArgs",
|
||||||
},
|
},
|
||||||
@@ -60,6 +64,7 @@ const buildArgs = new docker_build.Image("buildArgs", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const extraHosts = new docker_build.Image("extraHosts", {
|
const extraHosts = new docker_build.Image("extraHosts", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.extraHosts",
|
location: "./app/Dockerfile.extraHosts",
|
||||||
},
|
},
|
||||||
@@ -69,6 +74,7 @@ const extraHosts = new docker_build.Image("extraHosts", {
|
|||||||
addHosts: ["metadata.google.internal:169.254.169.254"],
|
addHosts: ["metadata.google.internal:169.254.169.254"],
|
||||||
});
|
});
|
||||||
const sshMount = new docker_build.Image("sshMount", {
|
const sshMount = new docker_build.Image("sshMount", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.sshMount",
|
location: "./app/Dockerfile.sshMount",
|
||||||
},
|
},
|
||||||
@@ -80,6 +86,7 @@ const sshMount = new docker_build.Image("sshMount", {
|
|||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const secrets = new docker_build.Image("secrets", {
|
const secrets = new docker_build.Image("secrets", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.secrets",
|
location: "./app/Dockerfile.secrets",
|
||||||
},
|
},
|
||||||
@@ -91,6 +98,7 @@ const secrets = new docker_build.Image("secrets", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const labels = new docker_build.Image("labels", {
|
const labels = new docker_build.Image("labels", {
|
||||||
|
push: false,
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
@@ -99,6 +107,7 @@ const labels = new docker_build.Image("labels", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const target = new docker_build.Image("target", {
|
const target = new docker_build.Image("target", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.target",
|
location: "./app/Dockerfile.target",
|
||||||
},
|
},
|
||||||
@@ -108,6 +117,7 @@ const target = new docker_build.Image("target", {
|
|||||||
target: "build-me",
|
target: "build-me",
|
||||||
});
|
});
|
||||||
const namedContexts = new docker_build.Image("namedContexts", {
|
const namedContexts = new docker_build.Image("namedContexts", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.namedContexts",
|
location: "./app/Dockerfile.namedContexts",
|
||||||
},
|
},
|
||||||
@@ -120,10 +130,14 @@ const namedContexts = new docker_build.Image("namedContexts", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const remoteContext = new docker_build.Image("remoteContext", {context: {
|
const remoteContext = new docker_build.Image("remoteContext", {
|
||||||
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
push: false,
|
||||||
}});
|
context: {
|
||||||
|
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
|
},
|
||||||
|
});
|
||||||
const remoteContextWithInline = new docker_build.Image("remoteContextWithInline", {
|
const remoteContextWithInline = new docker_build.Image("remoteContextWithInline", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
inline: `FROM busybox
|
inline: `FROM busybox
|
||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
@@ -134,16 +148,15 @@ COPY hello.c ./
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const inline = new docker_build.Image("inline", {
|
const inline = new docker_build.Image("inline", {
|
||||||
|
push: false,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
inline: `FROM alpine
|
inline: `FROM alpine
|
||||||
RUN echo "This uses an inline Dockerfile! 👍"
|
RUN echo "This uses an inline Dockerfile! 👍"
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
context: {
|
|
||||||
location: "./app",
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
const dockerLoad = new docker_build.Image("dockerLoad", {
|
const dockerLoad = new docker_build.Image("dockerLoad", {
|
||||||
|
push: false,
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,6 +5,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"typescript": "^4.0.0",
|
"typescript": "^4.0.0",
|
||||||
"@pulumi/pulumi": "^3.0.0"
|
"@pulumi/pulumi": "^3.128.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,19 @@
|
|||||||
package examples
|
package examples
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/base64"
|
||||||
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
|
"github.com/aws/aws-sdk-go/aws/session"
|
||||||
|
"github.com/aws/aws-sdk-go/service/ecr"
|
||||||
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,3 +34,180 @@ func TestNodeExample(t *testing.T) {
|
|||||||
|
|
||||||
integration.ProgramTest(t, &test)
|
integration.ProgramTest(t, &test)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestCaching simulates a slow build with --cache-to enabled. We aren't able
|
||||||
|
// to directly detect cache hits, so we re-run the update and confirm it took
|
||||||
|
// less time than the image originally took to build.
|
||||||
|
//
|
||||||
|
// This is a moderately slow test because we need to "build" (i.e., sleep)
|
||||||
|
// longer than it would take for cache layer uploads under slow network
|
||||||
|
// conditions.
|
||||||
|
func TestCaching(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
sleep := 20.0 // seconds
|
||||||
|
|
||||||
|
// Provision ECR outside of our stack, because the cache needs to be shared
|
||||||
|
// across updates.
|
||||||
|
ecr, ecrOK := tmpEcr(t)
|
||||||
|
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
localCache := t.TempDir()
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
skip bool
|
||||||
|
|
||||||
|
cacheTo string
|
||||||
|
cacheFrom string
|
||||||
|
address string
|
||||||
|
username string
|
||||||
|
password string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "local",
|
||||||
|
cacheTo: fmt.Sprintf("type=local,mode=max,oci-mediatypes=true,dest=%s", localCache),
|
||||||
|
cacheFrom: fmt.Sprintf("type=local,src=%s", localCache),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "gha",
|
||||||
|
skip: os.Getenv("ACTIONS_CACHE_URL") == "",
|
||||||
|
cacheTo: "type=gha,mode=max,scope=cache-test",
|
||||||
|
cacheFrom: "type=gha,scope=cache-test",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "dockerhub",
|
||||||
|
skip: os.Getenv("DOCKER_HUB_PASSWORD") == "",
|
||||||
|
cacheTo: "type=registry,mode=max,ref=docker.io/pulumibot/myapp:cache",
|
||||||
|
cacheFrom: "type=registry,ref=docker.io/pulumibot/myapp:cache",
|
||||||
|
address: "docker.io",
|
||||||
|
username: "pulumibot",
|
||||||
|
password: os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ecr",
|
||||||
|
skip: !ecrOK,
|
||||||
|
cacheTo: fmt.Sprintf("type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=%s:cache", ecr.address),
|
||||||
|
cacheFrom: fmt.Sprintf("type=registry,ref=%s:cache", ecr.address),
|
||||||
|
address: ecr.address,
|
||||||
|
username: ecr.username,
|
||||||
|
password: ecr.password,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
tt := tt
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if tt.skip {
|
||||||
|
t.Skip("Missing environment variables")
|
||||||
|
}
|
||||||
|
|
||||||
|
sleepFuzzed := sleep + rand.Float64() // Add some fuzz to bust any prior build caches.
|
||||||
|
|
||||||
|
test := integration.ProgramTestOptions{
|
||||||
|
Dir: path.Join(cwd, "tests", "caching"),
|
||||||
|
ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
|
||||||
|
duration, ok := stack.Outputs["durationSeconds"]
|
||||||
|
assert.True(t, ok)
|
||||||
|
assert.Greater(t, duration.(float64), sleepFuzzed)
|
||||||
|
},
|
||||||
|
Dependencies: []string{"@pulumi/docker-build"},
|
||||||
|
Config: map[string]string{
|
||||||
|
"SLEEP_SECONDS": fmt.Sprint(sleepFuzzed),
|
||||||
|
"cacheTo": tt.cacheTo,
|
||||||
|
"cacheFrom": tt.cacheFrom,
|
||||||
|
"name": tt.name,
|
||||||
|
"address": tt.address,
|
||||||
|
"username": tt.username,
|
||||||
|
},
|
||||||
|
Secrets: map[string]string{
|
||||||
|
"password": tt.password,
|
||||||
|
},
|
||||||
|
NoParallel: true,
|
||||||
|
Quick: true,
|
||||||
|
SkipPreview: true,
|
||||||
|
SkipRefresh: true,
|
||||||
|
Verbose: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
// First run should be un-cached.
|
||||||
|
integration.ProgramTest(t, &test)
|
||||||
|
|
||||||
|
// Now run again and confirm our build was faster due to a cache hit.
|
||||||
|
test.ExtraRuntimeValidation = func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
|
||||||
|
duration, ok := stack.Outputs["durationSeconds"]
|
||||||
|
assert.True(t, ok)
|
||||||
|
assert.Less(t, duration.(float64), sleepFuzzed)
|
||||||
|
}
|
||||||
|
test.Config["name"] += "-cached"
|
||||||
|
integration.ProgramTest(t, &test)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type ECR struct {
|
||||||
|
address string
|
||||||
|
username string
|
||||||
|
password string
|
||||||
|
}
|
||||||
|
|
||||||
|
// tmpEcr creates a new ECR repo and cleans it up after the test concludes.
|
||||||
|
func tmpEcr(t *testing.T) (ECR, bool) {
|
||||||
|
sess, err := session.NewSession(&aws.Config{
|
||||||
|
Region: aws.String("us-west-2"),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return ECR{}, false
|
||||||
|
}
|
||||||
|
|
||||||
|
svc := ecr.New(sess)
|
||||||
|
name := strings.ToLower(t.Name()) + fmt.Sprint(rand.Intn(1000))
|
||||||
|
|
||||||
|
// Always attempt to delete pre-existing repos, in case our cleanup didn't
|
||||||
|
// run.
|
||||||
|
_, _ = svc.DeleteRepository(&ecr.DeleteRepositoryInput{
|
||||||
|
Force: aws.Bool(true),
|
||||||
|
RepositoryName: aws.String(name),
|
||||||
|
})
|
||||||
|
|
||||||
|
params := &ecr.CreateRepositoryInput{
|
||||||
|
RepositoryName: aws.String(name),
|
||||||
|
}
|
||||||
|
resp, err := svc.CreateRepository(params)
|
||||||
|
if err != nil {
|
||||||
|
return ECR{}, false
|
||||||
|
}
|
||||||
|
repo := resp.Repository
|
||||||
|
t.Cleanup(func() {
|
||||||
|
svc.DeleteRepository(&ecr.DeleteRepositoryInput{
|
||||||
|
Force: aws.Bool(true),
|
||||||
|
RegistryId: repo.RegistryId,
|
||||||
|
RepositoryName: repo.RepositoryName,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Now grab auth for the repo.
|
||||||
|
auth, err := svc.GetAuthorizationToken(&ecr.GetAuthorizationTokenInput{})
|
||||||
|
if err != nil {
|
||||||
|
return ECR{}, false
|
||||||
|
}
|
||||||
|
b64token := auth.AuthorizationData[0].AuthorizationToken
|
||||||
|
token, err := base64.StdEncoding.DecodeString(*b64token)
|
||||||
|
if err != nil {
|
||||||
|
return ECR{}, false
|
||||||
|
}
|
||||||
|
parts := strings.SplitN(string(token), ":", 2)
|
||||||
|
if len(parts) != 2 {
|
||||||
|
return ECR{}, false
|
||||||
|
}
|
||||||
|
username := parts[0]
|
||||||
|
password := parts[1]
|
||||||
|
|
||||||
|
return ECR{
|
||||||
|
address: *repo.RepositoryUri,
|
||||||
|
username: username,
|
||||||
|
password: password,
|
||||||
|
}, true
|
||||||
|
}
|
||||||
|
|||||||
2
examples/python/.dockerignore
Normal file
2
examples/python/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -4,6 +4,7 @@ import pulumi_docker_build as docker_build
|
|||||||
config = pulumi.Config()
|
config = pulumi.Config()
|
||||||
docker_hub_password = config.require("dockerHubPassword")
|
docker_hub_password = config.require("dockerHubPassword")
|
||||||
multi_platform = docker_build.Image("multiPlatform",
|
multi_platform = docker_build.Image("multiPlatform",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.multiPlatform",
|
location="./app/Dockerfile.multiPlatform",
|
||||||
),
|
),
|
||||||
@@ -15,6 +16,7 @@ multi_platform = docker_build.Image("multiPlatform",
|
|||||||
docker_build.Platform.PLAN9_386,
|
docker_build.Platform.PLAN9_386,
|
||||||
])
|
])
|
||||||
registry_push = docker_build.Image("registryPush",
|
registry_push = docker_build.Image("registryPush",
|
||||||
|
push=False,
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker_build.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
@@ -31,6 +33,7 @@ registry_push = docker_build.Image("registryPush",
|
|||||||
password=docker_hub_password,
|
password=docker_hub_password,
|
||||||
)])
|
)])
|
||||||
cached = docker_build.Image("cached",
|
cached = docker_build.Image("cached",
|
||||||
|
push=False,
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker_build.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
@@ -46,6 +49,7 @@ cached = docker_build.Image("cached",
|
|||||||
),
|
),
|
||||||
)])
|
)])
|
||||||
build_args = docker_build.Image("buildArgs",
|
build_args = docker_build.Image("buildArgs",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.buildArgs",
|
location="./app/Dockerfile.buildArgs",
|
||||||
),
|
),
|
||||||
@@ -56,6 +60,7 @@ build_args = docker_build.Image("buildArgs",
|
|||||||
"SET_ME_TO_TRUE": "true",
|
"SET_ME_TO_TRUE": "true",
|
||||||
})
|
})
|
||||||
extra_hosts = docker_build.Image("extraHosts",
|
extra_hosts = docker_build.Image("extraHosts",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.extraHosts",
|
location="./app/Dockerfile.extraHosts",
|
||||||
),
|
),
|
||||||
@@ -64,6 +69,7 @@ extra_hosts = docker_build.Image("extraHosts",
|
|||||||
),
|
),
|
||||||
add_hosts=["metadata.google.internal:169.254.169.254"])
|
add_hosts=["metadata.google.internal:169.254.169.254"])
|
||||||
ssh_mount = docker_build.Image("sshMount",
|
ssh_mount = docker_build.Image("sshMount",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.sshMount",
|
location="./app/Dockerfile.sshMount",
|
||||||
),
|
),
|
||||||
@@ -74,6 +80,7 @@ ssh_mount = docker_build.Image("sshMount",
|
|||||||
id="default",
|
id="default",
|
||||||
)])
|
)])
|
||||||
secrets = docker_build.Image("secrets",
|
secrets = docker_build.Image("secrets",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.secrets",
|
location="./app/Dockerfile.secrets",
|
||||||
),
|
),
|
||||||
@@ -84,6 +91,7 @@ secrets = docker_build.Image("secrets",
|
|||||||
"password": "hunter2",
|
"password": "hunter2",
|
||||||
})
|
})
|
||||||
labels = docker_build.Image("labels",
|
labels = docker_build.Image("labels",
|
||||||
|
push=False,
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker_build.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
@@ -91,6 +99,7 @@ labels = docker_build.Image("labels",
|
|||||||
"description": "This image will get a descriptive label 👍",
|
"description": "This image will get a descriptive label 👍",
|
||||||
})
|
})
|
||||||
target = docker_build.Image("target",
|
target = docker_build.Image("target",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.target",
|
location="./app/Dockerfile.target",
|
||||||
),
|
),
|
||||||
@@ -99,6 +108,7 @@ target = docker_build.Image("target",
|
|||||||
),
|
),
|
||||||
target="build-me")
|
target="build-me")
|
||||||
named_contexts = docker_build.Image("namedContexts",
|
named_contexts = docker_build.Image("namedContexts",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
location="./app/Dockerfile.namedContexts",
|
location="./app/Dockerfile.namedContexts",
|
||||||
),
|
),
|
||||||
@@ -110,10 +120,13 @@ named_contexts = docker_build.Image("namedContexts",
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
remote_context = docker_build.Image("remoteContext", context=docker_build.BuildContextArgs(
|
remote_context = docker_build.Image("remoteContext",
|
||||||
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
push=False,
|
||||||
))
|
context=docker_build.BuildContextArgs(
|
||||||
|
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
|
))
|
||||||
remote_context_with_inline = docker_build.Image("remoteContextWithInline",
|
remote_context_with_inline = docker_build.Image("remoteContextWithInline",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
inline="""FROM busybox
|
inline="""FROM busybox
|
||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
@@ -123,15 +136,14 @@ COPY hello.c ./
|
|||||||
location="https://github.com/docker-library/hello-world.git",
|
location="https://github.com/docker-library/hello-world.git",
|
||||||
))
|
))
|
||||||
inline = docker_build.Image("inline",
|
inline = docker_build.Image("inline",
|
||||||
|
push=False,
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
dockerfile=docker_build.DockerfileArgs(
|
||||||
inline="""FROM alpine
|
inline="""FROM alpine
|
||||||
RUN echo "This uses an inline Dockerfile! 👍"
|
RUN echo "This uses an inline Dockerfile! 👍"
|
||||||
""",
|
""",
|
||||||
),
|
|
||||||
context=docker_build.BuildContextArgs(
|
|
||||||
location="./app",
|
|
||||||
))
|
))
|
||||||
docker_load = docker_build.Image("dockerLoad",
|
docker_load = docker_build.Image("dockerLoad",
|
||||||
|
push=False,
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker_build.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
|
|||||||
238
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/grpc.json
vendored
Normal file
238
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/grpc.json
vendored
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.1.0-alpha.0+dev"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"randomSeed":"dU9nGeHtuY5WJ07dmNJzuNfMNpu5YSkT+/iPf7hkJzc="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"randomSeed":"XqJMo5Kt3kgFUbYiaE63S5h/JCUlRMuJatK4VKfDrZ0="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"randomSeed":"COiEoFhH0tso6trAyR79dggykuPUuPdTDAb6rWLJEQM="},"response":{"inputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"randomSeed":"Gqcahy0DgifH8J5t9K+BsxwiB9uRMFuQ9oxvjypJIrA="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"randomSeed":"ytb+Wil0bAmvXPONadCFP+parr+foknm4DcS15rd5TQ="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"randomSeed":"PFor5hNxbNZQWonQLqkMofHhhnLaeCB6cOsQRA+ERzs="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"randomSeed":"tpi4T6Kip+uy6rCR8k8/KdxSWALhFFxqK9wksnJCfmc="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"EBui8rdz/fz1NIUztJAk3k7Gc7+P2IfXASoakd6FA5M="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"randomSeed":"RgX3qPiWKOVCgLcmZp4QUOyvFoaaVoUTWViRXjhfQUI="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"randomSeed":"+4AO29jRRRBb0gRp6MN5nVp6YFhhPNwi4oIUcwZjG2I="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"randomSeed":"o2Y/gjI4Jjn48JgGbW4AaWzJu3zB0C/rDgZsCM5kGw0="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"randomSeed":"3aunMbWswKRz30w9y7n2H24Cb3i4dFlOAYwcfR9w/54="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"randomSeed":"zxXPBnfcEhgGkfYNKxuYMPGYTwEqZ2SaLarIx/NrHCM="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"randomSeed":"xZ7r1luOcYPTziWVg+rNAXWWVXmvNOAI4PwDkoogo4c="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContext","properties":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"propertyDependencies":{"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"namedContexts","properties":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"labels","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"propertyDependencies":{"context":{},"labels":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"},"preview":true},"response":{"id":"target","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"inline","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"preview":true},"response":{"id":"secrets","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"preview":true},"response":{"id":"sshMount","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","properties":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"cached","properties":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContextWithInline","properties":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"preview":true},"response":{"id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"push":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"propertyDependencies":{"context":{},"exports":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"multiPlatform","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","digest":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-7b788721","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60047","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.1.0-alpha.0+dev"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"randomSeed":"FZMNXsuPFd7JqA7qMlAHnlCtWr2gKRa/ITgO7YohD44="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"randomSeed":"DUB/i+Z/ucGQ+TVUulrwieB9dd8t+TOcUyfgnQQmjCc="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"randomSeed":"yxyIE0C4phiPUhheFV41Xg1bX+8wcbIgy3qyFjIVW6g="},"response":{"inputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"randomSeed":"eCBsJYwXwQDSSi4y7QcY/kdPKJPnu4JoKM38UlRyxHU="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"randomSeed":"lNZQwWiX/qkTcLuNbUILnoM2tjPSdIVM/PrqJIvnv18="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"randomSeed":"zIa33eziRhsfR2RO7eY2ktEEvUgnnD8XfRzV2G+UM5Y="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"randomSeed":"STIHwB3iA+/8qMHjWIZkI5wjyplfH8wQzHdFF5W3i+E="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"randomSeed":"cDBwoi3YKtq7Zt4kIUwM+ZbCCHWdVMfnZdFNt7qnd7w="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"Wi7wbKDyh7iNjdEvKOj1CZHpGlDhKMzknP7A+bhlriM="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"randomSeed":"W+iS+Se45ETk6+abc4er+KlaA4TAH9irkx9Hkw/cm6U="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"randomSeed":"AiHGTww74Oht+dh8O8CojODnFHYGgPTbUPZLsbAM9jU="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"randomSeed":"1TlDiLt9Hldo6+7mqn8es7MX1hSx48Che3nECuQ/2ms="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"randomSeed":"T55G55cr/92u/6J7gzFOx0M7YFQdga0z0m6t1fnJLFQ="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"randomSeed":"AJuyQw5wBse3pjxJmvz7Dh6y2vlMeUD1DCH4ZrM3tMw="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"id":"secrets","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"id":"sshMount","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContext","properties":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"labels","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"inline","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"id":"target","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"propertyDependencies":{"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"push":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","properties":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"cached","properties":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"propertyDependencies":{"context":{},"exports":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"propertyDependencies":{"context":{},"labels":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"id":"multiPlatform","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContextWithInline","properties":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"namedContexts","properties":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-7b788721","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","parallel":40,"monitorAddress":"127.0.0.1:60086","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.1.0-alpha.0+dev"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/DiffConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{"host":""},"oldInputs":{"host":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"randomSeed":"ZWskN3jlqBMv6tmMC3iYcp72JlJi3BaynABwfJvItf0="},"response":{"inputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"randomSeed":"w2fMu6b3i00ragSVGWmvIDtQcSnrc+tjouVOX94MOjs="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"randomSeed":"byZBE5Pr6wsJm1uCqGA7Y7/ONw/2rlV3aRk7xWWLEo8="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"propertyDependencies":{"context":{},"exports":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"randomSeed":"p8FBq6krg4I7hAUYM4neg5YNRa3tWVakQOHYfF6vFN4="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"randomSeed":"G7n7xhvbi62QRvCJna5KrofLnmMIZ/vGJAdrCW/Rtrk="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"randomSeed":"0p/EMi8wX7/oogSrdOLh7212T5s3xiJg8LTvx472XvE="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"propertyDependencies":{"context":{},"labels":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"randomSeed":"/PtiUljglYok1d9FeJAyPeK5pqQgJHX7UDdo0iN6eh4="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"2MLryJXUSCtyYEay5UqLHXK2NmAO7gqFArJoR94yqxQ="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"push":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"randomSeed":"jwjqrWoEo9bkNxg+c/bGkujinMxk9u6H6kXZz609seE="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"randomSeed":"CaplRfMxjiQCr1PCFJaqI/RWqzglzoESxXZfrdbwAt4="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"propertyDependencies":{"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"randomSeed":"xNAphsB4aznduk89CDvOVS8w52uf7APLGilnNvFeW4M="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"randomSeed":"2pWR2Fya+kqsX+fiRZsCijKKNyM4Vg7cV+zWbvgYd40="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"randomSeed":"p3KkWQOMacJB3Xx3iA9xzZNVbq4cisgeBDusyc7Dd5M="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"randomSeed":"NtYD6OUq2twAADxlS7q6b/RtDapKb1B5Ho88CrkTvRg="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-7b788721","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60111","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetPluginInfo","request":{},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/GetRequiredPlugins","request":{"project":"deprecated","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{"plugins":[{"name":"docker-build","kind":"resource"}]},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"resourceReferences"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"outputValues"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"deletedWith"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"aliasSpecs"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/SupportsFeature","request":{"id":"transforms"},"response":{"hasSupport":true},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"pulumi:pulumi:Stack","name":"provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fgo%2Fpkg%2Fmod%2Fgithub.com%2Fpulumi%2Fpulumi%2Fsdk%2Fv3@v3.109.0%2Fgo%2Fpulumi%2Frun.go","line":113}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","object":{}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.1.0-alpha.0+dev"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{}},"response":{"inputs":{"host":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/DiffConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default","olds":{"host":""},"news":{"host":""},"oldInputs":{"host":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"randomSeed":"YlPwz+irKxTn1onICMkOdP6qPuH2AjQyDdO2UwPged4="},"response":{"inputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","olds":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"},"push":false},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"randomSeed":"ZD8yxSVnJPTrHTTgkkjj/8omgT2p16ynkABPukmQF0Q="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"},"push":false},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"randomSeed":"aAbPxtKNUA8gxPyARhZulNHP/6Vt4M7Olim0RngACqE="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"dockerLoad","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}],"push":false},"propertyDependencies":{"context":{},"exports":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"randomSeed":"e6kvEVUQRH/xdMeQ2DOsyjpKlcF1hsfj3wai8X//zO8="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"extraHosts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"},"push":false},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"randomSeed":"LzbI6Hzqd7u7gGJKzIw6YQcc6lQ6rqQB4pNq0sPYz64="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"randomSeed":"jYHvYFLcKQWdJpSasE1PwlWilrWqfx1pK3DeAUgjPj4="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"},"push":false},"propertyDependencies":{"context":{},"labels":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"randomSeed":"uASdht9PbZ7eqA+irTXzT70A8/vLkMDvDz6p37ID7pU="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"multiPlatform","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"],"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"randomSeed":"DQmtLvsL7o7CYPZQipV/1LT+i944Ar572mKkVF4OAfY="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"namedContexts","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"tDOnnOAQPWITFZ3C5q5muS3yfoAwGPVRAljRVmRtqi8="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"push":{},"tags":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"randomSeed":"o6ZbqfPdKuSOgWB7HF3l28QX3vGlQSMjgidCJtKpxMg="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"push":false},"propertyDependencies":{"context":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"randomSeed":"/5/ksFewBQi7wRXAj4xuv2CKJTcW5ZUbz4+rgjKE3jA="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"push":false,"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"secrets":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"randomSeed":"9ii22+m87HW/Fzxigp7uU8ogSpzUmAVh45+GLFjdOnA="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"remoteContextWithInline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"},"push":false},"propertyDependencies":{"context":{},"dockerfile":{},"push":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"randomSeed":"8yg7waJ1blvyXo8K0C0jflHueD+JoAov302Lp3iZkbg="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"push":false,"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"ssh":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"randomSeed":"oRDdZiTWGCmPPp/DLBko63qKWS9ZN6FjERsvBlkkbX4="},"response":{"inputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","olds":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"changes":"DIFF_NONE","hasDetailedDiff":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"push":false,"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"push":{},"target":{}},"acceptSecrets":true,"customTimeouts":{},"acceptResources":true,"sourcePosition":{"uri":"project://%2FUsers%2Frunner%2Fwork%2Fpulumi-yaml%2Fpulumi-yaml%2Fpkg%2Fpulumiyaml%2Frun.go","line":1330}},"response":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
|
||||||
|
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-7b788721","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","program":".","parallel":40,"monitorAddress":"127.0.0.1:60131","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-7b788721-304961874","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.1.0-alpha.0+dev"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Configure","request":{"variables":{"docker-build:config:host":""},"args":{"host":""},"acceptSecrets":true,"acceptResources":true,"sendsOldInputs":true,"sendsOldInputsToDelete":true},"response":{"acceptSecrets":true,"supportsPreview":true,"acceptResources":true,"acceptOutputs":true},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compression":"gzip","compressionLevel":0,"dest":"","forceCompression":false,"ociMediaTypes":false,"tar":true},"raw":""}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"remoteContextWithInline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://github.com/docker-library/hello-world.git"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"extraHosts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"target","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"namedContexts","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"contextHash":"3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"cached","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached","properties":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compression":"gzip","compressionLevel":0,"dest":"tmp/cache","forceCompression":false,"ignoreError":false,"mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sshMount","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"inline","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"multiPlatform","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"network":"default","noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"buildArgs","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"remoteContext","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"","target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
|
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","urn":"urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush","properties":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"buildOnPreview":true,"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compression":"gzip","compressionLevel":0,"danglingNamePrefix":"","forceCompression":false,"ociMediaTypes":true,"push":false,"store":true}}],"load":false,"network":"default","noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
||||||
944
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/state.json
vendored
Executable file
944
examples/testdata/recorded/TestProviderUpgrade/upgrade/0.0.1/state.json
vendored
Executable file
@@ -0,0 +1,944 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"deployment": {
|
||||||
|
"manifest": {
|
||||||
|
"time": "2024-06-18T15:10:50.439881-07:00",
|
||||||
|
"magic": "",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
"secrets_providers": {
|
||||||
|
"type": "passphrase",
|
||||||
|
"state": {
|
||||||
|
"salt": "v1:uRYnzeN15MA=:v1:rpAZ+oxUTuiNyCpF:KQmWj5xMhsTrE2XhW35Gd1XoMW7RDg=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"resources": [
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"custom": false,
|
||||||
|
"type": "pulumi:pulumi:Stack",
|
||||||
|
"outputs": {
|
||||||
|
"platforms": [
|
||||||
|
"plan9/amd64",
|
||||||
|
"plan9/386"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:48.091797Z",
|
||||||
|
"modified": "2024-06-18T22:10:48.091797Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default",
|
||||||
|
"custom": true,
|
||||||
|
"id": "b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"type": "pulumi:providers:docker-build",
|
||||||
|
"inputs": {
|
||||||
|
"host": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"host": ""
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:48.187658Z",
|
||||||
|
"modified": "2024-06-18T22:10:48.187658Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::secrets",
|
||||||
|
"custom": true,
|
||||||
|
"id": "secrets",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.secrets"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"secrets": {
|
||||||
|
"password": "hunter2"
|
||||||
|
},
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.secrets"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"secrets": {
|
||||||
|
"password": "hunter2"
|
||||||
|
},
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": [],
|
||||||
|
"secrets": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.181453Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.181453Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::buildArgs",
|
||||||
|
"custom": true,
|
||||||
|
"id": "buildArgs",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildArgs": {
|
||||||
|
"SET_ME_TO_TRUE": "true"
|
||||||
|
},
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.buildArgs"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildArgs": {
|
||||||
|
"SET_ME_TO_TRUE": "true"
|
||||||
|
},
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.buildArgs"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"buildArgs": [],
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.182348Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.182348Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::sshMount",
|
||||||
|
"custom": true,
|
||||||
|
"id": "sshMount",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.sshMount"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ssh": [
|
||||||
|
{
|
||||||
|
"id": "default"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.sshMount"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"ssh": [
|
||||||
|
{
|
||||||
|
"id": "default"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": [],
|
||||||
|
"ssh": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.182807Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.182807Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContext",
|
||||||
|
"custom": true,
|
||||||
|
"id": "remoteContext",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||||
|
},
|
||||||
|
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.18341Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.18341Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::registryPush",
|
||||||
|
"custom": true,
|
||||||
|
"id": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"exports": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"raw": "",
|
||||||
|
"registry": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"danglingNamePrefix": "",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ociMediaTypes": true,
|
||||||
|
"push": false,
|
||||||
|
"store": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"tags": [
|
||||||
|
"docker.io/pulumibot/buildkit-e2e:example"
|
||||||
|
],
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||||
|
"digest": "sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"exports": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"raw": "",
|
||||||
|
"registry": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"danglingNamePrefix": "",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ociMediaTypes": true,
|
||||||
|
"push": false,
|
||||||
|
"store": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "docker.io/pulumibot/buildkit-e2e:example@sha256:0d286c8339e2bc4e166585dcda28a501fb08c8f991c2293209faa78a13bfb79a",
|
||||||
|
"tags": [
|
||||||
|
"docker.io/pulumibot/buildkit-e2e:example"
|
||||||
|
],
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"exports": [],
|
||||||
|
"push": [],
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.183668Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.183668Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::dockerLoad",
|
||||||
|
"custom": true,
|
||||||
|
"id": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"exports": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"docker": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"dest": "",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ociMediaTypes": false,
|
||||||
|
"tar": true
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||||
|
"digest": "sha256:ec5d5c149823f61d56f5666d494d19c4edca42cfe4b578e640f57bf2429716a4",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"exports": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"docker": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"dest": "",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ociMediaTypes": false,
|
||||||
|
"tar": true
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"exports": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.183874Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.183874Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::labels",
|
||||||
|
"custom": true,
|
||||||
|
"id": "labels",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"labels": {
|
||||||
|
"description": "This image will get a descriptive label 👍"
|
||||||
|
},
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"labels": {
|
||||||
|
"description": "This image will get a descriptive label 👍"
|
||||||
|
},
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"labels": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.183996Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.183996Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::inline",
|
||||||
|
"custom": true,
|
||||||
|
"id": "inline",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.184088Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.184088Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::target",
|
||||||
|
"custom": true,
|
||||||
|
"id": "target",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.target"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": "build-me"
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.target"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": "build-me"
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": [],
|
||||||
|
"target": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.18426Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.18426Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::cached",
|
||||||
|
"custom": true,
|
||||||
|
"id": "cached",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"cacheFrom": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"local": {
|
||||||
|
"digest": "",
|
||||||
|
"src": "tmp/cache"
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cacheTo": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"local": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"dest": "tmp/cache",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ignoreError": false,
|
||||||
|
"mode": "max"
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"cacheFrom": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"local": {
|
||||||
|
"digest": "",
|
||||||
|
"src": "tmp/cache"
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cacheTo": [
|
||||||
|
{
|
||||||
|
"disabled": false,
|
||||||
|
"local": {
|
||||||
|
"compression": "gzip",
|
||||||
|
"compressionLevel": 0,
|
||||||
|
"dest": "tmp/cache",
|
||||||
|
"forceCompression": false,
|
||||||
|
"ignoreError": false,
|
||||||
|
"mode": "max"
|
||||||
|
},
|
||||||
|
"raw": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "app/Dockerfile"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"cacheFrom": [],
|
||||||
|
"cacheTo": [],
|
||||||
|
"context": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.206842Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.206842Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::multiPlatform",
|
||||||
|
"custom": true,
|
||||||
|
"id": "multiPlatform",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.multiPlatform"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"platforms": [
|
||||||
|
"plan9/amd64",
|
||||||
|
"plan9/386"
|
||||||
|
],
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.multiPlatform"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"platforms": [
|
||||||
|
"plan9/amd64",
|
||||||
|
"plan9/386"
|
||||||
|
],
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"platforms": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.257528Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.257528Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::extraHosts",
|
||||||
|
"custom": true,
|
||||||
|
"id": "extraHosts",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"addHosts": [
|
||||||
|
"metadata.google.internal:169.254.169.254"
|
||||||
|
],
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.extraHosts"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"addHosts": [
|
||||||
|
"metadata.google.internal:169.254.169.254"
|
||||||
|
],
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app"
|
||||||
|
},
|
||||||
|
"contextHash": "e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.extraHosts"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"addHosts": [],
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.274264Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.274264Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::remoteContextWithInline",
|
||||||
|
"custom": true,
|
||||||
|
"id": "remoteContextWithInline",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "https://github.com/docker-library/hello-world.git"
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "https://github.com/docker-library/hello-world.git"
|
||||||
|
},
|
||||||
|
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
||||||
|
"location": ""
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.332506Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.332506Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::docker-build:index:Image::namedContexts",
|
||||||
|
"custom": true,
|
||||||
|
"id": "namedContexts",
|
||||||
|
"type": "docker-build:index:Image",
|
||||||
|
"inputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app",
|
||||||
|
"named": {
|
||||||
|
"golang:latest": {
|
||||||
|
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.namedContexts"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"outputs": {
|
||||||
|
"buildOnPreview": true,
|
||||||
|
"context": {
|
||||||
|
"location": "./app",
|
||||||
|
"named": {
|
||||||
|
"golang:latest": {
|
||||||
|
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contextHash": "3adfaaf17fbb548f06310e76d2826bccb223b49463504d0cc4fe86b0eef5d47d",
|
||||||
|
"digest": "",
|
||||||
|
"dockerfile": {
|
||||||
|
"inline": "",
|
||||||
|
"location": "./app/Dockerfile.namedContexts"
|
||||||
|
},
|
||||||
|
"exec": false,
|
||||||
|
"load": false,
|
||||||
|
"network": "default",
|
||||||
|
"noCache": false,
|
||||||
|
"pull": false,
|
||||||
|
"push": false,
|
||||||
|
"ref": "",
|
||||||
|
"target": ""
|
||||||
|
},
|
||||||
|
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-7b788721",
|
||||||
|
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-7b788721::provider-docker-build::pulumi:providers:docker-build::default::b62bb809-b83b-42cb-889c-46d524de5fe7",
|
||||||
|
"propertyDependencies": {
|
||||||
|
"context": [],
|
||||||
|
"dockerfile": [],
|
||||||
|
"push": []
|
||||||
|
},
|
||||||
|
"created": "2024-06-18T22:10:50.422524Z",
|
||||||
|
"modified": "2024-06-18T22:10:50.422524Z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
7
examples/tests/caching/Dockerfile
Normal file
7
examples/tests/caching/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
FROM --platform=$BUILDPLATFORM golang:1.21.6-alpine3.18 as initial
|
||||||
|
ARG SLEEP_SECONDS
|
||||||
|
RUN sleep ${SLEEP_SECONDS} && echo ${SLEEP_SECONDS} > output
|
||||||
|
|
||||||
|
FROM alpine:3.18 as final
|
||||||
|
COPY --from=initial /go/output output
|
||||||
|
RUN cat output
|
||||||
3
examples/tests/caching/Pulumi.yaml
Normal file
3
examples/tests/caching/Pulumi.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name: test-buildx-caching
|
||||||
|
runtime: nodejs
|
||||||
|
description: A minimal TypeScript Pulumi program
|
||||||
40
examples/tests/caching/index.ts
Normal file
40
examples/tests/caching/index.ts
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import * as buildx from "@pulumi/docker-build";
|
||||||
|
import * as pulumi from "@pulumi/pulumi";
|
||||||
|
|
||||||
|
const config = new pulumi.Config();
|
||||||
|
|
||||||
|
const start = new Date().getTime();
|
||||||
|
|
||||||
|
// docker buildx build \
|
||||||
|
// -f Dockerfile \
|
||||||
|
// --cache-to type=local,dest=tmp,mode=max,oci-mediatypes=true \
|
||||||
|
// --cache-from type=local,src=tmp \
|
||||||
|
// --build-arg SLEEP-MS=$SLEEP_MS \
|
||||||
|
// -t not-pushed \
|
||||||
|
// -f Dockerfile \
|
||||||
|
// .
|
||||||
|
const img = new buildx.Image(`buildx-${config.require("name")}`, {
|
||||||
|
tags: ["not-pushed"],
|
||||||
|
dockerfile: { location: "Dockerfile" },
|
||||||
|
push: false,
|
||||||
|
context: { location: "." },
|
||||||
|
buildArgs: {
|
||||||
|
SLEEP_SECONDS: config.require("SLEEP_SECONDS"),
|
||||||
|
},
|
||||||
|
cacheTo: [{ raw: config.require("cacheTo") }],
|
||||||
|
cacheFrom: [{ raw: config.require("cacheFrom") }],
|
||||||
|
// Set registry auth if it was provided.
|
||||||
|
registries: config.require("username")
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
address: config.getSecret("address"),
|
||||||
|
username: config.getSecret("username"),
|
||||||
|
password: config.getSecret("password"),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: undefined,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const durationSeconds = img.ref.apply(
|
||||||
|
(_) => (new Date().getTime() - start) / 1000.0
|
||||||
|
);
|
||||||
9
examples/tests/caching/package.json
Normal file
9
examples/tests/caching/package.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "test-buildx-caching",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^20.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@pulumi/pulumi": "^3.128.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
1941
examples/tests/caching/yarn.lock
Normal file
1941
examples/tests/caching/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
1
examples/tests/unauthenticated/.dockerignore
Normal file
1
examples/tests/unauthenticated/.dockerignore
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*
|
||||||
19
examples/tests/unauthenticated/Pulumi.yaml
Normal file
19
examples/tests/unauthenticated/Pulumi.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
name: dockerhub-unauthenticated
|
||||||
|
description: Pull an image from Dockerhub without credentials
|
||||||
|
runtime: yaml
|
||||||
|
plugins:
|
||||||
|
providers:
|
||||||
|
- name: docker-build
|
||||||
|
path: ../../../bin
|
||||||
|
resources:
|
||||||
|
my-image:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
tags:
|
||||||
|
- alpine-local
|
||||||
|
load: true
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: .
|
||||||
|
dockerfile:
|
||||||
|
inline: FROM alpine
|
||||||
187
examples/upgrade/Pulumi.yaml
Normal file
187
examples/upgrade/Pulumi.yaml
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
name: provider-docker-build
|
||||||
|
runtime: yaml
|
||||||
|
plugins:
|
||||||
|
providers:
|
||||||
|
- name: docker-build
|
||||||
|
path: ../../bin
|
||||||
|
|
||||||
|
resources:
|
||||||
|
# docker buildx build -f app/Dockerfile.multiPlatform --platform plan9/amd64,plan9/386 app
|
||||||
|
multiPlatform:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.multiPlatform"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
platforms:
|
||||||
|
- plan9/amd64
|
||||||
|
- plan9/386
|
||||||
|
|
||||||
|
# docker buildx build --output=type=registry app
|
||||||
|
registryPush:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
tags: ["docker.io/pulumibot/buildkit-e2e:example"]
|
||||||
|
exports:
|
||||||
|
- registry:
|
||||||
|
ociMediaTypes: true
|
||||||
|
push: false # Omit this to actually push images.
|
||||||
|
|
||||||
|
# docker buildx build --cache-to=type=local,dest=tmp/cache,mode=max --cache-from=type=local,src=tmp/cache app
|
||||||
|
cached:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
cacheTo:
|
||||||
|
- local:
|
||||||
|
dest: tmp/cache
|
||||||
|
mode: max
|
||||||
|
cacheFrom:
|
||||||
|
- local:
|
||||||
|
src: tmp/cache
|
||||||
|
|
||||||
|
# docker buildx build -f app/Dockerfile.buildArgs --build-arg SET_ME_TO_TRUE=true app
|
||||||
|
buildArgs:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.buildArgs"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
buildArgs:
|
||||||
|
SET_ME_TO_TRUE: "true"
|
||||||
|
|
||||||
|
# docker buildx build -f app/Dockerfile.extraHosts --add-host metadata.google.internal:169.254.169.254 app
|
||||||
|
extraHosts:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.extraHosts"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
addHosts:
|
||||||
|
- "metadata.google.internal:169.254.169.254"
|
||||||
|
|
||||||
|
# docker buildx build -f app/Dockerfile.sshMount --ssh default app
|
||||||
|
sshMount:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.sshMount"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
ssh:
|
||||||
|
- id: default
|
||||||
|
|
||||||
|
# PASSWORD=hunter2 docker buildx build -f app/Dockerfile.secrets --secret id=password,env=PASSWORD app
|
||||||
|
secrets:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.secrets"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
secrets:
|
||||||
|
password: hunter2
|
||||||
|
|
||||||
|
# docker buildx build --label "description=This image will get a descriptive label 👍" app
|
||||||
|
labels:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
labels:
|
||||||
|
description: "This image will get a descriptive label 👍"
|
||||||
|
|
||||||
|
# docker buildx build -f app/Dockerfile.target --target build-me app
|
||||||
|
target:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.target"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
target: "build-me"
|
||||||
|
|
||||||
|
# docker buildx build -f app/Dockerfile.namedContexts \
|
||||||
|
# --build-context golang:latest=docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984 app
|
||||||
|
namedContexts:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
location: "./app/Dockerfile.namedContexts"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
named:
|
||||||
|
"golang:latest":
|
||||||
|
location: "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
||||||
|
|
||||||
|
# docker buildx build https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile
|
||||||
|
remoteContext:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||||
|
|
||||||
|
# docker buildx build -f - https://github.com/docker-library/hello-world.git <<EOF
|
||||||
|
# FROM busybox
|
||||||
|
# COPY hello.c ./
|
||||||
|
# EOF
|
||||||
|
remoteContextWithInline:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
inline: |
|
||||||
|
FROM busybox
|
||||||
|
COPY hello.c ./
|
||||||
|
context:
|
||||||
|
location: "https://github.com/docker-library/hello-world.git"
|
||||||
|
|
||||||
|
# echo "FROM alpine" | docker buildx build -f - .
|
||||||
|
inline:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
dockerfile:
|
||||||
|
inline: |
|
||||||
|
FROM alpine
|
||||||
|
RUN echo "This uses an inline Dockerfile! 👍"
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
|
||||||
|
# docker buildx build --load .
|
||||||
|
dockerLoad:
|
||||||
|
type: docker-build:Image
|
||||||
|
properties:
|
||||||
|
push: false
|
||||||
|
context:
|
||||||
|
location: "./app"
|
||||||
|
exports:
|
||||||
|
- docker:
|
||||||
|
tar: true
|
||||||
|
|
||||||
|
# docker buildx build - < app/Dockerfile.emptyContext
|
||||||
|
#emptyContext:
|
||||||
|
# type: docker-build:Image
|
||||||
|
# properties:
|
||||||
|
# file: "app/Dockerfile.emptyContext"
|
||||||
|
# context: "-"
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
platforms: ${multiPlatform.platforms}
|
||||||
15
examples/upgrade/README.md
Normal file
15
examples/upgrade/README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# 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.
|
||||||
2
examples/upgrade/app/Dockerfile
Normal file
2
examples/upgrade/app/Dockerfile
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM alpine
|
||||||
|
RUN echo 👍
|
||||||
5
examples/upgrade/app/Dockerfile.buildArgs
Normal file
5
examples/upgrade/app/Dockerfile.buildArgs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
FROM alpine
|
||||||
|
|
||||||
|
ARG SET_ME_TO_TRUE
|
||||||
|
RUN [ "$SET_ME_TO_TRUE" = "true" ]
|
||||||
|
RUN echo "That's the correct build arg, thanks! 👍"
|
||||||
2
examples/upgrade/app/Dockerfile.emptyContext
Normal file
2
examples/upgrade/app/Dockerfile.emptyContext
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM alpine
|
||||||
|
RUN echo "This image doesn't use any local files, so it doesn't need a context parameter 👍"
|
||||||
3
examples/upgrade/app/Dockerfile.extraHosts
Normal file
3
examples/upgrade/app/Dockerfile.extraHosts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM bash AS base
|
||||||
|
|
||||||
|
RUN getent hosts metadata.google.internal
|
||||||
7
examples/upgrade/app/Dockerfile.multiPlatform
Normal file
7
examples/upgrade/app/Dockerfile.multiPlatform
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
FROM --platform=$BUILDPLATFORM alpine as build
|
||||||
|
RUN echo ${BUILDPLATFORM} > buildplatform
|
||||||
|
RUN echo ${TARGETPLATFORM} > targetplatform
|
||||||
|
|
||||||
|
FROM build
|
||||||
|
RUN cat buildplatform
|
||||||
|
RUN cat targetplatform
|
||||||
5
examples/upgrade/app/Dockerfile.namedContexts
Normal file
5
examples/upgrade/app/Dockerfile.namedContexts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# syntax=docker/dockerfile:1.4
|
||||||
|
FROM golang:latest
|
||||||
|
|
||||||
|
RUN version="$(go version)" && echo $version && [ "$version" = "go version go1.21.7 linux/amd64" ]
|
||||||
|
RUN echo "This image uses named contexts to pin golang:latest to a specific SHA 👍"
|
||||||
4
examples/upgrade/app/Dockerfile.secrets
Normal file
4
examples/upgrade/app/Dockerfile.secrets
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
FROM alpine
|
||||||
|
|
||||||
|
RUN --mount=type=secret,id=password [ "$(cat /run/secrets/password)" = "hunter2" ]
|
||||||
|
|
||||||
5
examples/upgrade/app/Dockerfile.sshMount
Normal file
5
examples/upgrade/app/Dockerfile.sshMount
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
FROM alpine
|
||||||
|
|
||||||
|
RUN apk add openssh-client
|
||||||
|
|
||||||
|
RUN --mount=type=ssh ssh-add -l
|
||||||
8
examples/upgrade/app/Dockerfile.target
Normal file
8
examples/upgrade/app/Dockerfile.target
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
FROM alpine as build-me
|
||||||
|
RUN echo 👍
|
||||||
|
|
||||||
|
FROM build-me as also-build-me
|
||||||
|
RUN echo 🤙
|
||||||
|
|
||||||
|
FROM build-me as dont-build-me
|
||||||
|
RUN [ "true" = "false" ]
|
||||||
2
examples/yaml/.dockerignore
Normal file
2
examples/yaml/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
command-output
|
||||||
|
tmp
|
||||||
@@ -10,6 +10,7 @@ resources:
|
|||||||
multiPlatform:
|
multiPlatform:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.multiPlatform"
|
location: "./app/Dockerfile.multiPlatform"
|
||||||
context:
|
context:
|
||||||
@@ -22,6 +23,7 @@ resources:
|
|||||||
registryPush:
|
registryPush:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
tags: ["docker.io/pulumibot/buildkit-e2e:example"]
|
tags: ["docker.io/pulumibot/buildkit-e2e:example"]
|
||||||
@@ -38,6 +40,7 @@ resources:
|
|||||||
cached:
|
cached:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
cacheTo:
|
cacheTo:
|
||||||
@@ -52,6 +55,7 @@ resources:
|
|||||||
buildArgs:
|
buildArgs:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.buildArgs"
|
location: "./app/Dockerfile.buildArgs"
|
||||||
context:
|
context:
|
||||||
@@ -63,6 +67,7 @@ resources:
|
|||||||
extraHosts:
|
extraHosts:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.extraHosts"
|
location: "./app/Dockerfile.extraHosts"
|
||||||
context:
|
context:
|
||||||
@@ -74,6 +79,7 @@ resources:
|
|||||||
sshMount:
|
sshMount:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.sshMount"
|
location: "./app/Dockerfile.sshMount"
|
||||||
context:
|
context:
|
||||||
@@ -85,6 +91,7 @@ resources:
|
|||||||
secrets:
|
secrets:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.secrets"
|
location: "./app/Dockerfile.secrets"
|
||||||
context:
|
context:
|
||||||
@@ -96,6 +103,7 @@ resources:
|
|||||||
labels:
|
labels:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
labels:
|
labels:
|
||||||
@@ -105,6 +113,7 @@ resources:
|
|||||||
target:
|
target:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.target"
|
location: "./app/Dockerfile.target"
|
||||||
context:
|
context:
|
||||||
@@ -116,6 +125,7 @@ resources:
|
|||||||
namedContexts:
|
namedContexts:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.namedContexts"
|
location: "./app/Dockerfile.namedContexts"
|
||||||
context:
|
context:
|
||||||
@@ -128,6 +138,7 @@ resources:
|
|||||||
remoteContext:
|
remoteContext:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
context:
|
context:
|
||||||
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
||||||
|
|
||||||
@@ -138,6 +149,7 @@ resources:
|
|||||||
remoteContextWithInline:
|
remoteContextWithInline:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
inline: |
|
inline: |
|
||||||
FROM busybox
|
FROM busybox
|
||||||
@@ -149,17 +161,17 @@ resources:
|
|||||||
inline:
|
inline:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
dockerfile:
|
dockerfile:
|
||||||
inline: |
|
inline: |
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo "This uses an inline Dockerfile! 👍"
|
RUN echo "This uses an inline Dockerfile! 👍"
|
||||||
context:
|
|
||||||
location: "./app"
|
|
||||||
|
|
||||||
# docker buildx build --load .
|
# docker buildx build --load .
|
||||||
dockerLoad:
|
dockerLoad:
|
||||||
type: docker-build:Image
|
type: docker-build:Image
|
||||||
properties:
|
properties:
|
||||||
|
push: false
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
exports:
|
exports:
|
||||||
|
|||||||
@@ -6,8 +6,11 @@ package examples
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/pulumi/providertest"
|
||||||
|
"github.com/pulumi/pulumi-docker-build/provider"
|
||||||
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
"github.com/pulumi/pulumi/pkg/v3/testing/integration"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@@ -26,6 +29,28 @@ func TestYAMLExample(t *testing.T) {
|
|||||||
integration.ProgramTest(t, &test)
|
integration.ProgramTest(t, &test)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestYAMLExampleUpgrade(t *testing.T) {
|
||||||
|
// t.Setenv("PULUMI_PROVIDER_TEST_MODE", "snapshot")
|
||||||
|
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
bin, err := filepath.Abs("../bin")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
t.Setenv("PATH", bin+":"+os.Getenv("PATH"))
|
||||||
|
p, err := provider.New(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
test := providertest.NewProviderTest(path.Join(cwd, "upgrade"),
|
||||||
|
providertest.WithProviderName("docker-build"),
|
||||||
|
providertest.WithBaselineVersion("0.0.1"),
|
||||||
|
providertest.WithResourceProviderServer(p),
|
||||||
|
// providertest.WithConfig("dockerHubPassword", os.Getenv("DOCKER_HUB_PASSWORD")), // Doesn't support secrets yet.
|
||||||
|
)
|
||||||
|
test.Run(t)
|
||||||
|
}
|
||||||
|
|
||||||
func TestECR(t *testing.T) {
|
func TestECR(t *testing.T) {
|
||||||
if os.Getenv("AWS_SESSION_TOKEN") == "" {
|
if os.Getenv("AWS_SESSION_TOKEN") == "" {
|
||||||
t.Skip("Missing AWS credentials")
|
t.Skip("Missing AWS credentials")
|
||||||
@@ -58,3 +83,14 @@ func TestDockerHub(t *testing.T) {
|
|||||||
|
|
||||||
integration.ProgramTest(t, &test)
|
integration.ProgramTest(t, &test)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDockerHubUnauthenticated(t *testing.T) {
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
test := integration.ProgramTestOptions{
|
||||||
|
Dir: path.Join(cwd, "tests/unauthenticated"),
|
||||||
|
}
|
||||||
|
|
||||||
|
integration.ProgramTest(t, &test)
|
||||||
|
}
|
||||||
|
|||||||
354
go.mod
354
go.mod
@@ -3,40 +3,37 @@ module github.com/pulumi/pulumi-docker-build
|
|||||||
go 1.21.7
|
go 1.21.7
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/aws/aws-sdk-go v1.54.18
|
||||||
github.com/blang/semver v3.5.1+incompatible
|
github.com/blang/semver v3.5.1+incompatible
|
||||||
github.com/distribution/reference v0.5.0
|
github.com/distribution/reference v0.6.0
|
||||||
github.com/docker/buildx v0.13.1
|
github.com/docker/buildx v0.16.0
|
||||||
github.com/docker/cli v26.0.0-rc1+incompatible
|
github.com/docker/cli v27.0.3+incompatible
|
||||||
github.com/docker/distribution v2.8.2+incompatible
|
github.com/docker/docker v27.1.1+incompatible
|
||||||
github.com/docker/docker v26.0.0-rc1+incompatible
|
github.com/moby/buildkit v0.15.0
|
||||||
github.com/golangci/golangci-lint v1.57.1
|
|
||||||
github.com/moby/buildkit v0.13.0
|
|
||||||
github.com/moby/patternmatcher v0.6.0
|
github.com/moby/patternmatcher v0.6.0
|
||||||
github.com/muesli/reflow v0.3.0
|
github.com/muesli/reflow v0.3.0
|
||||||
github.com/otiai10/copy v1.14.0
|
github.com/otiai10/copy v1.14.0
|
||||||
github.com/pulumi/pulumi-go-provider v0.15.0
|
github.com/pulumi/providertest v0.0.13
|
||||||
github.com/pulumi/pulumi-go-provider/integration v0.10.1-0.20240314105842-9fbffb634faf
|
github.com/pulumi/pulumi-go-provider v0.21.0
|
||||||
github.com/pulumi/pulumi-java/pkg v0.10.0
|
github.com/pulumi/pulumi-java/pkg v0.13.0
|
||||||
github.com/pulumi/pulumi/pkg/v3 v3.113.0
|
github.com/pulumi/pulumi/pkg/v3 v3.128.0
|
||||||
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20240415162817-44c8de53d5d2
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.113.0
|
github.com/regclient/regclient v0.7.1
|
||||||
github.com/regclient/regclient v0.0.0-20240308005156-a7434cff9c6b
|
|
||||||
github.com/sirupsen/logrus v1.9.3
|
github.com/sirupsen/logrus v1.9.3
|
||||||
github.com/spf13/afero v1.11.0
|
github.com/spf13/afero v1.11.0
|
||||||
github.com/stretchr/testify v1.9.0
|
github.com/stretchr/testify v1.9.0
|
||||||
github.com/theupdateframework/notary v0.7.0
|
github.com/theupdateframework/notary v0.7.0
|
||||||
github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5
|
github.com/tonistiigi/fsutil v0.0.0-20240424095704-91a3fc46842c
|
||||||
go.uber.org/mock v0.3.0
|
go.uber.org/mock v0.4.0
|
||||||
golang.org/x/crypto v0.21.0
|
golang.org/x/crypto v0.25.0
|
||||||
google.golang.org/protobuf v1.33.0
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8
|
||||||
|
google.golang.org/protobuf v1.34.2
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
|
|
||||||
4d63.com/gochecknoglobals v0.2.1 // indirect
|
|
||||||
cloud.google.com/go v0.112.1 // indirect
|
cloud.google.com/go v0.112.1 // indirect
|
||||||
cloud.google.com/go/compute v1.25.0 // indirect
|
cloud.google.com/go/compute v1.25.1 // indirect
|
||||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||||
cloud.google.com/go/iam v1.1.6 // indirect
|
cloud.google.com/go/iam v1.1.6 // indirect
|
||||||
cloud.google.com/go/kms v1.15.7 // indirect
|
cloud.google.com/go/kms v1.15.7 // indirect
|
||||||
@@ -44,263 +41,152 @@ require (
|
|||||||
cloud.google.com/go/longrunning v0.5.5 // indirect
|
cloud.google.com/go/longrunning v0.5.5 // indirect
|
||||||
cloud.google.com/go/storage v1.39.1 // indirect
|
cloud.google.com/go/storage v1.39.1 // indirect
|
||||||
dario.cat/mergo v1.0.0 // indirect
|
dario.cat/mergo v1.0.0 // indirect
|
||||||
github.com/4meepo/tagalign v1.3.3 // indirect
|
|
||||||
github.com/Abirdcfly/dupword v0.0.14 // indirect
|
|
||||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
|
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
|
||||||
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect
|
||||||
github.com/Antonboom/errname v0.1.12 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect
|
||||||
github.com/Antonboom/nilnil v0.1.7 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
|
||||||
github.com/Antonboom/testifylint v1.2.0 // indirect
|
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect
|
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect
|
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect
|
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.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/keyvault/internal v0.7.1 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 // indirect
|
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // 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.2 // indirect
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
||||||
github.com/BurntSushi/toml v1.3.2 // indirect
|
github.com/BurntSushi/toml v1.4.0 // indirect
|
||||||
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||||
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
|
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||||
github.com/Masterminds/semver v1.5.0 // indirect
|
|
||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
|
||||||
github.com/Microsoft/hcsshim v0.11.4 // indirect
|
|
||||||
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
|
|
||||||
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
|
|
||||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||||
github.com/agext/levenshtein v1.2.3 // indirect
|
github.com/agext/levenshtein v1.2.3 // indirect
|
||||||
github.com/alecthomas/chroma v0.10.0 // indirect
|
|
||||||
github.com/alecthomas/go-check-sumtype v0.1.4 // indirect
|
|
||||||
github.com/alexkohler/nakedret/v2 v2.0.4 // indirect
|
|
||||||
github.com/alexkohler/prealloc v1.0.0 // indirect
|
|
||||||
github.com/alingse/asasalint v0.0.11 // indirect
|
|
||||||
github.com/apparentlymart/go-cidr v1.1.0 // indirect
|
github.com/apparentlymart/go-cidr v1.1.0 // indirect
|
||||||
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||||
github.com/armon/go-metrics v0.4.1 // indirect
|
|
||||||
github.com/armon/go-radix v1.0.0 // indirect
|
|
||||||
github.com/ashanbrown/forbidigo v1.6.0 // indirect
|
|
||||||
github.com/ashanbrown/makezero v1.1.1 // indirect
|
|
||||||
github.com/atotto/clipboard v0.1.4 // indirect
|
github.com/atotto/clipboard v0.1.4 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.50.36 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect
|
github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
|
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect
|
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
|
||||||
github.com/aws/smithy-go v1.20.2 // indirect
|
github.com/aws/smithy-go v1.20.2 // indirect
|
||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
github.com/aymerick/douceur v0.2.0 // indirect
|
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/bkielbasa/cyclop v1.2.1 // indirect
|
|
||||||
github.com/blizzy78/varnamelen v0.8.0 // indirect
|
|
||||||
github.com/bombsimon/wsl/v4 v4.2.1 // indirect
|
|
||||||
github.com/breml/bidichk v0.2.7 // indirect
|
|
||||||
github.com/breml/errchkjson v0.3.6 // indirect
|
|
||||||
github.com/butuzov/ireturn v0.3.0 // indirect
|
|
||||||
github.com/butuzov/mirror v1.1.0 // indirect
|
|
||||||
github.com/catenacyber/perfsprint v0.7.1 // indirect
|
|
||||||
github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
|
|
||||||
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
|
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
|
||||||
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
github.com/charithe/durationcheck v0.0.10 // indirect
|
github.com/charmbracelet/bubbles v0.18.0 // indirect
|
||||||
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
github.com/charmbracelet/bubbletea v0.26.4 // indirect
|
||||||
github.com/charmbracelet/bubbletea v0.24.2 // indirect
|
github.com/charmbracelet/lipgloss v0.11.0 // indirect
|
||||||
github.com/charmbracelet/glamour v0.6.0 // indirect
|
github.com/charmbracelet/x/ansi v0.1.2 // indirect
|
||||||
github.com/charmbracelet/lipgloss v0.7.1 // indirect
|
github.com/charmbracelet/x/input v0.1.0 // indirect
|
||||||
github.com/chavacava/garif v0.1.0 // indirect
|
github.com/charmbracelet/x/term v0.1.1 // indirect
|
||||||
|
github.com/charmbracelet/x/windows v0.1.0 // indirect
|
||||||
github.com/cheggaaa/pb v1.0.29 // indirect
|
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||||
github.com/ckaznocha/intrange v0.1.0 // indirect
|
github.com/cloudflare/circl v1.3.8 // indirect
|
||||||
github.com/cloudflare/circl v1.3.7 // indirect
|
github.com/compose-spec/compose-go/v2 v2.1.3 // indirect
|
||||||
github.com/compose-spec/compose-go/v2 v2.0.0-rc.8 // indirect
|
|
||||||
github.com/containerd/console v1.0.4 // indirect
|
github.com/containerd/console v1.0.4 // indirect
|
||||||
github.com/containerd/containerd v1.7.13 // indirect
|
github.com/containerd/containerd v1.7.19 // indirect
|
||||||
|
github.com/containerd/containerd/api v1.7.19 // indirect
|
||||||
github.com/containerd/continuity v0.4.3 // indirect
|
github.com/containerd/continuity v0.4.3 // indirect
|
||||||
|
github.com/containerd/errdefs v0.1.0 // indirect
|
||||||
github.com/containerd/log v0.1.0 // indirect
|
github.com/containerd/log v0.1.0 // indirect
|
||||||
github.com/containerd/ttrpc v1.2.2 // indirect
|
github.com/containerd/platforms v0.2.1 // indirect
|
||||||
|
github.com/containerd/ttrpc v1.2.5 // indirect
|
||||||
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
|
github.com/cyphar/filepath-securejoin v0.2.5 // indirect
|
||||||
github.com/curioswitch/go-reassign v0.2.0 // indirect
|
|
||||||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
|
||||||
github.com/daixiang0/gci v0.12.3 // indirect
|
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
|
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
|
||||||
github.com/denis-tingaikin/go-header v0.5.0 // indirect
|
github.com/djherbis/times v1.6.0 // indirect
|
||||||
github.com/djherbis/times v1.5.0 // indirect
|
github.com/docker/cli-docs-tool v0.8.0 // indirect
|
||||||
github.com/dlclark/regexp2 v1.4.0 // indirect
|
github.com/docker/distribution v2.8.3+incompatible // indirect
|
||||||
github.com/docker/cli-docs-tool v0.7.0 // indirect
|
github.com/docker/docker-credential-helpers v0.8.2 // indirect
|
||||||
github.com/docker/docker-credential-helpers v0.8.0 // indirect
|
|
||||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
|
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
|
||||||
github.com/docker/go-connections v0.5.0 // indirect
|
github.com/docker/go-connections v0.5.0 // indirect
|
||||||
github.com/docker/go-metrics v0.0.1 // indirect
|
github.com/docker/go-metrics v0.0.1 // indirect
|
||||||
github.com/docker/go-units v0.5.0 // indirect
|
github.com/docker/go-units v0.5.0 // indirect
|
||||||
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
|
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
||||||
github.com/edsrzf/mmap-go v1.1.0 // indirect
|
github.com/edsrzf/mmap-go v1.1.0 // indirect
|
||||||
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
||||||
github.com/emirpasic/gods v1.18.1 // indirect
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
github.com/erikgeiser/promptkit v0.9.0 // indirect
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
||||||
github.com/ettle/strcase v0.2.0 // indirect
|
github.com/fatih/color v1.17.0 // indirect
|
||||||
github.com/fatih/color v1.16.0 // indirect
|
|
||||||
github.com/fatih/structtag v1.2.0 // indirect
|
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/firefart/nonamedreturns v1.0.4 // indirect
|
|
||||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
github.com/fvbommel/sortorder v1.1.0 // indirect
|
github.com/fvbommel/sortorder v1.1.0 // indirect
|
||||||
github.com/fzipp/gocyclo v0.6.0 // indirect
|
|
||||||
github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect
|
|
||||||
github.com/ghostiam/protogetter v0.3.5 // indirect
|
|
||||||
github.com/go-critic/go-critic v0.11.2 // indirect
|
|
||||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // 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-billy/v5 v5.5.0 // indirect
|
||||||
github.com/go-git/go-git/v5 v5.11.0 // indirect
|
github.com/go-git/go-git/v5 v5.12.0 // indirect
|
||||||
|
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
||||||
github.com/go-logr/logr v1.4.1 // indirect
|
github.com/go-logr/logr v1.4.1 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.22.3 // indirect
|
||||||
github.com/go-toolsmith/astcast v1.1.0 // indirect
|
github.com/go-viper/mapstructure/v2 v2.0.0 // indirect
|
||||||
github.com/go-toolsmith/astcopy v1.1.0 // indirect
|
github.com/gofrs/flock v0.12.0 // indirect
|
||||||
github.com/go-toolsmith/astequal v1.2.0 // indirect
|
|
||||||
github.com/go-toolsmith/astfmt v1.1.0 // indirect
|
|
||||||
github.com/go-toolsmith/astp v1.1.0 // indirect
|
|
||||||
github.com/go-toolsmith/strparse v1.1.0 // indirect
|
|
||||||
github.com/go-toolsmith/typep v1.1.0 // indirect
|
|
||||||
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect
|
|
||||||
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
|
|
||||||
github.com/gobwas/glob v0.2.3 // indirect
|
|
||||||
github.com/gofrs/flock v0.8.1 // indirect
|
|
||||||
github.com/gofrs/uuid v4.2.0+incompatible // indirect
|
github.com/gofrs/uuid v4.2.0+incompatible // indirect
|
||||||
github.com/gogo/googleapis v1.4.1 // indirect
|
github.com/gogo/googleapis v1.4.1 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||||
github.com/golang/glog v1.2.0 // indirect
|
github.com/golang/glog v1.2.1 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
|
||||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
|
|
||||||
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
|
|
||||||
github.com/golangci/misspell v0.4.1 // indirect
|
|
||||||
github.com/golangci/plugin-module-register v0.1.1 // indirect
|
|
||||||
github.com/golangci/revgrep v0.5.2 // indirect
|
|
||||||
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
|
|
||||||
github.com/google/gnostic-models v0.6.8 // indirect
|
github.com/google/gnostic-models v0.6.8 // indirect
|
||||||
github.com/google/go-cmp v0.6.0 // indirect
|
github.com/google/go-cmp v0.6.0 // indirect
|
||||||
github.com/google/go-querystring v1.1.0 // indirect
|
github.com/google/go-querystring v1.1.0 // indirect
|
||||||
github.com/google/gofuzz v1.2.0 // indirect
|
github.com/google/gofuzz v1.2.0 // indirect
|
||||||
github.com/google/pprof v0.0.0-20230406165453-00490a63f317 // indirect
|
|
||||||
github.com/google/s2a-go v0.1.7 // indirect
|
github.com/google/s2a-go v0.1.7 // indirect
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/google/wire v0.6.0 // indirect
|
github.com/google/wire v0.6.0 // indirect
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
||||||
github.com/gordonklaus/ineffassign v0.1.0 // indirect
|
|
||||||
github.com/gorilla/css v1.0.0 // indirect
|
|
||||||
github.com/gorilla/mux v1.8.0 // indirect
|
github.com/gorilla/mux v1.8.0 // indirect
|
||||||
github.com/gorilla/websocket v1.5.0 // indirect
|
github.com/gorilla/websocket v1.5.0 // indirect
|
||||||
github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
|
|
||||||
github.com/gostaticanalysis/comment v1.4.2 // indirect
|
|
||||||
github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
|
|
||||||
github.com/gostaticanalysis/nilerr v0.1.1 // indirect
|
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
|
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.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/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-cty-funcs v0.0.0-20230405223818-a090f58aa992 // indirect
|
github.com/hashicorp/go-cty-funcs v0.0.0-20230405223818-a090f58aa992 // indirect
|
||||||
github.com/hashicorp/go-hclog v1.5.0 // indirect
|
|
||||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
|
||||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||||
github.com/hashicorp/go-plugin v1.6.0 // indirect
|
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.5 // indirect
|
|
||||||
github.com/hashicorp/go-rootcerts v1.0.2 // 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.8 // indirect
|
||||||
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect
|
|
||||||
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // 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-sockaddr v1.0.6 // 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 v1.0.0 // indirect
|
||||||
github.com/hashicorp/hcl/v2 v2.19.1 // indirect
|
github.com/hashicorp/hcl/v2 v2.20.1 // indirect
|
||||||
github.com/hashicorp/vault/api v1.8.2 // indirect
|
github.com/hashicorp/vault/api v1.12.0 // 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/iancoleman/strcase v0.2.0 // indirect
|
||||||
github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect
|
|
||||||
github.com/imdario/mergo v0.3.16 // indirect
|
github.com/imdario/mergo v0.3.16 // indirect
|
||||||
github.com/in-toto/in-toto-golang v0.5.0 // indirect
|
github.com/in-toto/in-toto-golang v0.5.0 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
||||||
github.com/jgautheron/goconst v1.7.0 // indirect
|
|
||||||
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
|
|
||||||
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
|
|
||||||
github.com/jjti/go-spancheck v0.5.3 // indirect
|
|
||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/julz/importas v0.1.0 // indirect
|
|
||||||
github.com/karamaru-alpha/copyloopvar v1.0.8 // indirect
|
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
|
||||||
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||||
github.com/kisielk/errcheck v1.7.0 // indirect
|
github.com/klauspost/compress v1.17.9 // indirect
|
||||||
github.com/kkHAIKE/contextcheck v1.1.4 // indirect
|
|
||||||
github.com/klauspost/compress v1.17.4 // indirect
|
|
||||||
github.com/kulti/thelper v0.6.3 // indirect
|
|
||||||
github.com/kunwardeep/paralleltest v1.0.10 // indirect
|
|
||||||
github.com/kylelemons/godebug v1.1.0 // indirect
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
||||||
github.com/kyoh86/exportloopref v0.1.11 // indirect
|
|
||||||
github.com/ldez/gomoddirectives v0.2.3 // indirect
|
|
||||||
github.com/ldez/tagliatelle v0.5.0 // indirect
|
|
||||||
github.com/leonklingele/grouper v1.1.1 // indirect
|
|
||||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||||
github.com/lufeee/execinquery v1.2.1 // indirect
|
|
||||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
|
||||||
github.com/macabu/inamedparam v0.1.3 // indirect
|
|
||||||
github.com/magiconair/properties v1.8.6 // indirect
|
|
||||||
github.com/mailru/easyjson v0.7.7 // indirect
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
github.com/maratori/testableexamples v1.0.0 // indirect
|
|
||||||
github.com/maratori/testpackage v1.1.1 // indirect
|
|
||||||
github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect
|
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
github.com/mattn/go-localereader v0.0.1 // 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.15 // indirect
|
||||||
github.com/mattn/go-shellwords v1.0.12 // indirect
|
github.com/mattn/go-shellwords v1.0.12 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||||
github.com/mgechev/revive v1.3.7 // indirect
|
|
||||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
|
||||||
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
|
|
||||||
github.com/miekg/pkcs11 v1.1.1 // indirect
|
github.com/miekg/pkcs11 v1.1.1 // indirect
|
||||||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||||
github.com/mitchellh/go-ps v1.0.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/go-wordwrap v1.0.1 // indirect
|
||||||
|
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
|
||||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||||
github.com/moby/docker-image-spec v1.3.1 // indirect
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
||||||
github.com/moby/locker v1.0.1 // indirect
|
github.com/moby/locker v1.0.1 // indirect
|
||||||
github.com/moby/moby v25.0.4+incompatible // indirect
|
|
||||||
github.com/moby/spdystream v0.2.0 // indirect
|
github.com/moby/spdystream v0.2.0 // indirect
|
||||||
github.com/moby/sys/mountinfo v0.7.1 // indirect
|
github.com/moby/sys/mountinfo v0.7.1 // indirect
|
||||||
github.com/moby/sys/sequential v0.5.0 // indirect
|
github.com/moby/sys/sequential v0.5.0 // indirect
|
||||||
@@ -309,123 +195,67 @@ require (
|
|||||||
github.com/moby/term v0.5.0 // indirect
|
github.com/moby/term v0.5.0 // indirect
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
github.com/moricho/tparallel v0.3.1 // indirect
|
|
||||||
github.com/morikuni/aec v1.0.0 // indirect
|
github.com/morikuni/aec v1.0.0 // indirect
|
||||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||||
github.com/muesli/cancelreader v0.2.2 // indirect
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||||
github.com/muesli/termenv v0.15.2 // indirect
|
github.com/muesli/termenv v0.15.2 // indirect
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
||||||
github.com/nakabonne/nestif v0.3.1 // indirect
|
|
||||||
github.com/natefinch/atomic v1.0.1 // indirect
|
github.com/natefinch/atomic v1.0.1 // indirect
|
||||||
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
|
github.com/nxadm/tail v1.4.11 // indirect
|
||||||
github.com/nishanths/exhaustive v0.12.0 // indirect
|
github.com/onsi/ginkgo/v2 v2.17.3 // indirect
|
||||||
github.com/nishanths/predeclared v0.2.2 // indirect
|
github.com/onsi/gomega v1.33.1 // indirect
|
||||||
github.com/nunnatsa/ginkgolinter v0.16.1 // indirect
|
|
||||||
github.com/oklog/run v1.1.0 // indirect
|
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
|
||||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||||
github.com/opencontainers/image-spec v1.1.0-rc5 // indirect
|
github.com/opencontainers/image-spec v1.1.0 // indirect
|
||||||
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||||
github.com/pelletier/go-toml/v2 v2.2.0 // indirect
|
github.com/pelletier/go-toml/v2 v2.2.2 // 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/fx v0.1.6 // indirect
|
||||||
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // 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/pjbgf/sha1cd v0.3.0 // indirect
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pkg/term v1.1.0 // indirect
|
github.com/pkg/term v1.1.0 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/polyfloyd/go-errorlint v1.4.8 // indirect
|
|
||||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
|
||||||
github.com/prometheus/client_golang v1.17.0 // indirect
|
github.com/prometheus/client_golang v1.17.0 // indirect
|
||||||
github.com/prometheus/client_model v0.5.0 // indirect
|
github.com/prometheus/client_model v0.5.0 // indirect
|
||||||
github.com/prometheus/common v0.44.0 // indirect
|
github.com/prometheus/common v0.44.0 // indirect
|
||||||
github.com/prometheus/procfs v0.12.0 // indirect
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||||
github.com/pulumi/esc v0.6.2 // indirect
|
github.com/pulumi/esc v0.9.1 // indirect
|
||||||
github.com/pulumi/pulumi-yaml v1.6.0 // indirect
|
github.com/pulumi/inflector v0.1.1 // indirect
|
||||||
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
github.com/quasilyte/gogrep v0.5.0 // indirect
|
|
||||||
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
|
|
||||||
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
|
|
||||||
github.com/rivo/uniseg v0.4.4 // indirect
|
|
||||||
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
||||||
github.com/ryancurrah/gomodguard v1.3.1 // indirect
|
|
||||||
github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
|
|
||||||
github.com/ryanuber/go-glob v1.0.0 // indirect
|
github.com/ryanuber/go-glob v1.0.0 // indirect
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
||||||
github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect
|
|
||||||
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
|
||||||
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
|
|
||||||
github.com/sashamelentyev/usestdlibvars v1.25.0 // indirect
|
|
||||||
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
|
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
|
||||||
github.com/securego/gosec/v2 v2.19.0 // indirect
|
|
||||||
github.com/segmentio/asm v1.1.3 // indirect
|
github.com/segmentio/asm v1.1.3 // indirect
|
||||||
github.com/segmentio/encoding v0.3.5 // indirect
|
github.com/segmentio/encoding v0.3.5 // indirect
|
||||||
github.com/sergi/go-diff v1.3.1 // indirect
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
||||||
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
|
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
|
||||||
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
|
|
||||||
github.com/shibumi/go-pathspec v1.3.0 // indirect
|
github.com/shibumi/go-pathspec v1.3.0 // indirect
|
||||||
github.com/shirou/gopsutil/v3 v3.24.2 // indirect
|
github.com/skeema/knownhosts v1.2.2 // indirect
|
||||||
github.com/shoenig/go-m1cpu v0.1.6 // indirect
|
|
||||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
|
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
|
|
||||||
github.com/sivchari/containedctx v1.0.3 // indirect
|
|
||||||
github.com/sivchari/tenv v1.7.1 // indirect
|
|
||||||
github.com/skeema/knownhosts v1.2.1 // indirect
|
|
||||||
github.com/sonatard/noctx v0.0.2 // indirect
|
|
||||||
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
|
|
||||||
github.com/sourcegraph/go-diff v0.7.0 // indirect
|
|
||||||
github.com/spf13/cast v1.5.0 // indirect
|
github.com/spf13/cast v1.5.0 // indirect
|
||||||
github.com/spf13/cobra v1.8.0 // indirect
|
github.com/spf13/cobra v1.8.1 // indirect
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/spf13/viper v1.12.0 // indirect
|
github.com/spf13/viper v1.12.0 // indirect
|
||||||
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
|
|
||||||
github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect
|
|
||||||
github.com/stretchr/objx v0.5.2 // indirect
|
|
||||||
github.com/subosito/gotenv v1.4.1 // indirect
|
github.com/subosito/gotenv v1.4.1 // indirect
|
||||||
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
|
|
||||||
github.com/tdakkota/asciicheck v0.2.0 // indirect
|
|
||||||
github.com/tetafro/godot v1.4.16 // indirect
|
|
||||||
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
||||||
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect
|
github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 // indirect
|
||||||
github.com/timonwong/loggercheck v0.9.4 // indirect
|
|
||||||
github.com/tklauser/go-sysconf v0.3.12 // indirect
|
|
||||||
github.com/tklauser/numcpus v0.6.1 // indirect
|
|
||||||
github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect
|
|
||||||
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
|
|
||||||
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect
|
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect
|
||||||
github.com/tonistiigi/vt100 v0.0.0-20230623042737-f9a4f7ef6531 // indirect
|
github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab // indirect
|
||||||
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // 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-client-go v2.30.0+incompatible // indirect
|
||||||
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
||||||
github.com/ulikunitz/xz v0.5.11 // indirect
|
github.com/ulikunitz/xz v0.5.12 // indirect
|
||||||
github.com/ultraware/funlen v0.1.0 // indirect
|
|
||||||
github.com/ultraware/whitespace v0.1.0 // indirect
|
|
||||||
github.com/uudashr/gocognit v1.1.2 // indirect
|
|
||||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
||||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||||
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
||||||
github.com/xen0n/gosmopolitan v1.2.2 // indirect
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
github.com/yagipy/maintidx v1.0.0 // indirect
|
github.com/zclconf/go-cty v1.14.4 // indirect
|
||||||
github.com/yeya24/promlinter v0.2.0 // indirect
|
|
||||||
github.com/ykadowak/zerologlint v0.1.5 // indirect
|
|
||||||
github.com/yuin/goldmark v1.5.2 // indirect
|
|
||||||
github.com/yuin/goldmark-emoji v1.0.1 // indirect
|
|
||||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
||||||
github.com/zclconf/go-cty v1.14.1 // indirect
|
|
||||||
gitlab.com/bosi/decorder v0.4.1 // indirect
|
|
||||||
go-simpler.org/musttag v0.9.0 // indirect
|
|
||||||
go-simpler.org/sloglint v0.5.0 // indirect
|
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect
|
||||||
@@ -437,53 +267,43 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect
|
|
||||||
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk v1.22.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.22.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect
|
go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.0.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
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
|
||||||
go.uber.org/automaxprocs v1.5.3 // indirect
|
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
|
||||||
go.uber.org/zap v1.27.0 // indirect
|
|
||||||
gocloud.dev v0.37.0 // indirect
|
gocloud.dev v0.37.0 // indirect
|
||||||
gocloud.dev/secrets/hashivault v0.28.0 // indirect
|
gocloud.dev/secrets/hashivault v0.37.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
golang.org/x/mod v0.18.0 // indirect
|
||||||
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
|
golang.org/x/net v0.26.0 // indirect
|
||||||
golang.org/x/mod v0.16.0 // indirect
|
|
||||||
golang.org/x/net v0.22.0 // indirect
|
|
||||||
golang.org/x/oauth2 v0.18.0 // indirect
|
golang.org/x/oauth2 v0.18.0 // indirect
|
||||||
golang.org/x/sync v0.6.0 // indirect
|
golang.org/x/sync v0.7.0 // indirect
|
||||||
golang.org/x/sys v0.18.0 // indirect
|
golang.org/x/sys v0.24.0 // indirect
|
||||||
golang.org/x/term v0.18.0 // indirect
|
golang.org/x/term v0.22.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.16.0 // indirect
|
||||||
golang.org/x/time v0.5.0 // indirect
|
golang.org/x/time v0.5.0 // indirect
|
||||||
golang.org/x/tools v0.19.0 // indirect
|
golang.org/x/tools v0.22.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
||||||
google.golang.org/api v0.169.0 // indirect
|
google.golang.org/api v0.169.0 // indirect
|
||||||
google.golang.org/appengine v1.6.8 // indirect
|
google.golang.org/appengine v1.6.8 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
|
||||||
google.golang.org/grpc v1.62.1 // indirect
|
google.golang.org/grpc v1.64.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||||
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
honnef.co/go/tools v0.4.7 // indirect
|
|
||||||
k8s.io/api v0.29.2 // indirect
|
k8s.io/api v0.29.2 // indirect
|
||||||
k8s.io/apimachinery v0.29.2 // indirect
|
k8s.io/apimachinery v0.29.2 // indirect
|
||||||
k8s.io/apiserver v0.29.2 // indirect
|
|
||||||
k8s.io/client-go v0.29.2 // indirect
|
k8s.io/client-go v0.29.2 // indirect
|
||||||
k8s.io/klog/v2 v2.110.1 // indirect
|
k8s.io/klog/v2 v2.110.1 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
|
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
|
||||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
|
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
|
||||||
lukechampine.com/frand v1.4.2 // indirect
|
lukechampine.com/frand v1.4.2 // indirect
|
||||||
mvdan.cc/gofumpt v0.6.0 // indirect
|
mvdan.cc/gofumpt v0.6.0 // indirect
|
||||||
mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 // indirect
|
|
||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
||||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -155,14 +155,14 @@ type CacheFromGitHubActions struct {
|
|||||||
|
|
||||||
// Annotate sets docstrings on CacheFromGitHubActions.
|
// Annotate sets docstrings on CacheFromGitHubActions.
|
||||||
func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) {
|
func (c *CacheFromGitHubActions) Annotate(a infer.Annotator) {
|
||||||
a.SetDefault(&c.URL, "", "ACTIONS_RUNTIME_URL")
|
a.SetDefault(&c.URL, "", "ACTIONS_CACHE_URL")
|
||||||
a.SetDefault(&c.Token, "", "ACTIONS_RUNTIME_TOKEN")
|
a.SetDefault(&c.Token, "", "ACTIONS_RUNTIME_TOKEN")
|
||||||
a.SetDefault(&c.Scope, "", "buildkit")
|
a.SetDefault(&c.Scope, "", "buildkit")
|
||||||
|
|
||||||
a.Describe(&c.URL, dedent(`
|
a.Describe(&c.URL, dedent(`
|
||||||
The cache server URL to use for artifacts.
|
The cache server URL to use for artifacts.
|
||||||
|
|
||||||
Defaults to "$ACTIONS_RUNTIME_URL", although a separate action like
|
Defaults to "$ACTIONS_CACHE_URL", although a separate action like
|
||||||
"crazy-max/ghaction-github-runtime" is recommended to expose this
|
"crazy-max/ghaction-github-runtime" is recommended to expose this
|
||||||
environment variable to your jobs.
|
environment variable to your jobs.
|
||||||
`))
|
`))
|
||||||
@@ -347,8 +347,7 @@ type CacheWithMode struct {
|
|||||||
|
|
||||||
// Annotate sets docstrings and defaults on CacheWithMode.
|
// Annotate sets docstrings and defaults on CacheWithMode.
|
||||||
func (c *CacheWithMode) Annotate(a infer.Annotator) {
|
func (c *CacheWithMode) Annotate(a infer.Annotator) {
|
||||||
m := Min
|
a.SetDefault(&c.Mode, Min)
|
||||||
a.SetDefault(&c.Mode, &m)
|
|
||||||
a.Describe(&c.Mode, dedent(`
|
a.Describe(&c.Mode, dedent(`
|
||||||
The cache mode to use. Defaults to "min".
|
The cache mode to use. Defaults to "min".
|
||||||
`))
|
`))
|
||||||
@@ -560,8 +559,7 @@ type CacheWithCompression struct {
|
|||||||
|
|
||||||
// Annotate sets docstrings and defaults on CacheWithCompression.
|
// Annotate sets docstrings and defaults on CacheWithCompression.
|
||||||
func (c *CacheWithCompression) Annotate(a infer.Annotator) {
|
func (c *CacheWithCompression) Annotate(a infer.Annotator) {
|
||||||
gz := Gzip
|
a.SetDefault(&c.Compression, Gzip)
|
||||||
a.SetDefault(&c.Compression, &gz)
|
|
||||||
a.SetDefault(&c.CompressionLevel, 0)
|
a.SetDefault(&c.CompressionLevel, 0)
|
||||||
a.SetDefault(&c.ForceCompression, false)
|
a.SetDefault(&c.ForceCompression, false)
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package internal
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -40,7 +41,6 @@ import (
|
|||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
||||||
)
|
)
|
||||||
@@ -81,6 +81,9 @@ func wrap(host *host, registries ...Registry) (*cli, error) {
|
|||||||
|
|
||||||
auths := map[string]cfgtypes.AuthConfig{}
|
auths := map[string]cfgtypes.AuthConfig{}
|
||||||
for k, v := range host.auths {
|
for k, v := range host.auths {
|
||||||
|
if k != config.DockerRegistryAuth {
|
||||||
|
k = credentials.ConvertToHostname(k)
|
||||||
|
}
|
||||||
auths[k] = cfgtypes.AuthConfig{
|
auths[k] = cfgtypes.AuthConfig{
|
||||||
ServerAddress: v.ServerAddress,
|
ServerAddress: v.ServerAddress,
|
||||||
Username: v.Username,
|
Username: v.Username,
|
||||||
@@ -95,10 +98,6 @@ func wrap(host *host, registries ...Registry) (*cli, error) {
|
|||||||
if key == "" {
|
if key == "" {
|
||||||
key = h.Hostname
|
key = h.Hostname
|
||||||
}
|
}
|
||||||
// Add a scheme if it's missing.
|
|
||||||
if !strings.Contains(key, "://") {
|
|
||||||
key = "https://" + key
|
|
||||||
}
|
|
||||||
|
|
||||||
auths[key] = cfgtypes.AuthConfig{
|
auths[key] = cfgtypes.AuthConfig{
|
||||||
ServerAddress: h.Hostname,
|
ServerAddress: h.Hostname,
|
||||||
@@ -138,8 +137,8 @@ func (c *cli) Out() *streams.Out {
|
|||||||
return streams.NewOut(c.w)
|
return streams.NewOut(c.w)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) Err() io.Writer {
|
func (c *cli) Err() *streams.Out {
|
||||||
return &c.err
|
return streams.NewOut(&c.err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// rc returns a registry client with matching auth.
|
// rc returns a registry client with matching auth.
|
||||||
@@ -158,7 +157,7 @@ func (c *cli) rc() *regclient.RegClient {
|
|||||||
|
|
||||||
// tail is meant to be called as a goroutine and will pipe output from the CLI
|
// tail is meant to be called as a goroutine and will pipe output from the CLI
|
||||||
// back to the Pulumi engine. Requires a corresponding call to close.
|
// back to the Pulumi engine. Requires a corresponding call to close.
|
||||||
func (c *cli) tail(ctx provider.Context) {
|
func (c *cli) tail(ctx context.Context) {
|
||||||
c.done = make(chan struct{}, 1)
|
c.done = make(chan struct{}, 1)
|
||||||
defer func() {
|
defer func() {
|
||||||
c.done <- struct{}{}
|
c.done <- struct{}{}
|
||||||
@@ -172,15 +171,19 @@ func (c *cli) tail(ctx provider.Context) {
|
|||||||
s := bufio.NewScanner(c.r)
|
s := bufio.NewScanner(c.r)
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
text := s.Text()
|
text := s.Text()
|
||||||
ctx.LogStatus(diag.Info, text)
|
provider.GetLogger(ctx).InfoStatus(text)
|
||||||
_, _ = b.WriteString(text + "\n")
|
_, _ = b.WriteString(text + "\n")
|
||||||
}
|
}
|
||||||
ctx.LogStatus(diag.Info, "") // clear confusing "DONE" statements.
|
provider.GetLogger(ctx).InfoStatus("") // clear confusing "DONE" statements.
|
||||||
|
|
||||||
if c.dumplogs {
|
if c.dumplogs {
|
||||||
// Persist the full Docker output on error for easier debugging.
|
// Persist the full Docker output on error for easier debugging.
|
||||||
ctx.Log(diag.Info, b.String())
|
if b.Len() > 0 {
|
||||||
ctx.Log(diag.Error, c.err.String())
|
provider.GetLogger(ctx).Info(b.String())
|
||||||
|
}
|
||||||
|
if c.err.Len() > 0 {
|
||||||
|
provider.GetLogger(ctx).Error(c.err.String())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ func TestExec(t *testing.T) {
|
|||||||
func TestWrappedAuth(t *testing.T) {
|
func TestWrappedAuth(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
|
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
|
||||||
|
|
||||||
|
realhost, err := newHost(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
h := &host{
|
h := &host{
|
||||||
auths: map[string]types.AuthConfig{
|
auths: map[string]types.AuthConfig{
|
||||||
ecr: {
|
ecr: {
|
||||||
@@ -50,7 +54,7 @@ func TestWrappedAuth(t *testing.T) {
|
|||||||
Password: "host-aws-password",
|
Password: "host-aws-password",
|
||||||
ServerAddress: ecr,
|
ServerAddress: ecr,
|
||||||
},
|
},
|
||||||
"misc": {
|
"https://misc": { // Legacy config includes http/https scheme.
|
||||||
Username: "host-misc-user",
|
Username: "host-misc-user",
|
||||||
Password: "host-misc-password",
|
Password: "host-misc-password",
|
||||||
ServerAddress: "misc",
|
ServerAddress: "misc",
|
||||||
@@ -71,25 +75,34 @@ func TestWrappedAuth(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err = wrap(h, registries...)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
cli, err := wrap(h, registries...)
|
cli, err := wrap(h, registries...)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Contains(t, cli.auths, ecr)
|
expected := map[string]types.AuthConfig{
|
||||||
aws := cli.auths[ecr]
|
"1234.dkr.ecr.us-west-2.amazonaws.com": {
|
||||||
assert.Equal(t, "resource-aws-user", aws.Username)
|
Username: "resource-aws-user",
|
||||||
assert.Equal(t, "resource-aws-password", aws.Password)
|
Password: "resource-aws-password",
|
||||||
assert.Equal(t, "1234.dkr.ecr.us-west-2.amazonaws.com", aws.ServerAddress)
|
ServerAddress: "1234.dkr.ecr.us-west-2.amazonaws.com",
|
||||||
|
},
|
||||||
|
config.DockerRegistryAuth: {
|
||||||
|
Username: "resource-dockerhub-user",
|
||||||
|
Password: "resource-dockerhub-password",
|
||||||
|
ServerAddress: config.DockerRegistryDNS,
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
Username: "host-misc-user",
|
||||||
|
Password: "host-misc-password",
|
||||||
|
ServerAddress: "misc",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
assert.Equal(t, expected, cli.auths)
|
||||||
|
assert.Len(t, h.auths, 2) // In-memory host auth is unchanged.
|
||||||
|
|
||||||
require.Contains(t, cli.auths, config.DockerRegistryAuth)
|
// Assert that our on-disk host's auth is untouched.
|
||||||
dockerhub := cli.auths[config.DockerRegistryAuth]
|
realhostRefreshed, err := newHost(nil)
|
||||||
assert.Equal(t, "resource-dockerhub-user", dockerhub.Username)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "resource-dockerhub-password", dockerhub.Password)
|
assert.Equal(t, realhost.auths, realhostRefreshed.auths)
|
||||||
assert.Equal(t, config.DockerRegistryDNS, dockerhub.ServerAddress)
|
|
||||||
|
|
||||||
// Auths derived from the host should be untouched, e.g. no scheme added, etc.
|
|
||||||
require.Contains(t, cli.auths, "misc")
|
|
||||||
misc := cli.auths["misc"]
|
|
||||||
assert.Equal(t, "host-misc-user", misc.Username)
|
|
||||||
assert.Equal(t, "host-misc-password", misc.Password)
|
|
||||||
assert.Equal(t, "misc", misc.ServerAddress)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,20 +45,19 @@ import (
|
|||||||
"github.com/regclient/regclient/types/ref"
|
"github.com/regclient/regclient/types/ref"
|
||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Client handles all our Docker API calls.
|
// Client handles all our Docker API calls.
|
||||||
type Client interface {
|
type Client interface {
|
||||||
Build(ctx provider.Context, b Build) (*client.SolveResponse, error)
|
Build(ctx context.Context, b Build) (*client.SolveResponse, error)
|
||||||
BuildKitEnabled() (bool, error)
|
BuildKitEnabled() (bool, error)
|
||||||
Inspect(ctx context.Context, id string) ([]descriptor.Descriptor, error)
|
Inspect(ctx context.Context, id string) ([]descriptor.Descriptor, error)
|
||||||
Delete(ctx context.Context, id string) error
|
Delete(ctx context.Context, id string) error
|
||||||
|
|
||||||
ManifestCreate(ctx provider.Context, push bool, target string, refs ...string) error
|
ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error
|
||||||
ManifestInspect(ctx provider.Context, target string) (string, error)
|
ManifestInspect(ctx context.Context, target string) (string, error)
|
||||||
ManifestDelete(ctx provider.Context, target string) error
|
ManifestDelete(ctx context.Context, target string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build encapsulates all of the user-provider build parameters and options.
|
// Build encapsulates all of the user-provider build parameters and options.
|
||||||
@@ -98,13 +97,12 @@ func newDockerCLI(config *Config) (*command.DockerCli, error) {
|
|||||||
// "default", if no targets were specified) to SolveResponses, which capture
|
// "default", if no targets were specified) to SolveResponses, which capture
|
||||||
// the build's digest and tags (if any).
|
// the build's digest and tags (if any).
|
||||||
func (c *cli) Build(
|
func (c *cli) Build(
|
||||||
pctx provider.Context,
|
ctx context.Context,
|
||||||
build Build,
|
build Build,
|
||||||
) (*client.SolveResponse, error) {
|
) (*client.SolveResponse, error) {
|
||||||
ctx := context.Context(pctx)
|
|
||||||
opts := build.BuildOptions()
|
opts := build.BuildOptions()
|
||||||
|
|
||||||
go c.tail(pctx)
|
go c.tail(ctx)
|
||||||
defer contract.IgnoreClose(c)
|
defer contract.IgnoreClose(c)
|
||||||
|
|
||||||
if build.ShouldExec() {
|
if build.ShouldExec() {
|
||||||
@@ -130,11 +128,12 @@ func (c *cli) Build(
|
|||||||
_ = printer.Wait()
|
_ = printer.Wait()
|
||||||
for _, w := range printer.Warnings() {
|
for _, w := range printer.Warnings() {
|
||||||
b := &bytes.Buffer{}
|
b := &bytes.Buffer{}
|
||||||
fmt.Fprint(b, w.Short)
|
_, _ = b.Write(w.Short)
|
||||||
for _, d := range w.Detail {
|
for _, d := range w.Detail {
|
||||||
fmt.Fprintf(b, "\n%s", d)
|
_ = b.WriteByte('\n')
|
||||||
|
_, _ = b.Write(d)
|
||||||
}
|
}
|
||||||
pctx.Log(diag.Warning, b.String())
|
provider.GetLogger(ctx).Warning(b.String())
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -247,7 +246,7 @@ func (c *cli) BuildKitEnabled() (bool, error) {
|
|||||||
return c.Cli.BuildKitEnabled()
|
return c.Cli.BuildKitEnabled()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestCreate(ctx provider.Context, push bool, target string, refs ...string) error {
|
func (c *cli) ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error {
|
||||||
go c.tail(ctx)
|
go c.tail(ctx)
|
||||||
defer contract.IgnoreClose(c)
|
defer contract.IgnoreClose(c)
|
||||||
|
|
||||||
@@ -271,11 +270,11 @@ func (c *cli) ManifestCreate(ctx provider.Context, push bool, target string, ref
|
|||||||
cmd.SetErr(c.Err())
|
cmd.SetErr(c.Err())
|
||||||
cmd.SetOut(c.Out())
|
cmd.SetOut(c.Out())
|
||||||
|
|
||||||
ctx.Log(diag.Debug, fmt.Sprint("creating manifest with args", args))
|
provider.GetLogger(ctx).Debug(fmt.Sprint("creating manifest with args", args))
|
||||||
return cmd.ExecuteContext(ctx)
|
return cmd.ExecuteContext(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestInspect(ctx provider.Context, target string) (string, error) {
|
func (c *cli) ManifestInspect(ctx context.Context, target string) (string, error) {
|
||||||
rc := c.rc()
|
rc := c.rc()
|
||||||
|
|
||||||
ref, err := ref.New(target)
|
ref, err := ref.New(target)
|
||||||
@@ -291,7 +290,7 @@ func (c *cli) ManifestInspect(ctx provider.Context, target string) (string, erro
|
|||||||
return string(m.GetDescriptor().Digest), nil
|
return string(m.GetDescriptor().Digest), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestDelete(ctx provider.Context, target string) error {
|
func (c *cli) ManifestDelete(ctx context.Context, target string) error {
|
||||||
rc := c.rc()
|
rc := c.rc()
|
||||||
|
|
||||||
ref, err := ref.New(target)
|
ref, err := ref.New(target)
|
||||||
@@ -299,9 +298,9 @@ func (c *cli) ManifestDelete(ctx provider.Context, target string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = rc.ManifestDelete(context.Context(ctx), ref)
|
err = rc.ManifestDelete(ctx, ref)
|
||||||
if errors.Is(err, errs.ErrHTTPStatus) {
|
if errors.Is(err, errs.ErrHTTPStatus) {
|
||||||
ctx.Log(diag.Warning, "this registry does not support deletions")
|
provider.GetLogger(ctx).Warning("this registry does not support deletions")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ package internal
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"io"
|
||||||
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -24,9 +26,6 @@ import (
|
|||||||
"github.com/docker/docker/api/types/registry"
|
"github.com/docker/docker/api/types/registry"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"go.uber.org/mock/gomock"
|
|
||||||
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAuth(t *testing.T) {
|
func TestAuth(t *testing.T) {
|
||||||
@@ -79,21 +78,9 @@ func TestCustomHost(t *testing.T) {
|
|||||||
|
|
||||||
func TestBuild(t *testing.T) {
|
func TestBuild(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
// Workaround for https://github.com/pulumi/pulumi-go-provider/issues/159
|
|
||||||
ctrl, ctx := gomock.WithContext(context.Background(), t)
|
|
||||||
pctx := NewMockProviderContext(ctrl)
|
|
||||||
pctx.EXPECT().Log(gomock.Any(), gomock.Any()).AnyTimes()
|
|
||||||
pctx.EXPECT().LogStatus(gomock.Any(), gomock.Any()).AnyTimes()
|
|
||||||
pctx.EXPECT().Done().Return(ctx.Done()).AnyTimes()
|
|
||||||
pctx.EXPECT().
|
|
||||||
Value(gomock.Any()).
|
|
||||||
DoAndReturn(func(key any) any { return ctx.Value(key) }).
|
|
||||||
AnyTimes()
|
|
||||||
pctx.EXPECT().Err().Return(ctx.Err()).AnyTimes()
|
|
||||||
pctx.EXPECT().Deadline().Return(ctx.Deadline()).AnyTimes()
|
|
||||||
|
|
||||||
tmpdir := t.TempDir()
|
tmpdir := t.TempDir()
|
||||||
max := Max
|
Max := Max
|
||||||
|
|
||||||
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
||||||
|
|
||||||
@@ -135,7 +122,7 @@ func TestBuild(t *testing.T) {
|
|||||||
Tags: []string{"cached"},
|
Tags: []string{"cached"},
|
||||||
CacheTo: []CacheTo{{Local: &CacheToLocal{
|
CacheTo: []CacheTo{{Local: &CacheToLocal{
|
||||||
Dest: filepath.Join(tmpdir, "cache"),
|
Dest: filepath.Join(tmpdir, "cache"),
|
||||||
CacheWithMode: CacheWithMode{Mode: &max},
|
CacheWithMode: CacheWithMode{Mode: &Max},
|
||||||
}}},
|
}}},
|
||||||
CacheFrom: []CacheFrom{{Local: &CacheFromLocal{
|
CacheFrom: []CacheFrom{{Local: &CacheFromLocal{
|
||||||
Src: filepath.Join(tmpdir, "cache"),
|
Src: filepath.Join(tmpdir, "cache"),
|
||||||
@@ -300,12 +287,13 @@ func TestBuild(t *testing.T) {
|
|||||||
if tt.skip {
|
if tt.skip {
|
||||||
t.Skip()
|
t.Skip()
|
||||||
}
|
}
|
||||||
|
ctx := context.Background()
|
||||||
cli := testcli(t, true, tt.auths...)
|
cli := testcli(t, true, tt.auths...)
|
||||||
|
|
||||||
build, err := tt.args.toBuild(pctx, false)
|
build, err := tt.args.toBuild(ctx, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cli.Build(pctx, build)
|
_, err = cli.Build(ctx, build)
|
||||||
assert.NoError(t, err, cli.err.String())
|
assert.NoError(t, err, cli.err.String())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -323,7 +311,7 @@ func TestInspect(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
cli := testcli(t, false)
|
cli := testcli(t, false)
|
||||||
descriptors, err := cli.Inspect(context.Background(), "pulumibot/myapp:buildx")
|
descriptors, err := cli.Inspect(context.Background(), "pulumibot/myapp:buildx")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(
|
assert.Equal(
|
||||||
t,
|
t,
|
||||||
"application/vnd.docker.distribution.manifest.v2+json",
|
"application/vnd.docker.distribution.manifest.v2+json",
|
||||||
@@ -366,14 +354,22 @@ func TestNormalizeReference(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//nolint:paralleltest // Overrides default logger.
|
||||||
func TestBuildError(t *testing.T) {
|
func TestBuildError(t *testing.T) {
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
if os.Getenv("CI") != "" {
|
if os.Getenv("CI") != "" {
|
||||||
t.Skip("flaky on CI for some reason")
|
t.Skip("flaky on CI for some reason")
|
||||||
}
|
}
|
||||||
|
|
||||||
ctrl, ctx := gomock.WithContext(context.Background(), t)
|
l := slog.Default()
|
||||||
|
defer slog.SetDefault(l)
|
||||||
|
|
||||||
|
// Override go-provider's default logger to capture and tee to stdout.
|
||||||
|
logger := &bytes.Buffer{}
|
||||||
|
slog.SetDefault(
|
||||||
|
slog.New(
|
||||||
|
slog.NewTextHandler(io.MultiWriter(logger, os.Stdout), nil),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
||||||
|
|
||||||
@@ -383,28 +379,14 @@ func TestBuildError(t *testing.T) {
|
|||||||
Inline: "FROM alpine\nRUN echo hello\nRUN badcmd",
|
Inline: "FROM alpine\nRUN echo hello\nRUN badcmd",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
logged := bytes.Buffer{}
|
|
||||||
|
|
||||||
pctx := NewMockProviderContext(ctrl)
|
|
||||||
pctx.EXPECT().Done().Return(ctx.Done()).AnyTimes()
|
|
||||||
pctx.EXPECT().
|
|
||||||
Value(gomock.Any()).
|
|
||||||
DoAndReturn(func(key any) any { return ctx.Value(key) }).
|
|
||||||
AnyTimes()
|
|
||||||
pctx.EXPECT().Err().Return(ctx.Err()).AnyTimes()
|
|
||||||
pctx.EXPECT().Deadline().Return(ctx.Deadline()).AnyTimes()
|
|
||||||
|
|
||||||
pctx.EXPECT().LogStatus(gomock.Any(), gomock.Any()).AnyTimes()
|
|
||||||
pctx.EXPECT().Log(gomock.Any(), gomock.Any()).DoAndReturn(func(_ diag.Severity, msg string) {
|
|
||||||
logged.WriteString(msg)
|
|
||||||
}).AnyTimes()
|
|
||||||
|
|
||||||
|
ctx := context.Background()
|
||||||
cli := testcli(t, true)
|
cli := testcli(t, true)
|
||||||
|
|
||||||
build, err := args.toBuild(pctx, false)
|
build, err := args.toBuild(ctx, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cli.Build(pctx, build)
|
_, err = cli.Build(ctx, build)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
want := []string{
|
want := []string{
|
||||||
@@ -413,7 +395,7 @@ func TestBuildError(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, want := range want {
|
for _, want := range want {
|
||||||
assert.Contains(t, logged.String(), want)
|
assert.Contains(t, logger.String(), want)
|
||||||
}
|
}
|
||||||
assert.ErrorContains(t, err,
|
assert.ErrorContains(t, err,
|
||||||
`process "/bin/sh -c badcmd" did not complete successfully: exit code: 127`,
|
`process "/bin/sh -c badcmd" did not complete successfully: exit code: 127`,
|
||||||
@@ -422,7 +404,6 @@ func TestBuildError(t *testing.T) {
|
|||||||
|
|
||||||
func TestBuildExecError(t *testing.T) {
|
func TestBuildExecError(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
ctrl, _ := gomock.WithContext(context.Background(), t)
|
|
||||||
|
|
||||||
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
||||||
|
|
||||||
@@ -434,20 +415,13 @@ func TestBuildExecError(t *testing.T) {
|
|||||||
Exec: true,
|
Exec: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
pctx := NewMockProviderContext(ctrl)
|
ctx := context.Background()
|
||||||
pctx.EXPECT().Log(
|
|
||||||
diag.Warning,
|
|
||||||
"No exports were specified so the build will only remain in the local build cache. "+
|
|
||||||
"Use `push` to upload the image to a registry, or silence this warning with a `cacheonly` export.",
|
|
||||||
)
|
|
||||||
pctx.EXPECT().LogStatus(gomock.Any(), gomock.Any()).AnyTimes()
|
|
||||||
|
|
||||||
cli := testcli(t, true)
|
cli := testcli(t, true)
|
||||||
|
|
||||||
build, err := args.toBuild(pctx, false)
|
build, err := args.toBuild(ctx, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cli.Build(pctx, build)
|
_, err = cli.Build(ctx, build)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
want := []string{
|
want := []string{
|
||||||
|
|||||||
@@ -26,12 +26,14 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"slices"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
buildx "github.com/docker/buildx/build"
|
buildx "github.com/docker/buildx/build"
|
||||||
"github.com/moby/patternmatcher/ignorefile"
|
"github.com/moby/patternmatcher/ignorefile"
|
||||||
"github.com/spf13/afero"
|
"github.com/spf13/afero"
|
||||||
"github.com/tonistiigi/fsutil"
|
"github.com/tonistiigi/fsutil"
|
||||||
|
"golang.org/x/exp/maps"
|
||||||
|
|
||||||
"github.com/pulumi/pulumi-go-provider/infer"
|
"github.com/pulumi/pulumi-go-provider/infer"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
|
||||||
@@ -90,7 +92,9 @@ func (c *Context) Annotate(a infer.Annotator) {
|
|||||||
|
|
||||||
// validate returns a non-nil CheckError if the Context is invalid. The
|
// validate returns a non-nil CheckError if the Context is invalid. The
|
||||||
// returned Dockerfile may have defaults set to match Docker's default
|
// returned Dockerfile may have defaults set to match Docker's default
|
||||||
// handling. The returned Dockerfile should be validated separately.
|
// handling. The returned Dockerfile should be validated separately. Non-nil
|
||||||
|
// values are returned even in the case of errors to allow additional
|
||||||
|
// validation to be performed.
|
||||||
func (bc *BuildContext) validate(preview bool, d *Dockerfile) (*Dockerfile, *Context, error) {
|
func (bc *BuildContext) validate(preview bool, d *Dockerfile) (*Dockerfile, *Context, error) {
|
||||||
if d == nil {
|
if d == nil {
|
||||||
d = &Dockerfile{}
|
d = &Dockerfile{}
|
||||||
@@ -107,6 +111,11 @@ func (bc *BuildContext) validate(preview bool, d *Dockerfile) (*Dockerfile, *Con
|
|||||||
// a build later.
|
// a build later.
|
||||||
return d, c, nil
|
return d, c, nil
|
||||||
}
|
}
|
||||||
|
// If this isn't a preview but our location still isn't set, default it to
|
||||||
|
// the current directory.
|
||||||
|
if c.Location == "" {
|
||||||
|
c.Location = "."
|
||||||
|
}
|
||||||
|
|
||||||
if buildx.IsRemoteURL(c.Location) {
|
if buildx.IsRemoteURL(c.Location) {
|
||||||
// We assume remote URLs are always valid.
|
// We assume remote URLs are always valid.
|
||||||
@@ -225,8 +234,11 @@ func hashBuildContext(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hash any local named contexts.
|
// Hash any local named contexts. Sort keys for stable iteration order.
|
||||||
for _, namedContext := range namedContexts {
|
keys := maps.Keys(namedContexts)
|
||||||
|
slices.Sort(keys)
|
||||||
|
for _, key := range keys {
|
||||||
|
namedContext := namedContexts[key]
|
||||||
if isLocalDir(fs, namedContext) {
|
if isLocalDir(fs, namedContext) {
|
||||||
fs, err := rootFS(namedContext, excludes)
|
fs, err := rootFS(namedContext, excludes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -33,62 +33,69 @@ func TestValidateContext(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
c Context
|
c *BuildContext
|
||||||
givenD Dockerfile
|
givenD Dockerfile
|
||||||
preview bool
|
preview bool
|
||||||
|
|
||||||
wantD *Dockerfile
|
wantD *Dockerfile
|
||||||
|
wantC *Context
|
||||||
wantErr string
|
wantErr string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "relative",
|
name: "relative",
|
||||||
c: Context{
|
c: &BuildContext{Context: Context{
|
||||||
Location: "../internal/../internal/testdata/noop",
|
Location: "../internal/../internal/testdata/noop",
|
||||||
},
|
}},
|
||||||
wantD: &Dockerfile{
|
wantD: &Dockerfile{
|
||||||
Location: "../internal/testdata/noop/Dockerfile",
|
Location: "../internal/testdata/noop/Dockerfile",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "missing directory",
|
name: "missing directory",
|
||||||
c: Context{
|
c: &BuildContext{Context: Context{
|
||||||
Location: "/does/not/exist/",
|
Location: "/does/not/exist/",
|
||||||
},
|
}},
|
||||||
wantErr: "not a valid directory",
|
wantErr: "not a valid directory",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "missing default Dockerfile",
|
name: "missing default Dockerfile",
|
||||||
c: Context{
|
c: &BuildContext{Context: Context{
|
||||||
Location: "testdata",
|
Location: "testdata",
|
||||||
},
|
}},
|
||||||
wantD: &Dockerfile{Location: "testdata/Dockerfile"},
|
wantD: &Dockerfile{Location: "testdata/Dockerfile"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "with explicit Dockerfile",
|
name: "with explicit Dockerfile",
|
||||||
c: Context{
|
c: &BuildContext{Context: Context{
|
||||||
Location: "testdata",
|
Location: "testdata",
|
||||||
},
|
}},
|
||||||
givenD: Dockerfile{
|
givenD: Dockerfile{
|
||||||
Location: "testdata/Dockerfile.invalid",
|
Location: "testdata/Dockerfile.invalid",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "default location",
|
name: "default location",
|
||||||
c: Context{},
|
c: &BuildContext{Context: Context{}},
|
||||||
wantD: &Dockerfile{Location: "Dockerfile"},
|
wantD: &Dockerfile{Location: "Dockerfile"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "remote context doesn't default to local Dockerfile",
|
name: "remote context doesn't default to local Dockerfile",
|
||||||
c: Context{
|
c: &BuildContext{Context: Context{
|
||||||
Location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
Location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
},
|
}},
|
||||||
wantD: &Dockerfile{},
|
wantD: &Dockerfile{},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "preview",
|
name: "preview",
|
||||||
c: Context{},
|
c: &BuildContext{Context: Context{}},
|
||||||
preview: true,
|
preview: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "missing context defaults to current directory",
|
||||||
|
c: nil,
|
||||||
|
wantC: &Context{Location: "."},
|
||||||
|
wantD: &Dockerfile{Location: "Dockerfile"},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
@@ -96,8 +103,7 @@ func TestValidateContext(t *testing.T) {
|
|||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
bc := &BuildContext{Context: tt.c}
|
d, c, err := tt.c.validate(tt.preview, &tt.givenD)
|
||||||
d, _, err := bc.validate(tt.preview, &tt.givenD)
|
|
||||||
|
|
||||||
if tt.wantErr == "" {
|
if tt.wantErr == "" {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@@ -109,6 +115,9 @@ func TestValidateContext(t *testing.T) {
|
|||||||
assert.Equal(t, tt.wantD.Location, d.Location)
|
assert.Equal(t, tt.wantD.Location, d.Location)
|
||||||
assert.Equal(t, tt.wantD.Inline, d.Inline)
|
assert.Equal(t, tt.wantD.Inline, d.Inline)
|
||||||
}
|
}
|
||||||
|
if tt.wantC != nil {
|
||||||
|
assert.Equal(t, tt.wantC.Location, c.Location)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,9 +17,6 @@ package deprecated
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sort"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/types/known/structpb"
|
|
||||||
|
|
||||||
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||||
@@ -113,6 +110,7 @@ func (enc *ConfigEncoding) unmarshalOpts() plugin.MarshalOptions {
|
|||||||
return plugin.MarshalOptions{
|
return plugin.MarshalOptions{
|
||||||
Label: "config",
|
Label: "config",
|
||||||
KeepUnknowns: true,
|
KeepUnknowns: true,
|
||||||
|
KeepSecrets: true,
|
||||||
SkipNulls: true,
|
SkipNulls: true,
|
||||||
RejectAssets: true,
|
RejectAssets: true,
|
||||||
}
|
}
|
||||||
@@ -120,15 +118,10 @@ func (enc *ConfigEncoding) unmarshalOpts() plugin.MarshalOptions {
|
|||||||
|
|
||||||
// Like plugin.UnmarshalPropertyValue but overrides string parsing with convertStringToPropertyValue.
|
// Like plugin.UnmarshalPropertyValue but overrides string parsing with convertStringToPropertyValue.
|
||||||
func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
||||||
v *structpb.Value,
|
pv resource.PropertyValue,
|
||||||
) (*resource.PropertyValue, error) {
|
) (resource.PropertyValue, error) {
|
||||||
opts := enc.unmarshalOpts()
|
opts := enc.unmarshalOpts()
|
||||||
|
|
||||||
pv, err := plugin.UnmarshalPropertyValue(key, v, enc.unmarshalOpts())
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error unmarshalling property %q: %w", key, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
prop, ok := enc.schema.Variables[string(key)]
|
prop, ok := enc.schema.Variables[string(key)]
|
||||||
|
|
||||||
// Only apply JSON-encoded recognition for known fields.
|
// Only apply JSON-encoded recognition for known fields.
|
||||||
@@ -136,8 +129,10 @@ func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
|||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var jsonString string
|
var (
|
||||||
var jsonStringDetected, jsonStringSecret bool
|
jsonString string
|
||||||
|
jsonStringDetected, jsonStringSecret bool
|
||||||
|
)
|
||||||
|
|
||||||
if pv.IsString() {
|
if pv.IsString() {
|
||||||
jsonString = pv.StringValue()
|
jsonString = pv.StringValue()
|
||||||
@@ -153,22 +148,21 @@ func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
|||||||
if jsonStringDetected {
|
if jsonStringDetected {
|
||||||
v, err := enc.convertStringToPropertyValue(jsonString, prop)
|
v, err := enc.convertStringToPropertyValue(jsonString, prop)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error unmarshalling property %q: %w", key, err)
|
return resource.PropertyValue{}, fmt.Errorf("error unmarshalling property %q: %w", key, err)
|
||||||
}
|
}
|
||||||
if jsonStringSecret {
|
if jsonStringSecret {
|
||||||
s := resource.MakeSecret(v)
|
return resource.MakeSecret(v), nil
|
||||||
return &s, nil
|
|
||||||
}
|
}
|
||||||
return &v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Computed sentinels are coming in as always having an empty string, but the encoding coerses them to a zero
|
// Computed sentinels are coming in as always having an empty string, but the encoding coerces them to a zero
|
||||||
// value of the appropriate type.
|
// value of the appropriate type.
|
||||||
if pv.IsComputed() {
|
if pv.IsComputed() {
|
||||||
el := pv.V.(resource.Computed).Element
|
el := pv.V.(resource.Computed).Element
|
||||||
if el.IsString() && el.StringValue() == "" {
|
if el.IsString() && el.StringValue() == "" {
|
||||||
res := resource.MakeComputed(enc.zeroValue(prop.Type))
|
res := resource.MakeComputed(enc.zeroValue(prop.Type))
|
||||||
return &res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,36 +171,20 @@ func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
|||||||
|
|
||||||
// UnmarshalProperties is copied from plugin.UnmarshalProperties substituting plugin.UnmarshalPropertyValue.
|
// UnmarshalProperties is copied from plugin.UnmarshalProperties substituting plugin.UnmarshalPropertyValue.
|
||||||
func (enc *ConfigEncoding) UnmarshalProperties(
|
func (enc *ConfigEncoding) UnmarshalProperties(
|
||||||
props *structpb.Struct,
|
props resource.PropertyMap,
|
||||||
) (resource.PropertyMap, error) {
|
) (resource.PropertyMap, error) {
|
||||||
opts := enc.unmarshalOpts()
|
|
||||||
|
|
||||||
result := make(resource.PropertyMap)
|
result := make(resource.PropertyMap)
|
||||||
|
|
||||||
// First sort the keys so we enumerate them in order (in case errors happen, we want determinism).
|
// First sort the keys so we enumerate them in order (in case errors happen, we want determinism).
|
||||||
var keys []string
|
keys := props.StableKeys()
|
||||||
if props != nil {
|
|
||||||
for k := range props.Fields {
|
|
||||||
keys = append(keys, k)
|
|
||||||
}
|
|
||||||
sort.Strings(keys)
|
|
||||||
}
|
|
||||||
|
|
||||||
// And now unmarshal every field it into the map.
|
// And now unmarshal every field it into the map.
|
||||||
for _, key := range keys {
|
for _, key := range keys {
|
||||||
pk := resource.PropertyKey(key)
|
v, err := enc.unmarshalPropertyValue(key, props[key])
|
||||||
v, err := enc.unmarshalPropertyValue(pk, props.Fields[key])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return resource.PropertyMap{}, err
|
||||||
} else if v != nil {
|
|
||||||
if opts.SkipNulls && v.IsNull() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if opts.SkipInternalKeys && resource.IsInternalPropertyKey(pk) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
result[pk] = *v
|
|
||||||
}
|
}
|
||||||
|
result[key] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
|
|||||||
@@ -16,23 +16,23 @@ package deprecated
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
structpb "google.golang.org/protobuf/types/known/structpb"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigEncoding(t *testing.T) {
|
func TestConfigEncoding(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
type testCase struct {
|
type testCase struct {
|
||||||
ty schema.TypeSpec
|
ty schema.TypeSpec
|
||||||
v *structpb.Value
|
given resource.PropertyValue
|
||||||
pv resource.PropertyValue
|
want resource.PropertyValue
|
||||||
}
|
}
|
||||||
|
|
||||||
knownKey := "mykey"
|
knownKey := "mykey"
|
||||||
@@ -49,69 +49,64 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
makeValue := func(x any) *structpb.Value {
|
|
||||||
vv, err := structpb.NewValue(x)
|
|
||||||
assert.NoErrorf(t, err, "structpb.NewValue failed")
|
|
||||||
return vv
|
|
||||||
}
|
|
||||||
|
|
||||||
checkUnmarshal := func(t *testing.T, tc testCase) {
|
checkUnmarshal := func(t *testing.T, tc testCase) {
|
||||||
enc := makeEnc(tc.ty)
|
enc := makeEnc(tc.ty)
|
||||||
pv, err := enc.unmarshalPropertyValue(resource.PropertyKey(knownKey), tc.v)
|
key := resource.PropertyKey(knownKey)
|
||||||
assert.NoError(t, err)
|
|
||||||
assert.NotNil(t, pv)
|
actual, err := enc.unmarshalPropertyValue(key, tc.given)
|
||||||
assert.Equal(t, tc.pv, *pv)
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, tc.want, actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
turnaroundTestCases := []testCase{
|
turnaroundTestCases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
makeValue(`true`),
|
resource.NewPropertyValue(`true`),
|
||||||
resource.NewBoolProperty(true),
|
resource.NewBoolProperty(true),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
makeValue(`false`),
|
resource.NewPropertyValue(`false`),
|
||||||
resource.NewBoolProperty(false),
|
resource.NewBoolProperty(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
makeValue(`0`),
|
resource.NewPropertyValue(`0`),
|
||||||
resource.NewNumberProperty(0),
|
resource.NewNumberProperty(0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
makeValue(`42`),
|
resource.NewPropertyValue(`42`),
|
||||||
resource.NewNumberProperty(42),
|
resource.NewNumberProperty(42),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
makeValue(`0`),
|
resource.NewPropertyValue(`0`),
|
||||||
resource.NewNumberProperty(0.0),
|
resource.NewNumberProperty(0.0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
makeValue(`42.5`),
|
resource.NewPropertyValue(`42.5`),
|
||||||
resource.NewNumberProperty(42.5),
|
resource.NewNumberProperty(42.5),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
structpb.NewStringValue(""),
|
resource.NewStringProperty(""),
|
||||||
resource.NewStringProperty(""),
|
resource.NewStringProperty(""),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
structpb.NewStringValue("hello"),
|
resource.NewStringProperty("hello"),
|
||||||
resource.NewStringProperty("hello"),
|
resource.NewStringProperty("hello"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
makeValue(`[]`),
|
resource.NewPropertyValue(`[]`),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{}),
|
resource.NewArrayProperty([]resource.PropertyValue{}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
makeValue(`["hello","there"]`),
|
resource.NewPropertyValue(`["hello","there"]`),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{
|
resource.NewArrayProperty([]resource.PropertyValue{
|
||||||
resource.NewStringProperty("hello"),
|
resource.NewStringProperty("hello"),
|
||||||
resource.NewStringProperty("there"),
|
resource.NewStringProperty("there"),
|
||||||
@@ -119,12 +114,12 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
makeValue(`{}`),
|
resource.NewPropertyValue(`{}`),
|
||||||
resource.NewObjectProperty(resource.PropertyMap{}),
|
resource.NewObjectProperty(resource.PropertyMap{}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
makeValue(`{"key":"value"}`),
|
resource.NewPropertyValue(`{"key":"value"}`),
|
||||||
resource.NewObjectProperty(resource.PropertyMap{
|
resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"key": resource.NewStringProperty("value"),
|
"key": resource.NewStringProperty("value"),
|
||||||
}),
|
}),
|
||||||
@@ -135,7 +130,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
for i, tc := range turnaroundTestCases {
|
for i, tc := range turnaroundTestCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
checkUnmarshal(t, tc)
|
checkUnmarshal(t, tc)
|
||||||
})
|
})
|
||||||
@@ -147,32 +142,32 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
cases := []testCase{
|
cases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewBoolProperty(false),
|
resource.NewBoolProperty(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewNumberProperty(0.),
|
resource.NewNumberProperty(0.),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewNumberProperty(0),
|
resource.NewNumberProperty(0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewStringProperty(""),
|
resource.NewStringProperty(""),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewObjectProperty(make(resource.PropertyMap)),
|
resource.NewObjectProperty(make(resource.PropertyMap)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
makeValue(""),
|
resource.NewPropertyValue(""),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{}),
|
resource.NewArrayProperty([]resource.PropertyValue{}),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -187,18 +182,18 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("computed", func(t *testing.T) {
|
t.Run("computed", func(t *testing.T) {
|
||||||
unk := makeValue(plugin.UnknownStringValue)
|
unk := resource.MakeComputed(resource.NewStringProperty(""))
|
||||||
|
|
||||||
for i, tc := range turnaroundTestCases {
|
for i, tc := range turnaroundTestCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
// Unknown sentinel unmarshals to a Computed with a type-appropriate zero value.
|
// Unknown sentinel unmarshals to a Computed with a type-appropriate zero value.
|
||||||
checkUnmarshal(t, testCase{
|
checkUnmarshal(t, testCase{
|
||||||
tc.ty,
|
ty: tc.ty,
|
||||||
unk,
|
given: unk,
|
||||||
resource.MakeComputed(makeEnc(tc.ty).zeroValue(tc.ty.Type)),
|
want: resource.MakeComputed(makeEnc(tc.ty).zeroValue(tc.ty.Type)),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -215,46 +210,30 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
|
|
||||||
var secretCases []testCase
|
var secretCases []testCase
|
||||||
|
|
||||||
pbSecret := func(v *structpb.Value) *structpb.Value {
|
|
||||||
return structpb.NewStructValue(&structpb.Struct{Fields: map[string]*structpb.Value{
|
|
||||||
"4dabf18193072939515e22adb298388d": makeValue("1b47061264138c4ac30d75fd1eb44270"),
|
|
||||||
"value": v,
|
|
||||||
}})
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range turnaroundTestCases {
|
for _, tc := range turnaroundTestCases {
|
||||||
secretCases = append(secretCases, testCase{
|
secretCases = append(secretCases, testCase{
|
||||||
tc.ty,
|
ty: tc.ty,
|
||||||
pbSecret(tc.v),
|
given: resource.MakeSecret(tc.given),
|
||||||
resource.MakeSecret(tc.pv),
|
want: resource.MakeSecret(tc.want),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tc := range secretCases {
|
for i, tc := range secretCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(fmt.Sprintf("secret/UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
// Unmarshallin will remove secrts, so the expected value needs to be modified.
|
|
||||||
tc.pv = tc.pv.SecretValue().Element
|
|
||||||
checkUnmarshal(t, tc)
|
checkUnmarshal(t, tc)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("tolerate secrets in Configure", func(t *testing.T) {
|
t.Run("nested secrets", func(t *testing.T) {
|
||||||
// This is a bit of a histirocal quirk: the engine may send secrets to Configure before
|
|
||||||
// receiving the response from Configure indicating that the provider does not want to receive
|
|
||||||
// secrets. These are simply ignored. The engine does not currently send secrets to CheckConfig.
|
|
||||||
// The engine does take care of making sure the secrets are stored as such in the statefile.
|
|
||||||
//
|
|
||||||
// Check here that unmarshalilng such values removes the secrets.
|
|
||||||
checkUnmarshal(t, testCase{
|
checkUnmarshal(t, testCase{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
pbSecret(makeValue(`{"key":"val"}`)),
|
resource.MakeSecret(resource.NewPropertyValue(`{"key":"val"}`)),
|
||||||
resource.NewObjectProperty(resource.PropertyMap{
|
resource.MakeSecret(resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"key": resource.NewStringProperty("val"),
|
"key": resource.NewStringProperty("val"),
|
||||||
}),
|
})),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -262,7 +241,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
regressUnmarshalTestCases := []testCase{
|
regressUnmarshalTestCases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
makeValue(`
|
resource.NewPropertyValue(`
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"address": "somewhere.org",
|
"address": "somewhere.org",
|
||||||
@@ -276,7 +255,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
resource.NewArrayProperty([]resource.PropertyValue{
|
resource.NewArrayProperty([]resource.PropertyValue{
|
||||||
resource.NewObjectProperty(resource.PropertyMap{
|
resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"address": resource.NewStringProperty("somewhere.org"),
|
"address": resource.NewStringProperty("somewhere.org"),
|
||||||
"password": resource.NewStringProperty("some-password"),
|
"password": resource.MakeSecret(resource.NewStringProperty("some-password")),
|
||||||
"username": resource.NewStringProperty("some-user"),
|
"username": resource.NewStringProperty("some-user"),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
@@ -286,7 +265,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
t.Run("regress-unmarshal", func(t *testing.T) {
|
t.Run("regress-unmarshal", func(t *testing.T) {
|
||||||
for i, tc := range regressUnmarshalTestCases {
|
for i, tc := range regressUnmarshalTestCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
checkUnmarshal(t, tc)
|
checkUnmarshal(t, tc)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ func parseDockerfile(r io.Reader) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return newCheckFailure(err, "dockerfile")
|
return newCheckFailure(err, "dockerfile")
|
||||||
}
|
}
|
||||||
_, _, err = instructions.Parse(parsed.AST)
|
_, _, err = instructions.Parse(parsed.AST, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
## Migrating v3 and v4 Image resources
|
## Migrating Pulumi Docker v3 and v4 Image resources
|
||||||
|
|
||||||
The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
|
This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
|
||||||
Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
|
Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
|
||||||
|
|
||||||
### Behavioral differences
|
### Behavioral differences
|
||||||
@@ -14,19 +14,17 @@ This is helpful as a safeguard to prevent "broken" images from merging, but user
|
|||||||
|
|
||||||
Version `4.x` changed build-on-preview behavior to be opt-in.
|
Version `4.x` changed build-on-preview behavior to be opt-in.
|
||||||
By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
|
By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
|
||||||
Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
|
Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
|
||||||
|
|
||||||
The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
|
The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
|
||||||
By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
|
This behavior can be changed by specifying `buildOnPreview`.
|
||||||
Previews run in non-CI environments will not build images.
|
|
||||||
This behavior is still configurable with `buildOnPreview`.
|
|
||||||
|
|
||||||
#### Push behavior
|
#### Push behavior
|
||||||
|
|
||||||
Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
|
Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
|
||||||
They expose a `skipPush: true` option to disable pushing.
|
They expose a `skipPush: true` option to disable pushing.
|
||||||
|
|
||||||
The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
|
This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
|
||||||
|
|
||||||
To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
|
To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
|
||||||
Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
|
Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
|
||||||
@@ -146,7 +144,7 @@ const v3Migrated = new dockerbuild.Image("v3-to-buildx", {
|
|||||||
context: {
|
context: {
|
||||||
location: "../app",
|
location: "../app",
|
||||||
},
|
},
|
||||||
targets: ["mytarget"],
|
target: "mytarget",
|
||||||
buildArgs: {
|
buildArgs: {
|
||||||
MY_BUILD_ARG: "foo",
|
MY_BUILD_ARG: "foo",
|
||||||
},
|
},
|
||||||
@@ -205,7 +203,7 @@ const v4Migrated = new dockerbuild.Image("v4-to-buildx", {
|
|||||||
context: {
|
context: {
|
||||||
location: "../app",
|
location: "../app",
|
||||||
},
|
},
|
||||||
targets: ["mytarget"],
|
target: "mytarget",
|
||||||
buildArgs: {
|
buildArgs: {
|
||||||
MY_BUILD_ARG: "foo",
|
MY_BUILD_ARG: "foo",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -57,37 +57,37 @@ import pulumi
|
|||||||
import pulumi_docker_build as docker_build
|
import pulumi_docker_build as docker_build
|
||||||
|
|
||||||
amd64 = docker_build.Image("amd64",
|
amd64 = docker_build.Image("amd64",
|
||||||
cache_from=[docker_build.CacheFromArgs(
|
cache_from=[{
|
||||||
registry=docker_build.CacheFromRegistryArgs(
|
"registry": {
|
||||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
),
|
},
|
||||||
)],
|
}],
|
||||||
cache_to=[docker_build.CacheToArgs(
|
cache_to=[{
|
||||||
registry=docker_build.CacheToRegistryArgs(
|
"registry": {
|
||||||
mode=docker_build.CacheMode.MAX,
|
"mode": docker_build.CacheMode.MAX,
|
||||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
"ref": "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
),
|
},
|
||||||
)],
|
}],
|
||||||
context=docker_build.BuildContextArgs(
|
context={
|
||||||
location="app",
|
"location": "app",
|
||||||
),
|
},
|
||||||
platforms=[docker_build.Platform.LINUX_AMD64],
|
platforms=[docker_build.Platform.LINUX_AMD64],
|
||||||
tags=["docker.io/pulumi/pulumi:3.107.0-amd64"])
|
tags=["docker.io/pulumi/pulumi:3.107.0-amd64"])
|
||||||
arm64 = docker_build.Image("arm64",
|
arm64 = docker_build.Image("arm64",
|
||||||
cache_from=[docker_build.CacheFromArgs(
|
cache_from=[{
|
||||||
registry=docker_build.CacheFromRegistryArgs(
|
"registry": {
|
||||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
),
|
},
|
||||||
)],
|
}],
|
||||||
cache_to=[docker_build.CacheToArgs(
|
cache_to=[{
|
||||||
registry=docker_build.CacheToRegistryArgs(
|
"registry": {
|
||||||
mode=docker_build.CacheMode.MAX,
|
"mode": docker_build.CacheMode.MAX,
|
||||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
"ref": "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
),
|
},
|
||||||
)],
|
}],
|
||||||
context=docker_build.BuildContextArgs(
|
context={
|
||||||
location="app",
|
"location": "app",
|
||||||
),
|
},
|
||||||
platforms=[docker_build.Platform.LINUX_ARM64],
|
platforms=[docker_build.Platform.LINUX_ARM64],
|
||||||
tags=["docker.io/pulumi/pulumi:3.107.0-arm64"])
|
tags=["docker.io/pulumi/pulumi:3.107.0-arm64"])
|
||||||
index = docker_build.Index("index",
|
index = docker_build.Index("index",
|
||||||
@@ -355,7 +355,7 @@ public class App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void stack(Context ctx) {
|
public static void stack(Context ctx) {
|
||||||
var amd64 = new Image("amd64", ImageArgs.builder()
|
var amd64 = new Image("amd64", ImageArgs.builder()
|
||||||
.cacheFrom(CacheFromArgs.builder()
|
.cacheFrom(CacheFromArgs.builder()
|
||||||
.registry(CacheFromRegistryArgs.builder()
|
.registry(CacheFromRegistryArgs.builder()
|
||||||
.ref("docker.io/pulumi/pulumi:cache-amd64")
|
.ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||||
@@ -374,7 +374,7 @@ public class App {
|
|||||||
.tags("docker.io/pulumi/pulumi:3.107.0-amd64")
|
.tags("docker.io/pulumi/pulumi:3.107.0-amd64")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
var arm64 = new Image("arm64", ImageArgs.builder()
|
var arm64 = new Image("arm64", ImageArgs.builder()
|
||||||
.cacheFrom(CacheFromArgs.builder()
|
.cacheFrom(CacheFromArgs.builder()
|
||||||
.registry(CacheFromRegistryArgs.builder()
|
.registry(CacheFromRegistryArgs.builder()
|
||||||
.ref("docker.io/pulumi/pulumi:cache-arm64")
|
.ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||||
@@ -393,7 +393,7 @@ public class App {
|
|||||||
.tags("docker.io/pulumi/pulumi:3.107.0-arm64")
|
.tags("docker.io/pulumi/pulumi:3.107.0-arm64")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
var index = new Index("index", IndexArgs.builder()
|
var index = new Index("index", IndexArgs.builder()
|
||||||
.sources(
|
.sources(
|
||||||
amd64.ref(),
|
amd64.ref(),
|
||||||
arm64.ref())
|
arm64.ref())
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ package internal
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"slices"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -353,6 +354,19 @@ func (e *ExportLocal) Annotate(a infer.Annotator) {
|
|||||||
a.Describe(&e.Dest, "Output path.")
|
a.Describe(&e.Dest, "Output path.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Exists returns true if the exported directory exists and is populated with
|
||||||
|
// some files.
|
||||||
|
func (e *ExportLocal) Exists() bool {
|
||||||
|
if e == nil {
|
||||||
|
return true // Degenerate case.
|
||||||
|
}
|
||||||
|
files, err := os.ReadDir(e.Dest)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return len(files) > 0
|
||||||
|
}
|
||||||
|
|
||||||
// ExportTar is an export that uses the tar format for exporting.
|
// ExportTar is an export that uses the tar format for exporting.
|
||||||
type ExportTar struct {
|
type ExportTar struct {
|
||||||
ExportLocal
|
ExportLocal
|
||||||
@@ -365,6 +379,15 @@ func (e *ExportTar) String() string {
|
|||||||
return "type=tar,dest=" + e.Dest
|
return "type=tar,dest=" + e.Dest
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Exists returns true if a file exists at the expected path.
|
||||||
|
func (e *ExportTar) Exists() bool {
|
||||||
|
if e == nil {
|
||||||
|
return true // Degenerate case.
|
||||||
|
}
|
||||||
|
_, err := os.Stat(e.Dest)
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
||||||
// ExportWithOCI is an export that support OCI media types.
|
// ExportWithOCI is an export that support OCI media types.
|
||||||
type ExportWithOCI struct {
|
type ExportWithOCI struct {
|
||||||
OCI *bool `pulumi:"ociMediaTypes,optional"`
|
OCI *bool `pulumi:"ociMediaTypes,optional"`
|
||||||
@@ -393,8 +416,7 @@ type ExportWithCompression struct {
|
|||||||
|
|
||||||
// Annotate sets docstrings and defaults on ExportWithCompression.
|
// Annotate sets docstrings and defaults on ExportWithCompression.
|
||||||
func (e *ExportWithCompression) Annotate(a infer.Annotator) {
|
func (e *ExportWithCompression) Annotate(a infer.Annotator) {
|
||||||
gzip := Gzip
|
a.SetDefault(&e.Compression, Gzip)
|
||||||
a.SetDefault(&e.Compression, &gzip)
|
|
||||||
a.SetDefault(&e.CompressionLevel, 0)
|
a.SetDefault(&e.CompressionLevel, 0)
|
||||||
a.SetDefault(&e.ForceCompression, false)
|
a.SetDefault(&e.ForceCompression, false)
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,10 @@ package internal
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/docker/buildx/builder"
|
"github.com/docker/buildx/builder"
|
||||||
"github.com/docker/buildx/store/storeutil"
|
"github.com/docker/buildx/store/storeutil"
|
||||||
@@ -72,7 +74,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
|
|
||||||
txn, release, err := storeutil.GetStore(h.cli)
|
txn, release, err := storeutil.GetStore(h.cli)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("getting store: %w", err)
|
||||||
}
|
}
|
||||||
defer release()
|
defer release()
|
||||||
|
|
||||||
@@ -86,7 +88,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
builder.WithStore(txn),
|
builder.WithStore(txn),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("new builder: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we didn't request a particular builder, and we loaded a default
|
// If we didn't request a particular builder, and we loaded a default
|
||||||
@@ -95,7 +97,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
if b.Driver == "" && opts.Builder == "" {
|
if b.Driver == "" && opts.Builder == "" {
|
||||||
builders, err := builder.GetBuilders(h.cli, txn)
|
builders, err := builder.GetBuilders(h.cli, txn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("getting builders: %w", err)
|
||||||
}
|
}
|
||||||
nextbuilder:
|
nextbuilder:
|
||||||
for _, bb := range builders {
|
for _, bb := range builders {
|
||||||
@@ -128,6 +130,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if b.Driver == "" && opts.Builder == "" {
|
if b.Driver == "" && opts.Builder == "" {
|
||||||
|
|
||||||
// If we STILL don't have a builder, create a docker-container instance.
|
// If we STILL don't have a builder, create a docker-container instance.
|
||||||
b, err = builder.Create(
|
b, err = builder.Create(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
@@ -136,7 +139,12 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
builder.CreateOpts{Driver: "docker-container"},
|
builder.CreateOpts{Driver: "docker-container"},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("creating builder: %w", err)
|
||||||
|
}
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
if _, err := b.Boot(ctx); err != nil {
|
||||||
|
return nil, fmt.Errorf("booting builder: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,7 +153,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
// drivers that are unknown to us.
|
// drivers that are unknown to us.
|
||||||
nodes, err := b.LoadNodes(context.Background())
|
nodes, err := b.LoadNodes(context.Background())
|
||||||
if err != nil && !build.ShouldExec() {
|
if err != nil && !build.ShouldExec() {
|
||||||
return nil, err
|
return nil, fmt.Errorf("loading nodes: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes}
|
cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes}
|
||||||
|
|||||||
@@ -38,9 +38,8 @@ import (
|
|||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
"github.com/pulumi/pulumi-go-provider/infer"
|
"github.com/pulumi/pulumi-go-provider/infer"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/ciutil"
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -72,16 +71,10 @@ func (i *Image) Annotate(a infer.Annotator) {
|
|||||||
|
|
||||||
## Stability
|
## Stability
|
||||||
|
|
||||||
**This resource is experimental and subject to change.**
|
**This resource is pre-1.0 and in public preview.**
|
||||||
|
|
||||||
API types are unstable. Subsequent releases _may_ require manual edits
|
We will strive to keep APIs and behavior as stable as possible, but we
|
||||||
to your state file(s) in order to adopt API changes.
|
cannot guarantee stability until version 1.0.
|
||||||
|
|
||||||
"retainOnDelete: true" is recommended with this resource until it is
|
|
||||||
stable. This enables future API changes to be adopted more easily by renaming
|
|
||||||
resources.
|
|
||||||
|
|
||||||
Only use this resource if you understand and accept the risks.
|
|
||||||
`)+
|
`)+
|
||||||
"\n\n"+_migration+
|
"\n\n"+_migration+
|
||||||
"\n\n"+_imageExamples,
|
"\n\n"+_imageExamples,
|
||||||
@@ -105,7 +98,7 @@ type ImageArgs struct {
|
|||||||
NoCache bool `pulumi:"noCache,optional"`
|
NoCache bool `pulumi:"noCache,optional"`
|
||||||
Platforms []Platform `pulumi:"platforms,optional"`
|
Platforms []Platform `pulumi:"platforms,optional"`
|
||||||
Pull bool `pulumi:"pull,optional"`
|
Pull bool `pulumi:"pull,optional"`
|
||||||
Push bool `pulumi:"push,optional"`
|
Push bool `pulumi:"push"`
|
||||||
Registries []Registry `pulumi:"registries,optional"`
|
Registries []Registry `pulumi:"registries,optional"`
|
||||||
Secrets map[string]string `pulumi:"secrets,optional"`
|
Secrets map[string]string `pulumi:"secrets,optional"`
|
||||||
SSH []SSH `pulumi:"ssh,optional"`
|
SSH []SSH `pulumi:"ssh,optional"`
|
||||||
@@ -133,21 +126,19 @@ func (ia *ImageArgs) Annotate(a infer.Annotator) {
|
|||||||
Equivalent to Docker's "--build-arg" flag.
|
Equivalent to Docker's "--build-arg" flag.
|
||||||
`))
|
`))
|
||||||
a.Describe(&ia.BuildOnPreview, dedent(`
|
a.Describe(&ia.BuildOnPreview, dedent(`
|
||||||
By default, preview behavior depends on the execution environment. If
|
Setting this to "false" will always skip image builds during previews,
|
||||||
Pulumi detects the operation is running on a CI system (GitHub Actions,
|
and setting it to "true" will always build images during previews.
|
||||||
Travis CI, Azure Pipelines, etc.) then it will build images during
|
|
||||||
previews as a safeguard. Otherwise, if not running on CI, previews will
|
|
||||||
not build images.
|
|
||||||
|
|
||||||
Setting this to "false" forces previews to never perform builds, and
|
|
||||||
setting it to "true" will always build the image during previews.
|
|
||||||
|
|
||||||
Images built during previews are never exported to registries, however
|
Images built during previews are never exported to registries, however
|
||||||
cache manifests are still exported.
|
cache manifests are still exported.
|
||||||
|
|
||||||
On-disk Dockerfiles are always validated for syntactic correctness
|
On-disk Dockerfiles are always validated for syntactic correctness
|
||||||
regardless of this setting.
|
regardless of this setting.
|
||||||
|
|
||||||
|
Defaults to "true" as a safeguard against broken images merging as part
|
||||||
|
of CI pipelines.
|
||||||
`))
|
`))
|
||||||
|
a.SetDefault(&ia.BuildOnPreview, pulumi.Bool(true))
|
||||||
a.Describe(&ia.Builder, dedent(`
|
a.Describe(&ia.Builder, dedent(`
|
||||||
Builder configuration.
|
Builder configuration.
|
||||||
`))
|
`))
|
||||||
@@ -162,7 +153,7 @@ func (ia *ImageArgs) Annotate(a infer.Annotator) {
|
|||||||
Equivalent to Docker's "--cache-to" flag.
|
Equivalent to Docker's "--cache-to" flag.
|
||||||
`))
|
`))
|
||||||
a.Describe(&ia.Context, dedent(`
|
a.Describe(&ia.Context, dedent(`
|
||||||
Build context settings.
|
Build context settings. Defaults to the current directory.
|
||||||
|
|
||||||
Equivalent to Docker's "PATH | URL | -" positional argument.
|
Equivalent to Docker's "PATH | URL | -" positional argument.
|
||||||
`))
|
`))
|
||||||
@@ -287,8 +278,7 @@ func (ia *ImageArgs) Annotate(a infer.Annotator) {
|
|||||||
"docker-buildx" binary.
|
"docker-buildx" binary.
|
||||||
`))
|
`))
|
||||||
|
|
||||||
d := Default
|
a.SetDefault(&ia.Network, Default)
|
||||||
a.SetDefault(&ia.Network, &d)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ImageState is serialized to the program's state file.
|
// ImageState is serialized to the program's state file.
|
||||||
@@ -337,12 +327,10 @@ func (is *ImageState) Annotate(a infer.Annotator) {
|
|||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
// client produces a CLI client with scoped to this resource and layered on top
|
// client produces a CLI client scoped to this resource and layered on top of
|
||||||
// of any host-level credentials.
|
// any host-level credentials.
|
||||||
func (i *Image) client(pctx provider.Context, state ImageState, args ImageArgs) (Client, error) {
|
func (i *Image) client(ctx context.Context, state ImageState, args ImageArgs) (Client, error) {
|
||||||
ctx := context.Context(pctx)
|
cfg := infer.GetConfig[Config](ctx)
|
||||||
|
|
||||||
cfg := infer.GetConfig[Config](pctx)
|
|
||||||
|
|
||||||
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
||||||
return cli, nil
|
return cli, nil
|
||||||
@@ -361,12 +349,12 @@ func (i *Image) client(pctx provider.Context, state ImageState, args ImageArgs)
|
|||||||
// Check validates ImageArgs, sets defaults, and ensures our client is
|
// Check validates ImageArgs, sets defaults, and ensures our client is
|
||||||
// authenticated.
|
// authenticated.
|
||||||
func (i *Image) Check(
|
func (i *Image) Check(
|
||||||
_ provider.Context,
|
ctx context.Context,
|
||||||
_ string,
|
_ string,
|
||||||
_ resource.PropertyMap,
|
_ resource.PropertyMap,
|
||||||
news resource.PropertyMap,
|
news resource.PropertyMap,
|
||||||
) (ImageArgs, []provider.CheckFailure, error) {
|
) (ImageArgs, []provider.CheckFailure, error) {
|
||||||
args, failures, err := infer.DefaultCheck[ImageArgs](news)
|
args, failures, err := infer.DefaultCheck[ImageArgs](ctx, news)
|
||||||
if err != nil || len(failures) != 0 {
|
if err != nil || len(failures) != 0 {
|
||||||
return args, failures, err
|
return args, failures, err
|
||||||
}
|
}
|
||||||
@@ -463,13 +451,12 @@ func (ia *ImageArgs) isExported() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// shouldBuildOnPreview returns true if we should build this image during
|
// shouldBuildOnPreview returns true if we should build this image during
|
||||||
// previews. In CI environments we default to building during previews, but we
|
// previews.
|
||||||
// always respect buildOnPreview if it was specified.
|
|
||||||
func (ia *ImageArgs) shouldBuildOnPreview() bool {
|
func (ia *ImageArgs) shouldBuildOnPreview() bool {
|
||||||
if ia.BuildOnPreview != nil {
|
if ia.BuildOnPreview != nil {
|
||||||
return *ia.BuildOnPreview
|
return *ia.BuildOnPreview
|
||||||
}
|
}
|
||||||
return ciutil.IsCI()
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
type build struct {
|
type build struct {
|
||||||
@@ -500,7 +487,7 @@ func (b build) ShouldExec() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ia ImageArgs) toBuild(
|
func (ia ImageArgs) toBuild(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
preview bool,
|
preview bool,
|
||||||
) (Build, error) {
|
) (Build, error) {
|
||||||
opts, err := ia.validate(preview)
|
opts, err := ia.validate(preview)
|
||||||
@@ -509,18 +496,15 @@ func (ia ImageArgs) toBuild(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(ia.Exports) == 0 && !ia.Push && !ia.Load {
|
if len(ia.Exports) == 0 && !ia.Push && !ia.Load {
|
||||||
ctx.Log(diag.Warning,
|
provider.GetLogger(ctx).Warning(
|
||||||
"No exports were specified so the build will only remain in the local build cache. "+
|
"No exports were specified so the build will only remain in the local build cache. " +
|
||||||
"Use `push` to upload the image to a registry, or silence this warning with a `cacheonly` export.",
|
"Use `push` to upload the image to a registry, or silence this warning with a `cacheonly` export.")
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(opts.Platforms) > 1 && len(opts.CacheTo) > 0 {
|
if len(opts.Platforms) > 1 && len(opts.CacheTo) > 0 {
|
||||||
ctx.Log(
|
provider.GetLogger(ctx).Warning(
|
||||||
diag.Warning,
|
"Caching doesn't work reliably with multi-platform builds (https://github.com/docker/buildx/discussions/1382). " +
|
||||||
"Caching doesn't work reliably with multi-platform builds (https://github.com/docker/buildx/discussions/1382). "+
|
"Instead, perform one cached build per platform and create an Index to join them all together.")
|
||||||
"Instead, perform one cached build per platform and create an Index to join them all together.",
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return build{
|
return build{
|
||||||
@@ -561,6 +545,10 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
|||||||
multierr = errors.Join(multierr, err)
|
multierr = errors.Join(multierr, err)
|
||||||
}
|
}
|
||||||
ia.Dockerfile = dockerfile
|
ia.Dockerfile = dockerfile
|
||||||
|
// Set a default context if one wasn't provided.
|
||||||
|
if ia.Context == nil {
|
||||||
|
ia.Context = &BuildContext{Context: *context}
|
||||||
|
}
|
||||||
|
|
||||||
if err := ia.Dockerfile.validate(preview, context); err != nil {
|
if err := ia.Dockerfile.validate(preview, context); err != nil {
|
||||||
multierr = errors.Join(multierr, err)
|
multierr = errors.Join(multierr, err)
|
||||||
@@ -676,7 +664,7 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
|||||||
|
|
||||||
// Create builds an image using buildkit.
|
// Create builds an image using buildkit.
|
||||||
func (i *Image) Create(
|
func (i *Image) Create(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
preview bool,
|
preview bool,
|
||||||
@@ -725,7 +713,7 @@ func (i *Image) Create(
|
|||||||
return id, state, nil
|
return id, state, nil
|
||||||
}
|
}
|
||||||
if preview && !input.buildable() {
|
if preview && !input.buildable() {
|
||||||
ctx.Log(diag.Warning, "Skipping preview build because some inputs are unknown.")
|
provider.GetLogger(ctx).Warning("Skipping preview build because some inputs are unknown.")
|
||||||
return id, state, nil
|
return id, state, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -763,7 +751,7 @@ func (i *Image) Create(
|
|||||||
// images built locally there is nothing to delete. We treat those cases as
|
// images built locally there is nothing to delete. We treat those cases as
|
||||||
// updates and simply re-build the image without deleting anything.
|
// updates and simply re-build the image without deleting anything.
|
||||||
func (i *Image) Update(
|
func (i *Image) Update(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
_ ImageState,
|
_ ImageState,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
@@ -776,7 +764,7 @@ func (i *Image) Update(
|
|||||||
// Read attempts to read manifests from an image's exports. An image without
|
// Read attempts to read manifests from an image's exports. An image without
|
||||||
// exports will have no manifests.
|
// exports will have no manifests.
|
||||||
func (i *Image) Read(
|
func (i *Image) Read(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
state ImageState,
|
state ImageState,
|
||||||
@@ -810,10 +798,11 @@ func (i *Image) Read(
|
|||||||
// Does a tag with this digest exist?
|
// Does a tag with this digest exist?
|
||||||
descriptors, err := cli.Inspect(ctx, ref)
|
descriptors, err := cli.Inspect(ctx, ref)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Log(diag.Warning, err.Error())
|
provider.GetLogger(ctx).Warning(err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//nolint:gocritic // Bytes aren't copied in a hot path.
|
||||||
for _, d := range descriptors {
|
for _, d := range descriptors {
|
||||||
if d.Platform != nil && d.Platform.Architecture == "unknown" {
|
if d.Platform != nil && d.Platform.Architecture == "unknown" {
|
||||||
// Ignore cache manifests.
|
// Ignore cache manifests.
|
||||||
@@ -839,7 +828,7 @@ func (i *Image) Read(
|
|||||||
// Delete deletes an Image. If the Image was already deleted out-of-band it is
|
// Delete deletes an Image. If the Image was already deleted out-of-band it is
|
||||||
// treated as a success.
|
// treated as a success.
|
||||||
func (i *Image) Delete(
|
func (i *Image) Delete(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
_ string,
|
_ string,
|
||||||
state ImageState,
|
state ImageState,
|
||||||
) error {
|
) error {
|
||||||
@@ -870,9 +859,9 @@ func (i *Image) Delete(
|
|||||||
|
|
||||||
var multierr error
|
var multierr error
|
||||||
for _, digested := range digests {
|
for _, digested := range digests {
|
||||||
err = cli.Delete(context.Context(ctx), digested)
|
err = cli.Delete(ctx, digested)
|
||||||
if errdefs.IsNotFound(err) {
|
if errdefs.IsNotFound(err) {
|
||||||
ctx.Log(diag.Warning, digested+" not found")
|
provider.GetLogger(ctx).Warning(digested + " not found")
|
||||||
continue // Nothing to do.
|
continue // Nothing to do.
|
||||||
}
|
}
|
||||||
multierr = errors.Join(multierr, err)
|
multierr = errors.Join(multierr, err)
|
||||||
@@ -884,7 +873,7 @@ func (i *Image) Delete(
|
|||||||
// Diff re-implements most of the default diff behavior, with the exception of
|
// Diff re-implements most of the default diff behavior, with the exception of
|
||||||
// ignoring "password" changes on registry inputs.
|
// ignoring "password" changes on registry inputs.
|
||||||
func (*Image) Diff(
|
func (*Image) Diff(
|
||||||
_ provider.Context,
|
_ context.Context,
|
||||||
_ string,
|
_ string,
|
||||||
olds ImageState,
|
olds ImageState,
|
||||||
news ImageArgs,
|
news ImageArgs,
|
||||||
@@ -898,7 +887,7 @@ func (*Image) Diff(
|
|||||||
if !reflect.DeepEqual(olds.BuildArgs, news.BuildArgs) {
|
if !reflect.DeepEqual(olds.BuildArgs, news.BuildArgs) {
|
||||||
diff["buildArgs"] = update
|
diff["buildArgs"] = update
|
||||||
}
|
}
|
||||||
if olds.BuildOnPreview != news.BuildOnPreview {
|
if !reflect.DeepEqual(olds.BuildOnPreview, news.BuildOnPreview) {
|
||||||
diff["buildOnPreview"] = update
|
diff["buildOnPreview"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Builder, news.Builder) {
|
if !reflect.DeepEqual(olds.Builder, news.Builder) {
|
||||||
@@ -916,16 +905,20 @@ func (*Image) Diff(
|
|||||||
if !reflect.DeepEqual(olds.Context.Named, news.Context.Named) {
|
if !reflect.DeepEqual(olds.Context.Named, news.Context.Named) {
|
||||||
diff["context.named"] = update
|
diff["context.named"] = update
|
||||||
}
|
}
|
||||||
if olds.Dockerfile.Location != news.Dockerfile.Location {
|
dockerfile, _, _ := news.Context.validate(true, news.Dockerfile)
|
||||||
diff["dockerfile.location"] = update
|
if !reflect.DeepEqual(olds.Dockerfile, dockerfile) {
|
||||||
}
|
diff["dockerfile"] = update
|
||||||
if olds.Dockerfile.Inline != news.Dockerfile.Inline {
|
|
||||||
diff["dockerfile.inline"] = update
|
|
||||||
}
|
}
|
||||||
// Use string comparison to ignore any manifests attached to the export.
|
// Use string comparison to ignore any manifests attached to the export.
|
||||||
if fmt.Sprint(olds.Exports) != fmt.Sprint(news.Exports) {
|
if fmt.Sprint(olds.Exports) != fmt.Sprint(news.Exports) {
|
||||||
diff["exports"] = update
|
diff["exports"] = update
|
||||||
}
|
}
|
||||||
|
// Confirm local exports exist.
|
||||||
|
for idx, e := range news.Exports {
|
||||||
|
if !e.Local.Exists() || !e.Tar.Exists() {
|
||||||
|
diff[fmt.Sprintf("exports[%d]", idx)] = update
|
||||||
|
}
|
||||||
|
}
|
||||||
if !reflect.DeepEqual(olds.Labels, news.Labels) {
|
if !reflect.DeepEqual(olds.Labels, news.Labels) {
|
||||||
diff["labels"] = update
|
diff["labels"] = update
|
||||||
}
|
}
|
||||||
@@ -941,10 +934,10 @@ func (*Image) Diff(
|
|||||||
if !reflect.DeepEqual(olds.Platforms, news.Platforms) {
|
if !reflect.DeepEqual(olds.Platforms, news.Platforms) {
|
||||||
diff["platforms"] = update
|
diff["platforms"] = update
|
||||||
}
|
}
|
||||||
if olds.Pull != news.Pull {
|
if !reflect.DeepEqual(olds.Pull, news.Pull) {
|
||||||
diff["pull"] = update
|
diff["pull"] = update
|
||||||
}
|
}
|
||||||
if olds.Push != news.Push {
|
if !reflect.DeepEqual(olds.Push, news.Push) {
|
||||||
diff["push"] = update
|
diff["push"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Secrets, news.Secrets) {
|
if !reflect.DeepEqual(olds.Secrets, news.Secrets) {
|
||||||
@@ -969,7 +962,7 @@ func (*Image) Diff(
|
|||||||
// Check if anything has changed in our build context.
|
// Check if anything has changed in our build context.
|
||||||
hash, err := hashBuildContext(
|
hash, err := hashBuildContext(
|
||||||
news.Context.Location,
|
news.Context.Location,
|
||||||
news.Dockerfile.Location,
|
dockerfile.Location,
|
||||||
news.Context.Named.Map(),
|
news.Context.Named.Map(),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
@@ -23,7 +24,7 @@ import (
|
|||||||
|
|
||||||
_ "github.com/docker/buildx/driver/docker-container"
|
_ "github.com/docker/buildx/driver/docker-container"
|
||||||
|
|
||||||
"github.com/docker/distribution/reference"
|
"github.com/distribution/reference"
|
||||||
"github.com/moby/buildkit/client"
|
"github.com/moby/buildkit/client"
|
||||||
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
||||||
"github.com/regclient/regclient/types/descriptor"
|
"github.com/regclient/regclient/types/descriptor"
|
||||||
@@ -64,7 +65,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
c := NewMockClient(ctrl)
|
c := NewMockClient(ctrl)
|
||||||
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
|
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
|
||||||
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn(
|
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn(
|
||||||
func(_ provider.Context, b Build) (*client.SolveResponse, error) {
|
func(_ context.Context, b Build) (*client.SolveResponse, error) {
|
||||||
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
|
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
|
||||||
return &client.SolveResponse{
|
return &client.SolveResponse{
|
||||||
ExporterResponse: map[string]string{
|
ExporterResponse: map[string]string{
|
||||||
@@ -82,6 +83,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty(
|
"tags": resource.NewArrayProperty(
|
||||||
[]resource.PropertyValue{
|
[]resource.PropertyValue{
|
||||||
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e"),
|
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e"),
|
||||||
@@ -129,6 +131,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty([]resource.PropertyValue{}),
|
"tags": resource.NewArrayProperty([]resource.PropertyValue{}),
|
||||||
"context": resource.NewObjectProperty(resource.PropertyMap{
|
"context": resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"location": resource.NewStringProperty("testdata/noop"),
|
"location": resource.NewStringProperty("testdata/noop"),
|
||||||
@@ -157,6 +160,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty(
|
"tags": resource.NewArrayProperty(
|
||||||
[]resource.PropertyValue{resource.NewStringProperty("invalid-exports")},
|
[]resource.PropertyValue{resource.NewStringProperty("invalid-exports")},
|
||||||
),
|
),
|
||||||
@@ -189,6 +193,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty(
|
"tags": resource.NewArrayProperty(
|
||||||
[]resource.PropertyValue{resource.NewStringProperty("foo")},
|
[]resource.PropertyValue{resource.NewStringProperty("foo")},
|
||||||
),
|
),
|
||||||
@@ -215,6 +220,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty(
|
"tags": resource.NewArrayProperty(
|
||||||
[]resource.PropertyValue{resource.NewStringProperty("foo")},
|
[]resource.PropertyValue{resource.NewStringProperty("foo")},
|
||||||
),
|
),
|
||||||
@@ -233,7 +239,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
c := NewMockClient(ctrl)
|
c := NewMockClient(ctrl)
|
||||||
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
|
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
|
||||||
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn(
|
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn(
|
||||||
func(_ provider.Context, b Build) (*client.SolveResponse, error) {
|
func(_ context.Context, b Build) (*client.SolveResponse, error) {
|
||||||
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
|
assert.Equal(t, "testdata/noop/Dockerfile", b.BuildOptions().DockerfileName)
|
||||||
return &client.SolveResponse{
|
return &client.SolveResponse{
|
||||||
ExporterResponse: map[string]string{"image.name": "test:latest"},
|
ExporterResponse: map[string]string{"image.name": "test:latest"},
|
||||||
@@ -246,6 +252,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
op: func(t *testing.T) integration.Operation {
|
op: func(t *testing.T) integration.Operation {
|
||||||
return integration.Operation{
|
return integration.Operation{
|
||||||
Inputs: resource.PropertyMap{
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
"tags": resource.NewArrayProperty(
|
"tags": resource.NewArrayProperty(
|
||||||
[]resource.PropertyValue{
|
[]resource.PropertyValue{
|
||||||
resource.NewStringProperty("default-dockerfile"),
|
resource.NewStringProperty("default-dockerfile"),
|
||||||
@@ -266,6 +273,48 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "context defaults to current directory (pulumi-docker-build#78)",
|
||||||
|
client: func(t *testing.T) Client {
|
||||||
|
ctrl := gomock.NewController(t)
|
||||||
|
c := NewMockClient(ctrl)
|
||||||
|
c.EXPECT().BuildKitEnabled().Return(true, nil).AnyTimes()
|
||||||
|
c.EXPECT().Build(gomock.Any(), gomock.AssignableToTypeOf(build{})).DoAndReturn(
|
||||||
|
func(_ context.Context, b Build) (*client.SolveResponse, error) {
|
||||||
|
assert.Equal(t, "FROM alpine:latest", b.Inline())
|
||||||
|
return &client.SolveResponse{
|
||||||
|
ExporterResponse: map[string]string{"image.name": "alpine:latest"},
|
||||||
|
}, nil
|
||||||
|
},
|
||||||
|
).AnyTimes()
|
||||||
|
c.EXPECT().Delete(gomock.Any(), "inline-dockerfile").Return(nil)
|
||||||
|
return c
|
||||||
|
},
|
||||||
|
op: func(t *testing.T) integration.Operation {
|
||||||
|
return integration.Operation{
|
||||||
|
Inputs: resource.PropertyMap{
|
||||||
|
"push": resource.NewBoolProperty(false),
|
||||||
|
"tags": resource.NewArrayProperty(
|
||||||
|
[]resource.PropertyValue{
|
||||||
|
resource.NewStringProperty("inline-dockerfile"),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
"buildOnPreview": resource.NewBoolProperty(true),
|
||||||
|
"dockerfile": resource.NewObjectProperty(resource.PropertyMap{
|
||||||
|
"inline": resource.NewStringProperty("FROM alpine:latest"),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
Hook: func(_, output resource.PropertyMap) {
|
||||||
|
context := output["context"]
|
||||||
|
require.NotNil(t, context)
|
||||||
|
require.True(t, context.IsObject())
|
||||||
|
location := context.ObjectValue()["location"]
|
||||||
|
require.True(t, location.IsString())
|
||||||
|
assert.Equal(t, ".", location.StringValue())
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
@@ -518,7 +567,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "diff if buildOnPreview changes",
|
name: "diff if buildOnPreview doesn't change",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(t *testing.T, ia ImageArgs) ImageArgs {
|
news: func(t *testing.T, ia ImageArgs) ImageArgs {
|
||||||
val := true
|
val := true
|
||||||
@@ -527,6 +576,16 @@ func TestImageDiff(t *testing.T) {
|
|||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "diff if buildOnPreview changes",
|
||||||
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
|
news: func(t *testing.T, ia ImageArgs) ImageArgs {
|
||||||
|
val := false
|
||||||
|
ia.BuildOnPreview = &val
|
||||||
|
return ia
|
||||||
|
},
|
||||||
|
wantChanges: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "diff if ssh changes",
|
name: "diff if ssh changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
@@ -698,6 +757,38 @@ func TestImageDiff(t *testing.T) {
|
|||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "diff if local export doesn't exist",
|
||||||
|
olds: func(t *testing.T, state ImageState) ImageState {
|
||||||
|
state.Exports = []Export{
|
||||||
|
{Local: &ExportLocal{Dest: "not-real"}},
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
},
|
||||||
|
news: func(_ *testing.T, args ImageArgs) ImageArgs {
|
||||||
|
args.Exports = []Export{
|
||||||
|
{Local: &ExportLocal{Dest: "not-real"}},
|
||||||
|
}
|
||||||
|
return args
|
||||||
|
},
|
||||||
|
wantChanges: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "diff if tar export doesn't exist",
|
||||||
|
olds: func(t *testing.T, state ImageState) ImageState {
|
||||||
|
state.Exports = []Export{
|
||||||
|
{Tar: &ExportTar{ExportLocal: ExportLocal{Dest: "not-real"}}},
|
||||||
|
}
|
||||||
|
return state
|
||||||
|
},
|
||||||
|
news: func(_ *testing.T, args ImageArgs) ImageArgs {
|
||||||
|
args.Exports = []Export{
|
||||||
|
{Tar: &ExportTar{ExportLocal: ExportLocal{Dest: "not-real"}}},
|
||||||
|
}
|
||||||
|
return args
|
||||||
|
},
|
||||||
|
wantChanges: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
s := newServer(nil)
|
s := newServer(nil)
|
||||||
@@ -740,7 +831,7 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
|
|
||||||
_, err := args.validate(false)
|
_, err := args.validate(false)
|
||||||
assert.ErrorContains(t, err, "invalid value badexport")
|
assert.ErrorContains(t, err, "invalid value badexport")
|
||||||
assert.ErrorContains(t, err, "platform specifier component must match")
|
assert.ErrorContains(t, err, "OSAndVersion specifier component must matc")
|
||||||
assert.ErrorContains(t, err, "badcachefrom")
|
assert.ErrorContains(t, err, "badcachefrom")
|
||||||
assert.ErrorContains(t, err, "badcacheto")
|
assert.ErrorContains(t, err, "badcacheto")
|
||||||
assert.ErrorContains(t, err, "invalid reference format")
|
assert.ErrorContains(t, err, "invalid reference format")
|
||||||
@@ -944,17 +1035,14 @@ func TestBuildable(t *testing.T) {
|
|||||||
|
|
||||||
func TestToBuild(t *testing.T) {
|
func TestToBuild(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
ctrl := gomock.NewController(t)
|
Max := Max
|
||||||
pctx := NewMockProviderContext(ctrl)
|
|
||||||
pctx.EXPECT().Log(gomock.Any(), gomock.Any()).AnyTimes()
|
|
||||||
max := Max
|
|
||||||
|
|
||||||
ia := ImageArgs{
|
ia := ImageArgs{
|
||||||
Tags: []string{"foo", "bar"},
|
Tags: []string{"foo", "bar"},
|
||||||
Platforms: []Platform{"linux/amd64"},
|
Platforms: []Platform{"linux/amd64"},
|
||||||
Context: &BuildContext{Context: Context{Location: "testdata/noop"}},
|
Context: &BuildContext{Context: Context{Location: "testdata/noop"}},
|
||||||
CacheTo: []CacheTo{
|
CacheTo: []CacheTo{
|
||||||
{GHA: &CacheToGitHubActions{CacheWithMode: CacheWithMode{&max}}},
|
{GHA: &CacheToGitHubActions{CacheWithMode: CacheWithMode{&Max}}},
|
||||||
{
|
{
|
||||||
Registry: &CacheToRegistry{
|
Registry: &CacheToRegistry{
|
||||||
CacheFromRegistry: CacheFromRegistry{Ref: "docker.io/foo/bar"},
|
CacheFromRegistry: CacheFromRegistry{Ref: "docker.io/foo/bar"},
|
||||||
@@ -973,6 +1061,6 @@ func TestToBuild(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := ia.toBuild(pctx, false)
|
_, err := ia.toBuild(context.Background(), false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -22,9 +24,10 @@ import (
|
|||||||
// For examples/docs.
|
// For examples/docs.
|
||||||
_ "embed"
|
_ "embed"
|
||||||
|
|
||||||
|
"github.com/regclient/regclient/types/errs"
|
||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
"github.com/pulumi/pulumi-go-provider/infer"
|
"github.com/pulumi/pulumi-go-provider/infer"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -50,10 +53,17 @@ type Index struct{}
|
|||||||
type IndexArgs struct {
|
type IndexArgs struct {
|
||||||
Tag string `pulumi:"tag"`
|
Tag string `pulumi:"tag"`
|
||||||
Sources []string `pulumi:"sources"`
|
Sources []string `pulumi:"sources"`
|
||||||
Push bool `pulumi:"push,optional"`
|
Push *bool `pulumi:"push,optional"`
|
||||||
Registry *Registry `pulumi:"registry,optional"`
|
Registry *Registry `pulumi:"registry,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (i IndexArgs) isPushed() bool {
|
||||||
|
if i.Push == nil {
|
||||||
|
return true // default
|
||||||
|
}
|
||||||
|
return *i.Push
|
||||||
|
}
|
||||||
|
|
||||||
// IndexState captures the state of an Index.
|
// IndexState captures the state of an Index.
|
||||||
type IndexState struct {
|
type IndexState struct {
|
||||||
IndexArgs
|
IndexArgs
|
||||||
@@ -64,13 +74,25 @@ type IndexState struct {
|
|||||||
// Annotate sets docstrings and defaults on Index.
|
// Annotate sets docstrings and defaults on Index.
|
||||||
func (i *Index) Annotate(a infer.Annotator) {
|
func (i *Index) Annotate(a infer.Annotator) {
|
||||||
a.Describe(&i, dedent(`
|
a.Describe(&i, dedent(`
|
||||||
An index (or manifest list) referencing one or more existing images.
|
A wrapper around "docker buildx imagetools create" to create an index
|
||||||
|
(or manifest list) referencing one or more existing images.
|
||||||
|
|
||||||
Useful for crafting a multi-platform image from several
|
In most cases you do not need an "Index" to build a multi-platform
|
||||||
platform-specific images.
|
image -- specifying multiple platforms on the "Image" will handle this
|
||||||
|
for you automatically.
|
||||||
|
|
||||||
This creates an OCI image index or a Docker manifest list depending on
|
However, as of April 2024, building multi-platform images _with
|
||||||
the media types of the source images.
|
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.
|
||||||
`)+
|
`)+
|
||||||
"\n\n"+_indexExamples,
|
"\n\n"+_indexExamples,
|
||||||
)
|
)
|
||||||
@@ -109,7 +131,7 @@ func (i *IndexState) Annotate(a infer.Annotator) {
|
|||||||
|
|
||||||
// Create is a passthrough to Update.
|
// Create is a passthrough to Update.
|
||||||
func (i *Index) Create(
|
func (i *Index) Create(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
preview bool,
|
preview bool,
|
||||||
@@ -121,7 +143,7 @@ func (i *Index) Create(
|
|||||||
// Update performs `buildx imagetools create` to create a new OCI index /
|
// Update performs `buildx imagetools create` to create a new OCI index /
|
||||||
// manifest list.
|
// manifest list.
|
||||||
func (i *Index) Update(
|
func (i *Index) Update(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
state IndexState,
|
state IndexState,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
@@ -139,9 +161,9 @@ func (i *Index) Update(
|
|||||||
return state, nil
|
return state, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Log(diag.Debug, fmt.Sprintf("creating index with tag %s and sources %s", input.Tag, input.Sources))
|
provider.GetLogger(ctx).Debugf("creating index with tag %s and sources %s", input.Tag, input.Sources)
|
||||||
|
|
||||||
err = cli.ManifestCreate(ctx, input.Push, input.Tag, input.Sources...)
|
err = cli.ManifestCreate(ctx, input.isPushed(), input.Tag, input.Sources...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return state, fmt.Errorf("creating: %w", err)
|
return state, fmt.Errorf("creating: %w", err)
|
||||||
}
|
}
|
||||||
@@ -154,7 +176,7 @@ func (i *Index) Update(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (i *Index) Read(
|
func (i *Index) Read(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
state IndexState,
|
state IndexState,
|
||||||
@@ -162,8 +184,8 @@ func (i *Index) Read(
|
|||||||
state.IndexArgs = input
|
state.IndexArgs = input
|
||||||
state.Ref = input.Tag
|
state.Ref = input.Tag
|
||||||
|
|
||||||
if !input.Push {
|
if !input.isPushed() {
|
||||||
ctx.Log(diag.Debug, "skipping read because index was not pushed")
|
provider.GetLogger(ctx).Debug("skipping read because index was not pushed")
|
||||||
return name, input, state, nil // Nothing to read.
|
return name, input, state, nil // Nothing to read.
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,15 +194,15 @@ func (i *Index) Read(
|
|||||||
return name, input, state, err
|
return name, input, state, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Log(diag.Debug, "reading index with tag "+input.Tag)
|
provider.GetLogger(ctx).Debug("reading index with tag " + input.Tag)
|
||||||
|
|
||||||
digest, err := cli.ManifestInspect(ctx, input.Tag)
|
digest, err := cli.ManifestInspect(ctx, input.Tag)
|
||||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") && input.Push {
|
if errors.Is(err, errs.ErrNotFound) {
|
||||||
// A remote tag was expected but isn't there -- delete the resource.
|
// A remote tag was expected but isn't there -- delete the resource.
|
||||||
return "", input, state, err
|
return "", input, state, nil
|
||||||
}
|
}
|
||||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") && !input.Push {
|
if errors.Is(err, errs.ErrHTTPUnauthorized) {
|
||||||
// Nothing was pushed, so just use the tag without digest..
|
provider.GetLogger(ctx).Warning("invalid credentials, skipping")
|
||||||
return name, input, state, nil
|
return name, input, state, nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -199,12 +221,12 @@ func (i *Index) Read(
|
|||||||
// exist on the same registry. This is sufficient to handle the most common
|
// exist on the same registry. This is sufficient to handle the most common
|
||||||
// cases for now.
|
// cases for now.
|
||||||
func (i *Index) Check(
|
func (i *Index) Check(
|
||||||
_ provider.Context,
|
ctx context.Context,
|
||||||
_ string,
|
_ string,
|
||||||
_ resource.PropertyMap,
|
_ resource.PropertyMap,
|
||||||
news resource.PropertyMap,
|
news resource.PropertyMap,
|
||||||
) (IndexArgs, []provider.CheckFailure, error) {
|
) (IndexArgs, []provider.CheckFailure, error) {
|
||||||
args, failures, err := infer.DefaultCheck[IndexArgs](news)
|
args, failures, err := infer.DefaultCheck[IndexArgs](ctx, news)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return args, failures, err
|
return args, failures, err
|
||||||
}
|
}
|
||||||
@@ -235,8 +257,8 @@ func (i *Index) Check(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete attempts to delete the remote manifest.
|
// Delete attempts to delete the remote manifest.
|
||||||
func (i *Index) Delete(ctx provider.Context, _ string, state IndexState) error {
|
func (i *Index) Delete(ctx context.Context, _ string, state IndexState) error {
|
||||||
if !state.Push {
|
if !state.isPushed() {
|
||||||
return nil // Nothing to delete.
|
return nil // Nothing to delete.
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +281,7 @@ func (i *Index) Delete(ctx provider.Context, _ string, state IndexState) error {
|
|||||||
// force `ignoreChanges`-style behavior on our registry password (which can
|
// force `ignoreChanges`-style behavior on our registry password (which can
|
||||||
// change all the time due to short-lived AWS credentials).
|
// change all the time due to short-lived AWS credentials).
|
||||||
func (i *Index) Diff(
|
func (i *Index) Diff(
|
||||||
_ provider.Context,
|
_ context.Context,
|
||||||
_ string,
|
_ string,
|
||||||
olds IndexState,
|
olds IndexState,
|
||||||
news IndexArgs,
|
news IndexArgs,
|
||||||
@@ -297,10 +319,10 @@ func (i *Index) Diff(
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// client produces a CLI client with scoped to this resource and layered on top
|
// client produces a CLI client scoped to this resource and layered on top of
|
||||||
// of any host-level credentials.
|
// any host-level credentials.
|
||||||
func (i *Index) client(
|
func (i *Index) client(
|
||||||
ctx provider.Context,
|
ctx context.Context,
|
||||||
_ IndexState,
|
_ IndexState,
|
||||||
args IndexArgs,
|
args IndexArgs,
|
||||||
) (Client, error) {
|
) (Client, error) {
|
||||||
|
|||||||
@@ -18,8 +18,10 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/regclient/regclient/types/errs"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"go.uber.org/mock/gomock"
|
||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
"github.com/pulumi/pulumi-go-provider/integration"
|
"github.com/pulumi/pulumi-go-provider/integration"
|
||||||
@@ -84,6 +86,40 @@ func TestIndexLifecycle(t *testing.T) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "expired credentials",
|
||||||
|
client: func(t *testing.T) Client {
|
||||||
|
ctrl := gomock.NewController(t)
|
||||||
|
c := NewMockClient(ctrl)
|
||||||
|
c.EXPECT().ManifestCreate(gomock.Any(), true, gomock.Any(), gomock.Any())
|
||||||
|
c.EXPECT().ManifestInspect(gomock.Any(), gomock.Any()).Return("", errs.ErrHTTPUnauthorized)
|
||||||
|
c.EXPECT().ManifestDelete(gomock.Any(), gomock.Any()).Return(nil)
|
||||||
|
return c
|
||||||
|
},
|
||||||
|
op: func(t *testing.T) integration.Operation {
|
||||||
|
return integration.Operation{
|
||||||
|
Inputs: resource.PropertyMap{
|
||||||
|
"tag": resource.NewStringProperty(
|
||||||
|
"docker.io/pulumibot/buildkit-e2e:manifest",
|
||||||
|
),
|
||||||
|
"sources": resource.NewArrayProperty([]resource.PropertyValue{
|
||||||
|
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:arm64"),
|
||||||
|
resource.NewStringProperty("docker.io/pulumibot/buildkit-e2e:amd64"),
|
||||||
|
}),
|
||||||
|
"push": resource.NewBoolProperty(true),
|
||||||
|
"registry": resource.NewObjectProperty(resource.PropertyMap{
|
||||||
|
"address": resource.NewStringProperty("docker.io"),
|
||||||
|
"username": resource.NewStringProperty("pulumibot"),
|
||||||
|
"password": resource.NewSecretProperty(&resource.Secret{
|
||||||
|
Element: resource.NewStringProperty(
|
||||||
|
os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
25
provider/internal/mockclient_test.go
generated
25
provider/internal/mockclient_test.go
generated
@@ -15,7 +15,6 @@ import (
|
|||||||
pb "github.com/docker/buildx/controller/pb"
|
pb "github.com/docker/buildx/controller/pb"
|
||||||
client "github.com/moby/buildkit/client"
|
client "github.com/moby/buildkit/client"
|
||||||
session "github.com/moby/buildkit/session"
|
session "github.com/moby/buildkit/session"
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
|
||||||
descriptor "github.com/regclient/regclient/types/descriptor"
|
descriptor "github.com/regclient/regclient/types/descriptor"
|
||||||
gomock "go.uber.org/mock/gomock"
|
gomock "go.uber.org/mock/gomock"
|
||||||
)
|
)
|
||||||
@@ -44,7 +43,7 @@ func (m *MockClient) EXPECT() *MockClientMockRecorder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Build mocks base method.
|
// Build mocks base method.
|
||||||
func (m *MockClient) Build(ctx provider.Context, b Build) (*client.SolveResponse, error) {
|
func (m *MockClient) Build(ctx context.Context, b Build) (*client.SolveResponse, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "Build", ctx, b)
|
ret := m.ctrl.Call(m, "Build", ctx, b)
|
||||||
ret0, _ := ret[0].(*client.SolveResponse)
|
ret0, _ := ret[0].(*client.SolveResponse)
|
||||||
@@ -71,13 +70,13 @@ func (c *ClientBuildCall) Return(arg0 *client.SolveResponse, arg1 error) *Client
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientBuildCall) Do(f func(provider.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
func (c *ClientBuildCall) Do(f func(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
||||||
c.Call = c.Call.Do(f)
|
c.Call = c.Call.Do(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
||||||
func (c *ClientBuildCall) DoAndReturn(f func(provider.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
func (c *ClientBuildCall) DoAndReturn(f func(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
@@ -199,7 +198,7 @@ func (c *ClientInspectCall) DoAndReturn(f func(context.Context, string) ([]descr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ManifestCreate mocks base method.
|
// ManifestCreate mocks base method.
|
||||||
func (m *MockClient) ManifestCreate(ctx provider.Context, push bool, target string, refs ...string) error {
|
func (m *MockClient) ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
varargs := []any{ctx, push, target}
|
varargs := []any{ctx, push, target}
|
||||||
for _, a := range refs {
|
for _, a := range refs {
|
||||||
@@ -230,19 +229,19 @@ func (c *ClientManifestCreateCall) Return(arg0 error) *ClientManifestCreateCall
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientManifestCreateCall) Do(f func(provider.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
func (c *ClientManifestCreateCall) Do(f func(context.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
||||||
c.Call = c.Call.Do(f)
|
c.Call = c.Call.Do(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
||||||
func (c *ClientManifestCreateCall) DoAndReturn(f func(provider.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
func (c *ClientManifestCreateCall) DoAndReturn(f func(context.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// ManifestDelete mocks base method.
|
// ManifestDelete mocks base method.
|
||||||
func (m *MockClient) ManifestDelete(ctx provider.Context, target string) error {
|
func (m *MockClient) ManifestDelete(ctx context.Context, target string) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "ManifestDelete", ctx, target)
|
ret := m.ctrl.Call(m, "ManifestDelete", ctx, target)
|
||||||
ret0, _ := ret[0].(error)
|
ret0, _ := ret[0].(error)
|
||||||
@@ -268,19 +267,19 @@ func (c *ClientManifestDeleteCall) Return(arg0 error) *ClientManifestDeleteCall
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientManifestDeleteCall) Do(f func(provider.Context, string) error) *ClientManifestDeleteCall {
|
func (c *ClientManifestDeleteCall) Do(f func(context.Context, string) error) *ClientManifestDeleteCall {
|
||||||
c.Call = c.Call.Do(f)
|
c.Call = c.Call.Do(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
||||||
func (c *ClientManifestDeleteCall) DoAndReturn(f func(provider.Context, string) error) *ClientManifestDeleteCall {
|
func (c *ClientManifestDeleteCall) DoAndReturn(f func(context.Context, string) error) *ClientManifestDeleteCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// ManifestInspect mocks base method.
|
// ManifestInspect mocks base method.
|
||||||
func (m *MockClient) ManifestInspect(ctx provider.Context, target string) (string, error) {
|
func (m *MockClient) ManifestInspect(ctx context.Context, target string) (string, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "ManifestInspect", ctx, target)
|
ret := m.ctrl.Call(m, "ManifestInspect", ctx, target)
|
||||||
ret0, _ := ret[0].(string)
|
ret0, _ := ret[0].(string)
|
||||||
@@ -307,13 +306,13 @@ func (c *ClientManifestInspectCall) Return(arg0 string, arg1 error) *ClientManif
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientManifestInspectCall) Do(f func(provider.Context, string) (string, error)) *ClientManifestInspectCall {
|
func (c *ClientManifestInspectCall) Do(f func(context.Context, string) (string, error)) *ClientManifestInspectCall {
|
||||||
c.Call = c.Call.Do(f)
|
c.Call = c.Call.Do(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
||||||
func (c *ClientManifestInspectCall) DoAndReturn(f func(provider.Context, string) (string, error)) *ClientManifestInspectCall {
|
func (c *ClientManifestInspectCall) DoAndReturn(f func(context.Context, string) (string, error)) *ClientManifestInspectCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
386
provider/internal/mockprovidercontext_test.go
generated
386
provider/internal/mockprovidercontext_test.go
generated
@@ -1,386 +0,0 @@
|
|||||||
// Code generated by MockGen. DO NOT EDIT.
|
|
||||||
// Source: providercontext.go
|
|
||||||
//
|
|
||||||
// Generated by this command:
|
|
||||||
//
|
|
||||||
// mockgen -typed -package internal -source providercontext.go -destination mockprovidercontext_test.go --self_package github.com/pulumi/pulumi-docker/provider/v4/internal
|
|
||||||
//
|
|
||||||
// Package internal is a generated GoMock package.
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
reflect "reflect"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
|
||||||
diag "github.com/pulumi/pulumi/sdk/v3/go/common/diag"
|
|
||||||
gomock "go.uber.org/mock/gomock"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MockProviderContext is a mock of ProviderContext interface.
|
|
||||||
type MockProviderContext struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockProviderContextMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockProviderContextMockRecorder is the mock recorder for MockProviderContext.
|
|
||||||
type MockProviderContextMockRecorder struct {
|
|
||||||
mock *MockProviderContext
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockProviderContext creates a new mock instance.
|
|
||||||
func NewMockProviderContext(ctrl *gomock.Controller) *MockProviderContext {
|
|
||||||
mock := &MockProviderContext{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockProviderContextMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockProviderContext) EXPECT() *MockProviderContextMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deadline mocks base method.
|
|
||||||
func (m *MockProviderContext) Deadline() (time.Time, bool) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Deadline")
|
|
||||||
ret0, _ := ret[0].(time.Time)
|
|
||||||
ret1, _ := ret[1].(bool)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deadline indicates an expected call of Deadline.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Deadline() *ProviderContextDeadlineCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Deadline", reflect.TypeOf((*MockProviderContext)(nil).Deadline))
|
|
||||||
return &ProviderContextDeadlineCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextDeadlineCall wrap *gomock.Call
|
|
||||||
type ProviderContextDeadlineCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextDeadlineCall) Return(deadline time.Time, ok bool) *ProviderContextDeadlineCall {
|
|
||||||
c.Call = c.Call.Return(deadline, ok)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextDeadlineCall) Do(f func() (time.Time, bool)) *ProviderContextDeadlineCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextDeadlineCall) DoAndReturn(f func() (time.Time, bool)) *ProviderContextDeadlineCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Done mocks base method.
|
|
||||||
func (m *MockProviderContext) Done() <-chan struct{} {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Done")
|
|
||||||
ret0, _ := ret[0].(<-chan struct{})
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Done indicates an expected call of Done.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Done() *ProviderContextDoneCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Done", reflect.TypeOf((*MockProviderContext)(nil).Done))
|
|
||||||
return &ProviderContextDoneCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextDoneCall wrap *gomock.Call
|
|
||||||
type ProviderContextDoneCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextDoneCall) Return(arg0 <-chan struct{}) *ProviderContextDoneCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextDoneCall) Do(f func() <-chan struct{}) *ProviderContextDoneCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextDoneCall) DoAndReturn(f func() <-chan struct{}) *ProviderContextDoneCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Err mocks base method.
|
|
||||||
func (m *MockProviderContext) Err() error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Err")
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Err indicates an expected call of Err.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Err() *ProviderContextErrCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Err", reflect.TypeOf((*MockProviderContext)(nil).Err))
|
|
||||||
return &ProviderContextErrCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextErrCall wrap *gomock.Call
|
|
||||||
type ProviderContextErrCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextErrCall) Return(arg0 error) *ProviderContextErrCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextErrCall) Do(f func() error) *ProviderContextErrCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextErrCall) DoAndReturn(f func() error) *ProviderContextErrCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Log mocks base method.
|
|
||||||
func (m *MockProviderContext) Log(severity diag.Severity, msg string) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
m.ctrl.Call(m, "Log", severity, msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Log indicates an expected call of Log.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Log(severity, msg any) *ProviderContextLogCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Log", reflect.TypeOf((*MockProviderContext)(nil).Log), severity, msg)
|
|
||||||
return &ProviderContextLogCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextLogCall wrap *gomock.Call
|
|
||||||
type ProviderContextLogCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextLogCall) Return() *ProviderContextLogCall {
|
|
||||||
c.Call = c.Call.Return()
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextLogCall) Do(f func(diag.Severity, string)) *ProviderContextLogCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextLogCall) DoAndReturn(f func(diag.Severity, string)) *ProviderContextLogCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// LogStatus mocks base method.
|
|
||||||
func (m *MockProviderContext) LogStatus(severity diag.Severity, msg string) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
m.ctrl.Call(m, "LogStatus", severity, msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
// LogStatus indicates an expected call of LogStatus.
|
|
||||||
func (mr *MockProviderContextMockRecorder) LogStatus(severity, msg any) *ProviderContextLogStatusCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LogStatus", reflect.TypeOf((*MockProviderContext)(nil).LogStatus), severity, msg)
|
|
||||||
return &ProviderContextLogStatusCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextLogStatusCall wrap *gomock.Call
|
|
||||||
type ProviderContextLogStatusCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextLogStatusCall) Return() *ProviderContextLogStatusCall {
|
|
||||||
c.Call = c.Call.Return()
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextLogStatusCall) Do(f func(diag.Severity, string)) *ProviderContextLogStatusCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextLogStatusCall) DoAndReturn(f func(diag.Severity, string)) *ProviderContextLogStatusCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// LogStatusf mocks base method.
|
|
||||||
func (m *MockProviderContext) LogStatusf(severity diag.Severity, msg string, args ...any) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
varargs := []any{severity, msg}
|
|
||||||
for _, a := range args {
|
|
||||||
varargs = append(varargs, a)
|
|
||||||
}
|
|
||||||
m.ctrl.Call(m, "LogStatusf", varargs...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// LogStatusf indicates an expected call of LogStatusf.
|
|
||||||
func (mr *MockProviderContextMockRecorder) LogStatusf(severity, msg any, args ...any) *ProviderContextLogStatusfCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
varargs := append([]any{severity, msg}, args...)
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LogStatusf", reflect.TypeOf((*MockProviderContext)(nil).LogStatusf), varargs...)
|
|
||||||
return &ProviderContextLogStatusfCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextLogStatusfCall wrap *gomock.Call
|
|
||||||
type ProviderContextLogStatusfCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextLogStatusfCall) Return() *ProviderContextLogStatusfCall {
|
|
||||||
c.Call = c.Call.Return()
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextLogStatusfCall) Do(f func(diag.Severity, string, ...any)) *ProviderContextLogStatusfCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextLogStatusfCall) DoAndReturn(f func(diag.Severity, string, ...any)) *ProviderContextLogStatusfCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Logf mocks base method.
|
|
||||||
func (m *MockProviderContext) Logf(severity diag.Severity, msg string, args ...any) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
varargs := []any{severity, msg}
|
|
||||||
for _, a := range args {
|
|
||||||
varargs = append(varargs, a)
|
|
||||||
}
|
|
||||||
m.ctrl.Call(m, "Logf", varargs...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Logf indicates an expected call of Logf.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Logf(severity, msg any, args ...any) *ProviderContextLogfCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
varargs := append([]any{severity, msg}, args...)
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Logf", reflect.TypeOf((*MockProviderContext)(nil).Logf), varargs...)
|
|
||||||
return &ProviderContextLogfCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextLogfCall wrap *gomock.Call
|
|
||||||
type ProviderContextLogfCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextLogfCall) Return() *ProviderContextLogfCall {
|
|
||||||
c.Call = c.Call.Return()
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextLogfCall) Do(f func(diag.Severity, string, ...any)) *ProviderContextLogfCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextLogfCall) DoAndReturn(f func(diag.Severity, string, ...any)) *ProviderContextLogfCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// RuntimeInformation mocks base method.
|
|
||||||
func (m *MockProviderContext) RuntimeInformation() provider.RunInfo {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "RuntimeInformation")
|
|
||||||
ret0, _ := ret[0].(provider.RunInfo)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// RuntimeInformation indicates an expected call of RuntimeInformation.
|
|
||||||
func (mr *MockProviderContextMockRecorder) RuntimeInformation() *ProviderContextRuntimeInformationCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RuntimeInformation", reflect.TypeOf((*MockProviderContext)(nil).RuntimeInformation))
|
|
||||||
return &ProviderContextRuntimeInformationCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextRuntimeInformationCall wrap *gomock.Call
|
|
||||||
type ProviderContextRuntimeInformationCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextRuntimeInformationCall) Return(arg0 provider.RunInfo) *ProviderContextRuntimeInformationCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextRuntimeInformationCall) Do(f func() provider.RunInfo) *ProviderContextRuntimeInformationCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextRuntimeInformationCall) DoAndReturn(f func() provider.RunInfo) *ProviderContextRuntimeInformationCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Value mocks base method.
|
|
||||||
func (m *MockProviderContext) Value(key any) any {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Value", key)
|
|
||||||
ret0, _ := ret[0].(any)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Value indicates an expected call of Value.
|
|
||||||
func (mr *MockProviderContextMockRecorder) Value(key any) *ProviderContextValueCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Value", reflect.TypeOf((*MockProviderContext)(nil).Value), key)
|
|
||||||
return &ProviderContextValueCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProviderContextValueCall wrap *gomock.Call
|
|
||||||
type ProviderContextValueCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *ProviderContextValueCall) Return(arg0 any) *ProviderContextValueCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *ProviderContextValueCall) Do(f func(any) any) *ProviderContextValueCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *ProviderContextValueCall) DoAndReturn(f func(any) any) *ProviderContextValueCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
@@ -46,7 +46,7 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// _mockClientKey is used by tests to inject a mock Docker client.
|
// _mockClientKey is used by tests to inject a mock Docker client.
|
||||||
var _mockClientKey struct{}
|
var _mockClientKey any = "mock-client"
|
||||||
|
|
||||||
// Annotate provides user-facing descriptions and defaults for Config's fields.
|
// Annotate provides user-facing descriptions and defaults for Config's fields.
|
||||||
func (c *Config) Annotate(a infer.Annotator) {
|
func (c *Config) Annotate(a infer.Annotator) {
|
||||||
@@ -55,7 +55,7 @@ func (c *Config) Annotate(a infer.Annotator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Configure validates and processes user-provided configuration values.
|
// Configure validates and processes user-provided configuration values.
|
||||||
func (c *Config) Configure(_ provider.Context) error {
|
func (c *Config) Configure(_ context.Context) error {
|
||||||
h, err := newHost(c)
|
h, err := newHost(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("getting host: %w", err)
|
return fmt.Errorf("getting host: %w", err)
|
||||||
@@ -69,24 +69,25 @@ func NewBuildxProvider() provider.Provider {
|
|||||||
return infer.Provider(
|
return infer.Provider(
|
||||||
infer.Options{
|
infer.Options{
|
||||||
Metadata: pschema.Metadata{
|
Metadata: pschema.Metadata{
|
||||||
DisplayName: "docker-build",
|
DisplayName: "docker-build",
|
||||||
Keywords: []string{"docker", "buildkit", "buildx"},
|
Keywords: []string{"docker", "buildkit", "buildx", "kind/native"},
|
||||||
Description: "A Pulumi provider for Docker buildx",
|
Description: "A Pulumi provider for building modern Docker images with buildx and BuildKit.",
|
||||||
Homepage: "https://pulumi.io",
|
Homepage: "https://pulumi.com",
|
||||||
Publisher: "pulumi",
|
Publisher: "Pulumi",
|
||||||
License: "Apache-2.0",
|
License: "Apache-2.0",
|
||||||
Repository: "https://github.com/pulumi/pulumi-docker-build",
|
Repository: "https://github.com/pulumi/pulumi-docker-build",
|
||||||
PluginDownloadURL: "github.com/pulumi/pulumi-docker-build",
|
|
||||||
LanguageMap: map[string]any{
|
LanguageMap: map[string]any{
|
||||||
"go": gogen.GoPackageInfo{
|
"go": gogen.GoPackageInfo{
|
||||||
// GenerateResourceContainerTypes: true,
|
// GenerateResourceContainerTypes: true,
|
||||||
Generics: gogen.GenericsSettingSideBySide,
|
RespectSchemaVersion: true,
|
||||||
|
Generics: gogen.GenericsSettingSideBySide,
|
||||||
PackageImportAliases: map[string]string{
|
PackageImportAliases: map[string]string{
|
||||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild": "dockerbuild",
|
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild": "dockerbuild",
|
||||||
},
|
},
|
||||||
ImportBasePath: "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild",
|
ImportBasePath: "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild",
|
||||||
},
|
},
|
||||||
"csharp": csgen.CSharpPackageInfo{
|
"csharp": csgen.CSharpPackageInfo{
|
||||||
|
RespectSchemaVersion: true,
|
||||||
PackageReferences: map[string]string{
|
PackageReferences: map[string]string{
|
||||||
"Pulumi": "3.*",
|
"Pulumi": "3.*",
|
||||||
},
|
},
|
||||||
@@ -101,11 +102,13 @@ func NewBuildxProvider() provider.Provider {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"nodejs": tsgen.NodePackageInfo{
|
"nodejs": tsgen.NodePackageInfo{
|
||||||
|
RespectSchemaVersion: true,
|
||||||
Dependencies: map[string]string{
|
Dependencies: map[string]string{
|
||||||
"@pulumi/pulumi": "^3.0.0",
|
"@pulumi/pulumi": "^3.0.0",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"python": pygen.PackageInfo{
|
"python": pygen.PackageInfo{
|
||||||
|
RespectSchemaVersion: true,
|
||||||
PyProject: struct {
|
PyProject: struct {
|
||||||
Enabled bool `json:"enabled,omitempty"`
|
Enabled bool `json:"enabled,omitempty"`
|
||||||
}{Enabled: true},
|
}{Enabled: true},
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import (
|
|||||||
"github.com/pulumi/pulumi-go-provider/infer"
|
"github.com/pulumi/pulumi-go-provider/infer"
|
||||||
"github.com/pulumi/pulumi-go-provider/integration"
|
"github.com/pulumi/pulumi-go-provider/integration"
|
||||||
mwcontext "github.com/pulumi/pulumi-go-provider/middleware/context"
|
mwcontext "github.com/pulumi/pulumi-go-provider/middleware/context"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigure(t *testing.T) {
|
func TestConfigure(t *testing.T) {
|
||||||
@@ -59,24 +60,29 @@ func TestAnnotate(t *testing.T) {
|
|||||||
func TestSchema(t *testing.T) {
|
func TestSchema(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
Schema(context.Background(), "v4")
|
s := newServer(nil)
|
||||||
|
|
||||||
|
_, err := s.GetSchema(provider.GetSchemaRequest{Version: 0})
|
||||||
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
type annotator struct{}
|
type annotator struct{}
|
||||||
|
|
||||||
func (annotator) Describe(_ any, _ string) {}
|
func (annotator) Describe(_ any, _ string) {}
|
||||||
func (annotator) SetDefault(_, _ any, _ ...string) {}
|
func (annotator) SetDefault(_, _ any, _ ...string) {}
|
||||||
func (annotator) SetToken(_, _ string) {}
|
func (annotator) SetToken(tokens.ModuleName, tokens.TypeName) {}
|
||||||
|
func (annotator) AddAlias(tokens.ModuleName, tokens.TypeName) {}
|
||||||
|
func (annotator) SetResourceDeprecationMessage(_ string) {}
|
||||||
|
|
||||||
func newServer(client Client) integration.Server {
|
func newServer(client Client) integration.Server {
|
||||||
p := NewBuildxProvider()
|
p := NewBuildxProvider()
|
||||||
|
|
||||||
// Inject a mock client if provided.
|
// Inject a mock client if provided.
|
||||||
if client != nil {
|
if client != nil {
|
||||||
p = mwcontext.Wrap(p, func(ctx provider.Context) provider.Context {
|
p = mwcontext.Wrap(p, func(ctx context.Context) context.Context {
|
||||||
return provider.CtxWithValue(ctx, _mockClientKey, client)
|
return context.WithValue(ctx, _mockClientKey, client)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return integration.NewServer("docker", semver.Version{Major: 4}, p)
|
return integration.NewServer("docker-build", semver.Version{Major: 0}, p)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
// Copyright 2024, 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.
|
|
||||||
|
|
||||||
//go:generate go run go.uber.org/mock/mockgen -typed -package internal -source providercontext.go -destination mockprovidercontext_test.go --self_package github.com/pulumi/pulumi-docker/provider/v4/internal
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
provider "github.com/pulumi/pulumi-go-provider"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ProviderContext is a workaround for
|
|
||||||
// https://github.com/pulumi/pulumi-go-provider/issues/159
|
|
||||||
type ProviderContext interface {
|
|
||||||
provider.Context
|
|
||||||
}
|
|
||||||
@@ -16,18 +16,18 @@ package provider
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/pulumi/pulumi-docker-build/provider/internal"
|
"github.com/pulumi/pulumi-docker-build/provider/internal"
|
||||||
"github.com/pulumi/pulumi-docker-build/provider/internal/deprecated"
|
"github.com/pulumi/pulumi-docker-build/provider/internal/deprecated"
|
||||||
gp "github.com/pulumi/pulumi-go-provider"
|
gp "github.com/pulumi/pulumi-go-provider"
|
||||||
|
"github.com/pulumi/pulumi/pkg/v3/codegen/schema"
|
||||||
"github.com/pulumi/pulumi/pkg/v3/resource/provider"
|
"github.com/pulumi/pulumi/pkg/v3/resource/provider"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
|
|
||||||
rpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
|
rpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Version is initialized by the Go linker to contain the semver of this build.
|
// Version is initialized by the Go linker to contain the semver of this build.
|
||||||
var Version string
|
var Version = "0.0.1"
|
||||||
|
|
||||||
// Name needs to match $PACK in Makefile.
|
// Name needs to match $PACK in Makefile.
|
||||||
const Name string = "docker-build"
|
const Name string = "docker-build"
|
||||||
@@ -39,11 +39,7 @@ func Serve() error {
|
|||||||
|
|
||||||
// New creates a new provider.
|
// New creates a new provider.
|
||||||
func New(host *provider.HostClient) (rpc.ResourceProviderServer, error) {
|
func New(host *provider.HostClient) (rpc.ResourceProviderServer, error) {
|
||||||
server, err := gp.RawServer(Name, Version, internal.NewBuildxProvider())(host)
|
return gp.RawServer(Name, Version, configurableProvider(internal.NewBuildxProvider()))(host)
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("building raw server: %w", err)
|
|
||||||
}
|
|
||||||
return &configurableProvider{ResourceProviderServer: server}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// configurableProvider is a workaround for
|
// configurableProvider is a workaround for
|
||||||
@@ -54,26 +50,26 @@ func New(host *provider.HostClient) (rpc.ResourceProviderServer, error) {
|
|||||||
//
|
//
|
||||||
// If you find yourself in a position where you need to copy this -- STOP!
|
// If you find yourself in a position where you need to copy this -- STOP!
|
||||||
// https://github.com/pulumi/pulumi/pull/15032 should be merged with this fix.
|
// https://github.com/pulumi/pulumi/pull/15032 should be merged with this fix.
|
||||||
type configurableProvider struct {
|
func configurableProvider(p gp.Provider) gp.Provider {
|
||||||
rpc.ResourceProviderServer
|
configure := p.Configure
|
||||||
}
|
|
||||||
|
|
||||||
func (p configurableProvider) Configure(
|
p.Configure = func(ctx context.Context, req gp.ConfigureRequest) error {
|
||||||
ctx context.Context,
|
r, err := p.GetSchema(ctx, gp.GetSchemaRequest{Version: 0})
|
||||||
request *rpc.ConfigureRequest,
|
if err != nil {
|
||||||
) (*rpc.ConfigureResponse, error) {
|
return err
|
||||||
schema := internal.Schema(ctx, "")
|
}
|
||||||
ce := deprecated.New(schema.Config)
|
spec := schema.PackageSpec{}
|
||||||
buildxReq := request
|
err = json.Unmarshal([]byte(r.Schema), &spec)
|
||||||
if props, err := ce.UnmarshalProperties(request.Args); err == nil {
|
if err != nil {
|
||||||
args, _ := plugin.MarshalProperties(props, plugin.MarshalOptions{
|
return err
|
||||||
Label: "config",
|
}
|
||||||
KeepUnknowns: true,
|
|
||||||
SkipNulls: true,
|
ce := deprecated.New(spec.Config)
|
||||||
KeepSecrets: true,
|
if props, err := ce.UnmarshalProperties(req.Args); err == nil {
|
||||||
RejectAssets: true,
|
req.Args = props
|
||||||
})
|
}
|
||||||
buildxReq.Args = args
|
return configure(ctx, req)
|
||||||
}
|
}
|
||||||
return p.ResourceProviderServer.Configure(ctx, buildxReq)
|
|
||||||
|
return p
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,11 +18,16 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/blang/semver"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||||
"google.golang.org/protobuf/types/known/structpb"
|
"google.golang.org/protobuf/types/known/structpb"
|
||||||
|
|
||||||
pulumirpc "github.com/pulumi/pulumi/sdk/v3/proto/go"
|
"github.com/pulumi/pulumi-docker-build/provider/internal"
|
||||||
|
provider "github.com/pulumi/pulumi-go-provider"
|
||||||
|
"github.com/pulumi/pulumi-go-provider/integration"
|
||||||
|
"github.com/pulumi/pulumi/sdk/v3/go/common/resource/plugin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestConfigure checks backwards-compatibility with SDKs that still send
|
// TestConfigure checks backwards-compatibility with SDKs that still send
|
||||||
@@ -32,19 +37,34 @@ import (
|
|||||||
func TestConfigure(t *testing.T) {
|
func TestConfigure(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
ctx := context.Background()
|
p := configurableProvider(internal.NewBuildxProvider())
|
||||||
|
|
||||||
p, err := New(nil)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
args, err := structpb.NewStruct(map[string]any{
|
args, err := structpb.NewStruct(map[string]any{
|
||||||
"registries": `[{"address": "docker.io"}]`,
|
"registries": `[{"address": "docker.io"}]`,
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
argsMap, err := plugin.UnmarshalProperties(args, plugin.MarshalOptions{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = p.Configure(ctx, &pulumirpc.ConfigureRequest{
|
s := integration.NewServer("docker-build", semver.Version{Major: 0}, p)
|
||||||
Args: args,
|
err = s.Configure(provider.ConfigureRequest{
|
||||||
|
Args: argsMap,
|
||||||
})
|
})
|
||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestVersion(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
_, err := semver.Parse(Version)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
p, err := New(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
info, err := p.GetPluginInfo(context.Background(), &emptypb.Empty{})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
require.NotEqual(t, "", Version)
|
||||||
|
assert.Equal(t, Version, info.Version)
|
||||||
|
}
|
||||||
|
|||||||
6
renovate.json
Normal file
6
renovate.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"postUpgradeTasks": {
|
||||||
|
"executionMode": "branch",
|
||||||
|
"commands": ["mise trust", "mise install --yes", "mise run sdk"]
|
||||||
|
}
|
||||||
|
}
|
||||||
2
sdk/dotnet/Config/README.md
generated
2
sdk/dotnet/Config/README.md
generated
@@ -1 +1 @@
|
|||||||
A Pulumi provider for Docker buildx
|
A Pulumi provider for building modern Docker images with buildx and BuildKit.
|
||||||
|
|||||||
186
sdk/dotnet/Image.cs
generated
186
sdk/dotnet/Image.cs
generated
@@ -15,20 +15,14 @@ namespace Pulumi.DockerBuild
|
|||||||
///
|
///
|
||||||
/// ## Stability
|
/// ## Stability
|
||||||
///
|
///
|
||||||
/// **This resource is experimental and subject to change.**
|
/// **This resource is pre-1.0 and in public preview.**
|
||||||
///
|
///
|
||||||
/// API types are unstable. Subsequent releases _may_ require manual edits
|
/// We will strive to keep APIs and behavior as stable as possible, but we
|
||||||
/// to your state file(s) in order to adopt API changes.
|
/// cannot guarantee stability until version 1.0.
|
||||||
///
|
///
|
||||||
/// `retainOnDelete: true` is recommended with this resource until it is
|
/// ## Migrating Pulumi Docker v3 and v4 Image resources
|
||||||
/// stable. This enables future API changes to be adopted more easily by renaming
|
|
||||||
/// resources.
|
|
||||||
///
|
///
|
||||||
/// Only use this resource if you understand and accept the risks.
|
/// This provider's `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
|
||||||
///
|
|
||||||
/// ## Migrating v3 and v4 Image resources
|
|
||||||
///
|
|
||||||
/// The `Image` resource provides a superset of functionality over the `Image` resources available in versions 3 and 4 of the Pulumi Docker provider.
|
|
||||||
/// Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
|
/// Existing `Image` resources can be converted to the docker-build `Image` resources with minor modifications.
|
||||||
///
|
///
|
||||||
/// ### Behavioral differences
|
/// ### Behavioral differences
|
||||||
@@ -42,19 +36,17 @@ namespace Pulumi.DockerBuild
|
|||||||
///
|
///
|
||||||
/// Version `4.x` changed build-on-preview behavior to be opt-in.
|
/// Version `4.x` changed build-on-preview behavior to be opt-in.
|
||||||
/// By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
|
/// By default, `v4.x` `Image` resources do _not_ build during previews, but this behavior can be toggled with the `buildOnPreview` option.
|
||||||
/// Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
|
/// Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
|
||||||
///
|
///
|
||||||
/// The default behavior of the `Image` resource has been changed to strike a better balance between CI use cases and manual updates.
|
/// The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
|
||||||
/// By default, Pulumi will now only build `Image` resources during previews when it detects a CI environment like GitHub Actions.
|
/// This behavior can be changed by specifying `buildOnPreview`.
|
||||||
/// Previews run in non-CI environments will not build images.
|
|
||||||
/// This behavior is still configurable with `buildOnPreview`.
|
|
||||||
///
|
///
|
||||||
/// #### Push behavior
|
/// #### Push behavior
|
||||||
///
|
///
|
||||||
/// Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
|
/// Versions `3.x` and `4.x` of the Pulumi Docker provider attempt to push images to remote registries by default.
|
||||||
/// They expose a `skipPush: true` option to disable pushing.
|
/// They expose a `skipPush: true` option to disable pushing.
|
||||||
///
|
///
|
||||||
/// The `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
|
/// This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
|
||||||
///
|
///
|
||||||
/// To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
|
/// To push images to a registry you can include `push: true` (equivalent to Docker's `--push` flag) or configure an `export` of type `registry` (equivalent to Docker's `--output type=registry`).
|
||||||
/// Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
|
/// Like Docker, if an image is configured without exports you will see a warning with instructions for how to enable pushing, but the build will still proceed normally.
|
||||||
@@ -127,7 +119,7 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Aws = Pulumi.Aws;
|
/// using Aws = Pulumi.Aws;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
@@ -138,13 +130,13 @@ namespace Pulumi.DockerBuild
|
|||||||
/// RegistryId = ecrRepository.RegistryId,
|
/// RegistryId = ecrRepository.RegistryId,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// var myImage = new Dockerbuild.Image("my-image", new()
|
/// var myImage = new DockerBuild.Image("my-image", new()
|
||||||
/// {
|
/// {
|
||||||
/// CacheFrom = new[]
|
/// CacheFrom = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.CacheFromArgs
|
/// new DockerBuild.Inputs.CacheFromArgs
|
||||||
/// {
|
/// {
|
||||||
/// Registry = new Dockerbuild.Inputs.CacheFromRegistryArgs
|
/// Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
|
||||||
/// {
|
/// {
|
||||||
/// Ref = ecrRepository.RepositoryUrl.Apply(repositoryUrl => $"{repositoryUrl}:cache"),
|
/// Ref = ecrRepository.RepositoryUrl.Apply(repositoryUrl => $"{repositoryUrl}:cache"),
|
||||||
/// },
|
/// },
|
||||||
@@ -152,9 +144,9 @@ namespace Pulumi.DockerBuild
|
|||||||
/// },
|
/// },
|
||||||
/// CacheTo = new[]
|
/// CacheTo = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.CacheToArgs
|
/// new DockerBuild.Inputs.CacheToArgs
|
||||||
/// {
|
/// {
|
||||||
/// Registry = new Dockerbuild.Inputs.CacheToRegistryArgs
|
/// Registry = new DockerBuild.Inputs.CacheToRegistryArgs
|
||||||
/// {
|
/// {
|
||||||
/// ImageManifest = true,
|
/// ImageManifest = true,
|
||||||
/// OciMediaTypes = true,
|
/// OciMediaTypes = true,
|
||||||
@@ -162,14 +154,14 @@ namespace Pulumi.DockerBuild
|
|||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "./app",
|
/// Location = "./app",
|
||||||
/// },
|
/// },
|
||||||
/// Push = true,
|
/// Push = true,
|
||||||
/// Registries = new[]
|
/// Registries = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.RegistryArgs
|
/// new DockerBuild.Inputs.RegistryArgs
|
||||||
/// {
|
/// {
|
||||||
/// Address = ecrRepository.RepositoryUrl,
|
/// Address = ecrRepository.RepositoryUrl,
|
||||||
/// Password = authToken.Apply(getAuthorizationTokenResult => getAuthorizationTokenResult.Password),
|
/// Password = authToken.Apply(getAuthorizationTokenResult => getAuthorizationTokenResult.Password),
|
||||||
@@ -194,21 +186,22 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
/// Platforms = new[]
|
/// Platforms = new[]
|
||||||
/// {
|
/// {
|
||||||
/// Dockerbuild.Platform.Plan9_amd64,
|
/// DockerBuild.Platform.Plan9_amd64,
|
||||||
/// Dockerbuild.Platform.Plan9_386,
|
/// DockerBuild.Platform.Plan9_386,
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -219,20 +212,20 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
/// Push = true,
|
/// Push = true,
|
||||||
/// Registries = new[]
|
/// Registries = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.RegistryArgs
|
/// new DockerBuild.Inputs.RegistryArgs
|
||||||
/// {
|
/// {
|
||||||
/// Address = "docker.io",
|
/// Address = "docker.io",
|
||||||
/// Password = dockerHubPassword,
|
/// Password = dockerHubPassword,
|
||||||
@@ -257,17 +250,17 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// CacheFrom = new[]
|
/// CacheFrom = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.CacheFromArgs
|
/// new DockerBuild.Inputs.CacheFromArgs
|
||||||
/// {
|
/// {
|
||||||
/// Local = new Dockerbuild.Inputs.CacheFromLocalArgs
|
/// Local = new DockerBuild.Inputs.CacheFromLocalArgs
|
||||||
/// {
|
/// {
|
||||||
/// Src = "tmp/cache",
|
/// Src = "tmp/cache",
|
||||||
/// },
|
/// },
|
||||||
@@ -275,19 +268,20 @@ namespace Pulumi.DockerBuild
|
|||||||
/// },
|
/// },
|
||||||
/// CacheTo = new[]
|
/// CacheTo = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.CacheToArgs
|
/// new DockerBuild.Inputs.CacheToArgs
|
||||||
/// {
|
/// {
|
||||||
/// Local = new Dockerbuild.Inputs.CacheToLocalArgs
|
/// Local = new DockerBuild.Inputs.CacheToLocalArgs
|
||||||
/// {
|
/// {
|
||||||
/// Dest = "tmp/cache",
|
/// Dest = "tmp/cache",
|
||||||
/// Mode = Dockerbuild.CacheMode.Max,
|
/// Mode = DockerBuild.CacheMode.Max,
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -298,21 +292,22 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Builder = new Dockerbuild.Inputs.BuilderConfigArgs
|
/// Builder = new DockerBuild.Inputs.BuilderConfigArgs
|
||||||
/// {
|
/// {
|
||||||
/// Name = "cloud-builder-name",
|
/// Name = "cloud-builder-name",
|
||||||
/// },
|
/// },
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
/// Exec = true,
|
/// Exec = true,
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -323,20 +318,21 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// BuildArgs =
|
/// BuildArgs =
|
||||||
/// {
|
/// {
|
||||||
/// { "SET_ME_TO_TRUE", "true" },
|
/// { "SET_ME_TO_TRUE", "true" },
|
||||||
/// },
|
/// },
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -347,16 +343,17 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// Target = "build-me",
|
/// Target = "build-me",
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
@@ -368,23 +365,24 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// Named =
|
/// Named =
|
||||||
/// {
|
/// {
|
||||||
/// { "golang:latest", new Dockerbuild.Inputs.ContextArgs
|
/// { "golang:latest", new DockerBuild.Inputs.ContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
/// Location = "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
||||||
/// } },
|
/// } },
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -395,16 +393,17 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
/// Location = "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -415,22 +414,23 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
/// Dockerfile = new Dockerbuild.Inputs.DockerfileArgs
|
/// Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
/// {
|
/// {
|
||||||
/// Inline = @"FROM busybox
|
/// Inline = @"FROM busybox
|
||||||
/// COPY hello.c ./
|
/// COPY hello.c ./
|
||||||
/// ",
|
/// ",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -441,20 +441,21 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "https://github.com/docker-library/hello-world.git",
|
/// Location = "https://github.com/docker-library/hello-world.git",
|
||||||
/// },
|
/// },
|
||||||
/// Dockerfile = new Dockerbuild.Inputs.DockerfileArgs
|
/// Dockerfile = new DockerBuild.Inputs.DockerfileArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app/Dockerfile",
|
/// Location = "app/Dockerfile",
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -465,26 +466,27 @@ namespace Pulumi.DockerBuild
|
|||||||
/// using System.Collections.Generic;
|
/// using System.Collections.Generic;
|
||||||
/// using System.Linq;
|
/// using System.Linq;
|
||||||
/// using Pulumi;
|
/// using Pulumi;
|
||||||
/// using Dockerbuild = Pulumi.Dockerbuild;
|
/// using DockerBuild = Pulumi.DockerBuild;
|
||||||
///
|
///
|
||||||
/// return await Deployment.RunAsync(() =>
|
/// return await Deployment.RunAsync(() =>
|
||||||
/// {
|
/// {
|
||||||
/// var image = new Dockerbuild.Image("image", new()
|
/// var image = new DockerBuild.Image("image", new()
|
||||||
/// {
|
/// {
|
||||||
/// Context = new Dockerbuild.Inputs.BuildContextArgs
|
/// Context = new DockerBuild.Inputs.BuildContextArgs
|
||||||
/// {
|
/// {
|
||||||
/// Location = "app",
|
/// Location = "app",
|
||||||
/// },
|
/// },
|
||||||
/// Exports = new[]
|
/// Exports = new[]
|
||||||
/// {
|
/// {
|
||||||
/// new Dockerbuild.Inputs.ExportArgs
|
/// new DockerBuild.Inputs.ExportArgs
|
||||||
/// {
|
/// {
|
||||||
/// Docker = new Dockerbuild.Inputs.ExportDockerArgs
|
/// Docker = new DockerBuild.Inputs.ExportDockerArgs
|
||||||
/// {
|
/// {
|
||||||
/// Tar = true,
|
/// Tar = true,
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
/// },
|
/// },
|
||||||
|
/// Push = false,
|
||||||
/// });
|
/// });
|
||||||
///
|
///
|
||||||
/// });
|
/// });
|
||||||
@@ -517,20 +519,17 @@ namespace Pulumi.DockerBuild
|
|||||||
public Output<ImmutableDictionary<string, string>?> BuildArgs { get; private set; } = null!;
|
public Output<ImmutableDictionary<string, string>?> BuildArgs { get; private set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// By default, preview behavior depends on the execution environment. If
|
/// Setting this to `false` will always skip image builds during previews,
|
||||||
/// Pulumi detects the operation is running on a CI system (GitHub Actions,
|
/// and setting it to `true` will always build images during previews.
|
||||||
/// Travis CI, Azure Pipelines, etc.) then it will build images during
|
|
||||||
/// previews as a safeguard. Otherwise, if not running on CI, previews will
|
|
||||||
/// not build images.
|
|
||||||
///
|
|
||||||
/// Setting this to `false` forces previews to never perform builds, and
|
|
||||||
/// setting it to `true` will always build the image during previews.
|
|
||||||
///
|
///
|
||||||
/// Images built during previews are never exported to registries, however
|
/// Images built during previews are never exported to registries, however
|
||||||
/// cache manifests are still exported.
|
/// cache manifests are still exported.
|
||||||
///
|
///
|
||||||
/// On-disk Dockerfiles are always validated for syntactic correctness
|
/// On-disk Dockerfiles are always validated for syntactic correctness
|
||||||
/// regardless of this setting.
|
/// regardless of this setting.
|
||||||
|
///
|
||||||
|
/// Defaults to `true` as a safeguard against broken images merging as part
|
||||||
|
/// of CI pipelines.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Output("buildOnPreview")]
|
[Output("buildOnPreview")]
|
||||||
public Output<bool?> BuildOnPreview { get; private set; } = null!;
|
public Output<bool?> BuildOnPreview { get; private set; } = null!;
|
||||||
@@ -558,7 +557,7 @@ namespace Pulumi.DockerBuild
|
|||||||
public Output<ImmutableArray<Outputs.CacheTo>> CacheTo { get; private set; } = null!;
|
public Output<ImmutableArray<Outputs.CacheTo>> CacheTo { get; private set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Build context settings.
|
/// Build context settings. Defaults to the current directory.
|
||||||
///
|
///
|
||||||
/// Equivalent to Docker's `PATH | URL | -` positional argument.
|
/// Equivalent to Docker's `PATH | URL | -` positional argument.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -692,7 +691,7 @@ namespace Pulumi.DockerBuild
|
|||||||
/// Equivalent to Docker's `--push` flag.
|
/// Equivalent to Docker's `--push` flag.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Output("push")]
|
[Output("push")]
|
||||||
public Output<bool?> Push { get; private set; } = null!;
|
public Output<bool> Push { get; private set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// If the image was pushed to any registries then this will contain a
|
/// If the image was pushed to any registries then this will contain a
|
||||||
@@ -776,7 +775,7 @@ namespace Pulumi.DockerBuild
|
|||||||
/// <param name="name">The unique name of the resource</param>
|
/// <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="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>
|
/// <param name="options">A bag of options that control this resource's behavior</param>
|
||||||
public Image(string name, ImageArgs? args = null, CustomResourceOptions? options = null)
|
public Image(string name, ImageArgs args, CustomResourceOptions? options = null)
|
||||||
: base("docker-build:index:Image", name, args ?? new ImageArgs(), MakeResourceOptions(options, ""))
|
: base("docker-build:index:Image", name, args ?? new ImageArgs(), MakeResourceOptions(options, ""))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -791,7 +790,6 @@ namespace Pulumi.DockerBuild
|
|||||||
var defaultOptions = new CustomResourceOptions
|
var defaultOptions = new CustomResourceOptions
|
||||||
{
|
{
|
||||||
Version = Utilities.Version,
|
Version = Utilities.Version,
|
||||||
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
|
|
||||||
};
|
};
|
||||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||||
// Override the ID if one was specified for consistency with other language SDKs.
|
// Override the ID if one was specified for consistency with other language SDKs.
|
||||||
@@ -849,20 +847,17 @@ namespace Pulumi.DockerBuild
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// By default, preview behavior depends on the execution environment. If
|
/// Setting this to `false` will always skip image builds during previews,
|
||||||
/// Pulumi detects the operation is running on a CI system (GitHub Actions,
|
/// and setting it to `true` will always build images during previews.
|
||||||
/// Travis CI, Azure Pipelines, etc.) then it will build images during
|
|
||||||
/// previews as a safeguard. Otherwise, if not running on CI, previews will
|
|
||||||
/// not build images.
|
|
||||||
///
|
|
||||||
/// Setting this to `false` forces previews to never perform builds, and
|
|
||||||
/// setting it to `true` will always build the image during previews.
|
|
||||||
///
|
///
|
||||||
/// Images built during previews are never exported to registries, however
|
/// Images built during previews are never exported to registries, however
|
||||||
/// cache manifests are still exported.
|
/// cache manifests are still exported.
|
||||||
///
|
///
|
||||||
/// On-disk Dockerfiles are always validated for syntactic correctness
|
/// On-disk Dockerfiles are always validated for syntactic correctness
|
||||||
/// regardless of this setting.
|
/// regardless of this setting.
|
||||||
|
///
|
||||||
|
/// Defaults to `true` as a safeguard against broken images merging as part
|
||||||
|
/// of CI pipelines.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Input("buildOnPreview")]
|
[Input("buildOnPreview")]
|
||||||
public Input<bool>? BuildOnPreview { get; set; }
|
public Input<bool>? BuildOnPreview { get; set; }
|
||||||
@@ -902,7 +897,7 @@ namespace Pulumi.DockerBuild
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Build context settings.
|
/// Build context settings. Defaults to the current directory.
|
||||||
///
|
///
|
||||||
/// Equivalent to Docker's `PATH | URL | -` positional argument.
|
/// Equivalent to Docker's `PATH | URL | -` positional argument.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1033,8 +1028,8 @@ namespace Pulumi.DockerBuild
|
|||||||
///
|
///
|
||||||
/// Equivalent to Docker's `--push` flag.
|
/// Equivalent to Docker's `--push` flag.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Input("push")]
|
[Input("push", required: true)]
|
||||||
public Input<bool>? Push { get; set; }
|
public Input<bool> Push { get; set; } = null!;
|
||||||
|
|
||||||
[Input("registries")]
|
[Input("registries")]
|
||||||
private InputList<Inputs.RegistryArgs>? _registries;
|
private InputList<Inputs.RegistryArgs>? _registries;
|
||||||
@@ -1117,6 +1112,7 @@ namespace Pulumi.DockerBuild
|
|||||||
|
|
||||||
public ImageArgs()
|
public ImageArgs()
|
||||||
{
|
{
|
||||||
|
BuildOnPreview = true;
|
||||||
Network = Pulumi.DockerBuild.NetworkMode.@Default;
|
Network = Pulumi.DockerBuild.NetworkMode.@Default;
|
||||||
}
|
}
|
||||||
public static new ImageArgs Empty => new ImageArgs();
|
public static new ImageArgs Empty => new ImageArgs();
|
||||||
|
|||||||
23
sdk/dotnet/Index.cs
generated
23
sdk/dotnet/Index.cs
generated
@@ -10,13 +10,25 @@ using Pulumi.Serialization;
|
|||||||
namespace Pulumi.DockerBuild
|
namespace Pulumi.DockerBuild
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// An index (or manifest list) referencing one or more existing images.
|
/// A wrapper around `docker buildx imagetools create` to create an index
|
||||||
|
/// (or manifest list) referencing one or more existing images.
|
||||||
///
|
///
|
||||||
/// Useful for crafting a multi-platform image from several
|
/// In most cases you do not need an `Index` to build a multi-platform
|
||||||
/// platform-specific images.
|
/// image -- specifying multiple platforms on the `Image` will handle this
|
||||||
|
/// for you automatically.
|
||||||
///
|
///
|
||||||
/// This creates an OCI image index or a Docker manifest list depending on
|
/// However, as of April 2024, building multi-platform images _with
|
||||||
/// the media types of the source images.
|
/// 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
|
/// ## Example Usage
|
||||||
/// ### Multi-platform registry caching
|
/// ### Multi-platform registry caching
|
||||||
@@ -182,7 +194,6 @@ namespace Pulumi.DockerBuild
|
|||||||
var defaultOptions = new CustomResourceOptions
|
var defaultOptions = new CustomResourceOptions
|
||||||
{
|
{
|
||||||
Version = Utilities.Version,
|
Version = Utilities.Version,
|
||||||
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
|
|
||||||
};
|
};
|
||||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||||
// Override the ID if one was specified for consistency with other language SDKs.
|
// Override the ID if one was specified for consistency with other language SDKs.
|
||||||
|
|||||||
4
sdk/dotnet/Inputs/CacheFromGitHubActionsArgs.cs
generated
4
sdk/dotnet/Inputs/CacheFromGitHubActionsArgs.cs
generated
@@ -45,7 +45,7 @@ namespace Pulumi.DockerBuild.Inputs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The cache server URL to use for artifacts.
|
/// The cache server URL to use for artifacts.
|
||||||
///
|
///
|
||||||
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
|
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
||||||
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
||||||
/// environment variable to your jobs.
|
/// environment variable to your jobs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -56,7 +56,7 @@ namespace Pulumi.DockerBuild.Inputs
|
|||||||
{
|
{
|
||||||
Scope = Utilities.GetEnv("buildkit") ?? "";
|
Scope = Utilities.GetEnv("buildkit") ?? "";
|
||||||
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
||||||
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
|
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
|
||||||
}
|
}
|
||||||
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
|
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
|
||||||
}
|
}
|
||||||
|
|||||||
4
sdk/dotnet/Inputs/CacheToGitHubActionsArgs.cs
generated
4
sdk/dotnet/Inputs/CacheToGitHubActionsArgs.cs
generated
@@ -57,7 +57,7 @@ namespace Pulumi.DockerBuild.Inputs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The cache server URL to use for artifacts.
|
/// The cache server URL to use for artifacts.
|
||||||
///
|
///
|
||||||
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
|
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
||||||
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
||||||
/// environment variable to your jobs.
|
/// environment variable to your jobs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -70,7 +70,7 @@ namespace Pulumi.DockerBuild.Inputs
|
|||||||
Mode = Pulumi.DockerBuild.CacheMode.Min;
|
Mode = Pulumi.DockerBuild.CacheMode.Min;
|
||||||
Scope = Utilities.GetEnv("buildkit") ?? "";
|
Scope = Utilities.GetEnv("buildkit") ?? "";
|
||||||
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
|
||||||
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
|
Url = Utilities.GetEnv("ACTIONS_CACHE_URL") ?? "";
|
||||||
}
|
}
|
||||||
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
|
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
|
||||||
}
|
}
|
||||||
|
|||||||
2
sdk/dotnet/Outputs/CacheFromGitHubActions.cs
generated
2
sdk/dotnet/Outputs/CacheFromGitHubActions.cs
generated
@@ -32,7 +32,7 @@ namespace Pulumi.DockerBuild.Outputs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The cache server URL to use for artifacts.
|
/// The cache server URL to use for artifacts.
|
||||||
///
|
///
|
||||||
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
|
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
||||||
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
||||||
/// environment variable to your jobs.
|
/// environment variable to your jobs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
2
sdk/dotnet/Outputs/CacheToGitHubActions.cs
generated
2
sdk/dotnet/Outputs/CacheToGitHubActions.cs
generated
@@ -40,7 +40,7 @@ namespace Pulumi.DockerBuild.Outputs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The cache server URL to use for artifacts.
|
/// The cache server URL to use for artifacts.
|
||||||
///
|
///
|
||||||
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
|
/// Defaults to `$ACTIONS_CACHE_URL`, although a separate action like
|
||||||
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
|
||||||
/// environment variable to your jobs.
|
/// environment variable to your jobs.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
1
sdk/dotnet/Provider.cs
generated
1
sdk/dotnet/Provider.cs
generated
@@ -36,7 +36,6 @@ namespace Pulumi.DockerBuild
|
|||||||
var defaultOptions = new CustomResourceOptions
|
var defaultOptions = new CustomResourceOptions
|
||||||
{
|
{
|
||||||
Version = Utilities.Version,
|
Version = Utilities.Version,
|
||||||
PluginDownloadURL = "github.com/pulumi/pulumi-docker-build",
|
|
||||||
};
|
};
|
||||||
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
var merged = CustomResourceOptions.Merge(defaultOptions, options);
|
||||||
// Override the ID if one was specified for consistency with other language SDKs.
|
// Override the ID if one was specified for consistency with other language SDKs.
|
||||||
|
|||||||
9
sdk/dotnet/Pulumi.DockerBuild.csproj
generated
9
sdk/dotnet/Pulumi.DockerBuild.csproj
generated
@@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<Authors>pulumi</Authors>
|
<Authors>Pulumi</Authors>
|
||||||
<Company>pulumi</Company>
|
<Company>Pulumi</Company>
|
||||||
<Description>A Pulumi provider for Docker buildx</Description>
|
<Description>A Pulumi provider for building modern Docker images with buildx and BuildKit.</Description>
|
||||||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
||||||
<PackageProjectUrl>https://pulumi.io</PackageProjectUrl>
|
<PackageProjectUrl>https://pulumi.com</PackageProjectUrl>
|
||||||
<RepositoryUrl>https://github.com/pulumi/pulumi-docker-build</RepositoryUrl>
|
<RepositoryUrl>https://github.com/pulumi/pulumi-docker-build</RepositoryUrl>
|
||||||
<PackageIcon>logo.png</PackageIcon>
|
<PackageIcon>logo.png</PackageIcon>
|
||||||
|
<Version>0.1.0-alpha.0+dev</Version>
|
||||||
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
|||||||
2
sdk/dotnet/README.md
generated
2
sdk/dotnet/README.md
generated
@@ -1 +1 @@
|
|||||||
A Pulumi provider for Docker buildx
|
A Pulumi provider for building modern Docker images with buildx and BuildKit.
|
||||||
|
|||||||
1
sdk/dotnet/Utilities.cs
generated
1
sdk/dotnet/Utilities.cs
generated
@@ -53,7 +53,6 @@ namespace Pulumi.DockerBuild
|
|||||||
{
|
{
|
||||||
var dst = src ?? new global::Pulumi.InvokeOptions{};
|
var dst = src ?? new global::Pulumi.InvokeOptions{};
|
||||||
dst.Version = src?.Version ?? Version;
|
dst.Version = src?.Version ?? Version;
|
||||||
dst.PluginDownloadURL = src?.PluginDownloadURL ?? "github.com/pulumi/pulumi-docker-build";
|
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
sdk/dotnet/pulumi-plugin.json
generated
2
sdk/dotnet/pulumi-plugin.json
generated
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"resource": true,
|
"resource": true,
|
||||||
"name": "docker-build",
|
"name": "docker-build",
|
||||||
"server": "github.com/pulumi/pulumi-docker-build"
|
"version": "0.1.0-alpha.0+dev"
|
||||||
}
|
}
|
||||||
|
|||||||
2
sdk/go/dockerbuild/doc.go
generated
2
sdk/go/dockerbuild/doc.go
generated
@@ -1,2 +1,2 @@
|
|||||||
// A Pulumi provider for Docker buildx
|
// A Pulumi provider for building modern Docker images with buildx and BuildKit.
|
||||||
package dockerbuild
|
package dockerbuild
|
||||||
|
|||||||
78
sdk/go/dockerbuild/go.mod
generated
78
sdk/go/dockerbuild/go.mod
generated
@@ -4,41 +4,45 @@ go 1.21.7
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/blang/semver v3.5.1+incompatible
|
github.com/blang/semver v3.5.1+incompatible
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.113.0
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
dario.cat/mergo v1.0.0 // indirect
|
dario.cat/mergo v1.0.0 // indirect
|
||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
github.com/BurntSushi/toml v1.4.0 // indirect
|
||||||
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||||
|
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
||||||
github.com/agext/levenshtein v1.2.3 // indirect
|
github.com/agext/levenshtein v1.2.3 // indirect
|
||||||
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||||
github.com/atotto/clipboard v0.1.4 // indirect
|
github.com/atotto/clipboard v0.1.4 // indirect
|
||||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||||
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
github.com/charmbracelet/bubbles v0.18.0 // indirect
|
||||||
github.com/charmbracelet/bubbletea v0.24.2 // indirect
|
github.com/charmbracelet/bubbletea v0.26.4 // indirect
|
||||||
github.com/charmbracelet/lipgloss v0.7.1 // indirect
|
github.com/charmbracelet/lipgloss v0.11.0 // indirect
|
||||||
|
github.com/charmbracelet/x/ansi v0.1.2 // indirect
|
||||||
|
github.com/charmbracelet/x/input v0.1.0 // indirect
|
||||||
|
github.com/charmbracelet/x/term v0.1.1 // indirect
|
||||||
|
github.com/charmbracelet/x/windows v0.1.0 // indirect
|
||||||
github.com/cheggaaa/pb v1.0.29 // indirect
|
github.com/cheggaaa/pb v1.0.29 // indirect
|
||||||
github.com/cloudflare/circl v1.3.7 // indirect
|
github.com/cloudflare/circl v1.3.8 // indirect
|
||||||
github.com/containerd/console v1.0.4 // indirect
|
github.com/cyphar/filepath-securejoin v0.2.5 // indirect
|
||||||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
github.com/djherbis/times v1.6.0 // indirect
|
||||||
github.com/djherbis/times v1.5.0 // indirect
|
|
||||||
github.com/emirpasic/gods v1.18.1 // indirect
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
github.com/fatih/color v1.16.0 // 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/frankban/quicktest v1.14.6 // indirect
|
||||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // 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-billy/v5 v5.5.0 // indirect
|
||||||
github.com/go-git/go-git/v5 v5.11.0 // indirect
|
github.com/go-git/go-git/v5 v5.12.0 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang/glog v1.2.0 // indirect
|
github.com/golang/glog v1.2.1 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
|
||||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||||
github.com/hashicorp/hcl/v2 v2.19.1 // indirect
|
github.com/hashicorp/hcl/v2 v2.20.1 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
||||||
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||||
@@ -51,9 +55,8 @@ require (
|
|||||||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
||||||
github.com/muesli/cancelreader v0.2.2 // 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/muesli/termenv v0.15.2 // indirect
|
||||||
github.com/onsi/gomega v1.31.1 // indirect
|
github.com/onsi/gomega v1.33.1 // indirect
|
||||||
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||||
github.com/pgavlin/fx v0.1.6 // indirect
|
github.com/pgavlin/fx v0.1.6 // indirect
|
||||||
@@ -61,36 +64,37 @@ require (
|
|||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pkg/term v1.1.0 // indirect
|
github.com/pkg/term v1.1.0 // indirect
|
||||||
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
|
||||||
github.com/pulumi/esc v0.6.2 // indirect
|
github.com/pulumi/esc v0.9.1 // indirect
|
||||||
github.com/rivo/uniseg v0.4.4 // indirect
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
||||||
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
|
||||||
github.com/sergi/go-diff v1.3.1 // indirect
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
||||||
github.com/skeema/knownhosts v1.2.1 // indirect
|
github.com/skeema/knownhosts v1.2.2 // indirect
|
||||||
github.com/spf13/cast v1.5.0 // indirect
|
github.com/spf13/cast v1.5.0 // indirect
|
||||||
github.com/spf13/cobra v1.8.0 // indirect
|
github.com/spf13/cobra v1.8.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/stretchr/testify v1.9.0 // indirect
|
github.com/stretchr/objx v0.5.2 // indirect
|
||||||
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
||||||
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // 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-client-go v2.30.0+incompatible // indirect
|
||||||
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
||||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||||
github.com/zclconf/go-cty v1.14.1 // indirect
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
github.com/zclconf/go-cty v1.14.4 // indirect
|
||||||
golang.org/x/crypto v0.21.0 // indirect
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
golang.org/x/crypto v0.25.0 // indirect
|
||||||
golang.org/x/mod v0.16.0 // indirect
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
|
||||||
golang.org/x/net v0.22.0 // indirect
|
golang.org/x/mod v0.18.0 // indirect
|
||||||
golang.org/x/sync v0.6.0 // indirect
|
golang.org/x/net v0.26.0 // indirect
|
||||||
golang.org/x/sys v0.18.0 // indirect
|
golang.org/x/sync v0.7.0 // indirect
|
||||||
golang.org/x/term v0.18.0 // indirect
|
golang.org/x/sys v0.24.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/term v0.22.0 // indirect
|
||||||
golang.org/x/tools v0.19.0 // indirect
|
golang.org/x/text v0.16.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
golang.org/x/tools v0.22.0 // indirect
|
||||||
google.golang.org/grpc v1.62.1 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
|
||||||
google.golang.org/protobuf v1.33.0 // indirect
|
google.golang.org/grpc v1.64.1 // indirect
|
||||||
|
google.golang.org/protobuf v1.34.2 // indirect
|
||||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
lukechampine.com/frand v1.4.2 // indirect
|
lukechampine.com/frand v1.4.2 // indirect
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user