Compare commits
9 Commits
v0.0.3
...
sdk/v0.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6efd4b045b | ||
|
|
b6c5d4d511 | ||
|
|
b455d9037f | ||
|
|
f9b5ed8f67 | ||
|
|
16196bb547 | ||
|
|
5bec2f3e1c | ||
|
|
91c652a702 | ||
|
|
cbf957533e | ||
|
|
d50d156bd8 |
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -8,6 +8,8 @@ updates:
|
|||||||
pulumi:
|
pulumi:
|
||||||
patterns:
|
patterns:
|
||||||
- "github.com/pulumi/*"
|
- "github.com/pulumi/*"
|
||||||
|
exclude-patterns:
|
||||||
|
- "k8s.io/utils"
|
||||||
labels:
|
labels:
|
||||||
- dependencies
|
- dependencies
|
||||||
- impact/no-changelog-required
|
- impact/no-changelog-required
|
||||||
|
|||||||
99
.github/workflows/build.yml
vendored
99
.github/workflows/build.yml
vendored
@@ -16,7 +16,7 @@ on:
|
|||||||
workflow_dispatch: {}
|
workflow_dispatch: {}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -33,7 +33,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -47,6 +47,7 @@ env:
|
|||||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||||
AZURE_LOCATION: westus
|
AZURE_LOCATION: westus
|
||||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||||
|
GOLANGCI_LINT_TIMEOUT: 10m
|
||||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||||
@@ -64,16 +65,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -97,8 +99,6 @@ jobs:
|
|||||||
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
|
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
|
echo 'EOF' >> $GITHUB_ENV
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
|
||||||
- if: github.event_name == 'pull_request'
|
- if: github.event_name == 'pull_request'
|
||||||
name: Comment on PR with Details of Schema Check
|
name: Comment on PR with Details of Schema Check
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
@@ -118,14 +118,7 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 ${{
|
||||||
@@ -167,16 +160,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -222,14 +216,7 @@ 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
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 }} .
|
||||||
@@ -268,16 +255,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -384,16 +372,12 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Unshallow clone for tags
|
||||||
name: Set Provider Version
|
run: git fetch --prune --unshallow --tags
|
||||||
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:
|
||||||
@@ -419,10 +403,11 @@ 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
|
||||||
@@ -442,22 +427,17 @@ 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
|
||||||
- run: echo "ci-scripts" >> .git/info/exclude
|
- 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:
|
||||||
@@ -525,16 +505,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -559,10 +540,11 @@ 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
|
||||||
@@ -579,12 +561,11 @@ 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:
|
||||||
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
||||||
args: -c ../.golangci.yml
|
args: -c ../.golangci.yml --timeout ${{ env.GOLANGCI_LINT_TIMEOUT }}
|
||||||
working-directory: provider
|
working-directory: provider
|
||||||
name: lint
|
name: lint
|
||||||
if: github.event_name == 'repository_dispatch' ||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
|
|||||||
6
.github/workflows/command-dispatch.yml
vendored
6
.github/workflows/command-dispatch.yml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
- edited
|
- edited
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -25,7 +25,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -63,5 +63,5 @@ jobs:
|
|||||||
commands: run-acceptance-tests
|
commands: run-acceptance-tests
|
||||||
permission: write
|
permission: write
|
||||||
issue-type: pull-request
|
issue-type: pull-request
|
||||||
repository: pulumi/pulumi-docker-build
|
repository: pulumi/pulumi-dockerbuild
|
||||||
if: ${{ github.event.issue.pull_request }}
|
if: ${{ github.event.issue.pull_request }}
|
||||||
|
|||||||
130
.github/workflows/prerelease.yml
vendored
130
.github/workflows/prerelease.yml
vendored
@@ -7,7 +7,7 @@ on:
|
|||||||
- v*.*.*-**
|
- v*.*.*-**
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -24,7 +24,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -56,16 +56,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -89,8 +90,6 @@ jobs:
|
|||||||
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
|
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
|
echo 'EOF' >> $GITHUB_ENV
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
|
||||||
- if: github.event_name == 'pull_request'
|
- if: github.event_name == 'pull_request'
|
||||||
name: Comment on PR with Details of Schema Check
|
name: Comment on PR with Details of Schema Check
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
@@ -110,14 +109,7 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 ${{
|
||||||
@@ -159,16 +151,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -214,14 +207,7 @@ 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
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 }} .
|
||||||
@@ -259,16 +245,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -375,16 +362,12 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Unshallow clone for tags
|
||||||
name: Set Provider Version
|
run: git fetch --prune --unshallow --tags
|
||||||
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:
|
||||||
@@ -410,10 +393,11 @@ 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
|
||||||
@@ -433,22 +417,17 @@ 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
|
||||||
- run: echo "ci-scripts" >> .git/info/exclude
|
- 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:
|
||||||
@@ -516,16 +495,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -550,46 +530,12 @@ 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
|
|
||||||
path: sdk
|
|
||||||
version: ${{ steps.version.outputs.version }}
|
|
||||||
additive: false
|
|
||||||
files: |-
|
|
||||||
go.*
|
|
||||||
go/**
|
|
||||||
!*.tar.gz
|
|
||||||
|
|||||||
4
.github/workflows/pull-request.yml
vendored
4
.github/workflows/pull-request.yml
vendored
@@ -5,7 +5,7 @@ on:
|
|||||||
pull_request_target: {}
|
pull_request_target: {}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -22,7 +22,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
|
|||||||
132
.github/workflows/release.yml
vendored
132
.github/workflows/release.yml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
- "!v*.*.*-**"
|
- "!v*.*.*-**"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -25,7 +25,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -56,16 +56,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -89,8 +90,6 @@ jobs:
|
|||||||
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
|
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
|
echo 'EOF' >> $GITHUB_ENV
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
|
||||||
- if: github.event_name == 'pull_request'
|
- if: github.event_name == 'pull_request'
|
||||||
name: Comment on PR with Details of Schema Check
|
name: Comment on PR with Details of Schema Check
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
@@ -110,14 +109,7 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 ${{
|
||||||
@@ -159,16 +151,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -214,14 +207,7 @@ 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
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 }} .
|
||||||
@@ -259,16 +245,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -375,16 +362,12 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Unshallow clone for tags
|
||||||
name: Set Provider Version
|
run: git fetch --prune --unshallow --tags
|
||||||
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:
|
||||||
@@ -410,10 +393,11 @@ 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
|
||||||
@@ -433,22 +417,17 @@ 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
|
||||||
- run: echo "ci-scripts" >> .git/info/exclude
|
- 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:
|
||||||
@@ -516,16 +495,17 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -550,52 +530,34 @@ 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:
|
tag_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
|
||||||
- id: version
|
- name: Install pulumictl
|
||||||
name: Set Provider Version
|
uses: jaxxstorm/action-install-gh-release@v1.11.0
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
repo: pulumi/pulumictl
|
||||||
- name: Download go SDK
|
- name: Add SDK version tag
|
||||||
uses: actions/download-artifact@v4
|
run: git tag sdk/v$(pulumictl get version --language generic) && git push origin
|
||||||
with:
|
sdk/v$(pulumictl get version --language generic)
|
||||||
name: go-sdk.tar.gz
|
name: tag_sdk
|
||||||
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
|
|
||||||
path: sdk
|
|
||||||
version: ${{ steps.version.outputs.version }}
|
|
||||||
additive: false
|
|
||||||
files: |-
|
|
||||||
go.*
|
|
||||||
go/**
|
|
||||||
!*.tar.gz
|
|
||||||
dispatch_docs_build:
|
dispatch_docs_build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: publish_go_sdk
|
needs: tag_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
|
||||||
|
|||||||
71
.github/workflows/run-acceptance-tests.yml
vendored
71
.github/workflows/run-acceptance-tests.yml
vendored
@@ -14,7 +14,7 @@ on:
|
|||||||
workflow_dispatch: {}
|
workflow_dispatch: {}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -31,7 +31,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -45,6 +45,7 @@ env:
|
|||||||
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
|
||||||
AZURE_LOCATION: westus
|
AZURE_LOCATION: westus
|
||||||
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
|
||||||
|
GOLANGCI_LINT_TIMEOUT: 10m
|
||||||
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-ci-gcp-provider.iam.gserviceaccount.com
|
||||||
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci
|
||||||
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci
|
||||||
@@ -81,16 +82,17 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
ref: ${{ env.PR_COMMIT_SHA }}
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -114,8 +116,6 @@ jobs:
|
|||||||
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
|
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
|
echo 'EOF' >> $GITHUB_ENV
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
|
||||||
- if: github.event_name == 'pull_request'
|
- if: github.event_name == 'pull_request'
|
||||||
name: Comment on PR with Details of Schema Check
|
name: Comment on PR with Details of Schema Check
|
||||||
uses: thollander/actions-comment-pull-request@v2
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
@@ -135,14 +135,7 @@ jobs:
|
|||||||
- name: Build Provider
|
- name: Build Provider
|
||||||
run: make provider
|
run: make provider
|
||||||
- name: Check worktree clean
|
- name: Check worktree clean
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 ${{
|
||||||
@@ -187,16 +180,17 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
ref: ${{ env.PR_COMMIT_SHA }}
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -242,14 +236,7 @@ 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
|
||||||
uses: pulumi/git-status-check-action@v1
|
run: ./ci-scripts/ci/check-worktree-is-clean
|
||||||
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 }} .
|
||||||
@@ -291,16 +278,17 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
ref: ${{ env.PR_COMMIT_SHA }}
|
ref: ${{ env.PR_COMMIT_SHA }}
|
||||||
- id: version
|
- name: Checkout Scripts Repo
|
||||||
name: Set Provider Version
|
uses: actions/checkout@v4
|
||||||
uses: pulumi/provider-version-action@v1
|
|
||||||
with:
|
with:
|
||||||
set-env: PROVIDER_VERSION
|
path: ci-scripts
|
||||||
|
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:
|
||||||
@@ -404,14 +392,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: sentinel
|
name: sentinel
|
||||||
steps:
|
steps:
|
||||||
- name: Mark workflow as successful
|
- name: Is workflow a success
|
||||||
uses: guibranco/github-status-action-v2@0849440ec82c5fa69b2377725b9b7852a3977e76
|
run: echo yes
|
||||||
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:
|
||||||
@@ -429,12 +411,11 @@ 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:
|
||||||
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
version: ${{ env.GOLANGCI_LINT_VERSION }}
|
||||||
args: -c ../.golangci.yml
|
args: -c ../.golangci.yml --timeout ${{ env.GOLANGCI_LINT_TIMEOUT }}
|
||||||
working-directory: provider
|
working-directory: provider
|
||||||
name: lint
|
name: lint
|
||||||
if: github.event_name == 'repository_dispatch' ||
|
if: github.event_name == 'repository_dispatch' ||
|
||||||
|
|||||||
16
.github/workflows/weekly-pulumi-update.yml
vendored
16
.github/workflows/weekly-pulumi-update.yml
vendored
@@ -7,7 +7,7 @@ on:
|
|||||||
workflow_dispatch: {}
|
workflow_dispatch: {}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
|
||||||
PROVIDER: docker-build
|
PROVIDER: dockerbuild
|
||||||
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
|
||||||
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
@@ -24,7 +24,7 @@ env:
|
|||||||
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
|
GOVERSION: 1.21.x
|
||||||
NODEVERSION: 20.x
|
NODEVERSION: 16.x
|
||||||
PYTHONVERSION: "3.11"
|
PYTHONVERSION: "3.11"
|
||||||
DOTNETVERSION: |
|
DOTNETVERSION: |
|
||||||
6.0.x
|
6.0.x
|
||||||
@@ -54,16 +54,12 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
lfs: true
|
lfs: true
|
||||||
- id: version
|
- name: Unshallow clone for tags
|
||||||
name: Set Provider Version
|
run: git fetch --prune --unshallow --tags
|
||||||
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: 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:
|
||||||
@@ -94,8 +90,6 @@ 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
|
||||||
@@ -135,7 +129,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: main
|
destination_branch: master
|
||||||
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:
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
run:
|
|
||||||
timeout: 10m
|
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
enable-all: false
|
enable-all: false
|
||||||
enable:
|
enable:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
|
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
|
||||||
|
|
||||||
project_name: pulumi-docker-build
|
project_name: pulumi-dockerbuild
|
||||||
builds:
|
builds:
|
||||||
- dir: provider
|
- dir: provider
|
||||||
env:
|
env:
|
||||||
@@ -14,12 +14,10 @@ builds:
|
|||||||
- amd64
|
- amd64
|
||||||
- arm64
|
- arm64
|
||||||
ignore: []
|
ignore: []
|
||||||
main: ./cmd/pulumi-resource-docker-build/
|
main: ./cmd/pulumi-resource-dockerbuild/
|
||||||
ldflags:
|
ldflags:
|
||||||
- -X
|
- -X github.com/pulumi/pulumi-dockerbuild/provider/pkg/version.Version={{.Tag}}
|
||||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
binary: pulumi-resource-dockerbuild
|
||||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
|
||||||
binary: pulumi-resource-docker-build
|
|
||||||
archives:
|
archives:
|
||||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||||
id: archive
|
id: archive
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
|
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
|
||||||
|
|
||||||
project_name: pulumi-docker-build
|
project_name: pulumi-dockerbuild
|
||||||
builds:
|
builds:
|
||||||
- dir: provider
|
- dir: provider
|
||||||
env:
|
env:
|
||||||
@@ -14,12 +14,10 @@ builds:
|
|||||||
- amd64
|
- amd64
|
||||||
- arm64
|
- arm64
|
||||||
ignore: []
|
ignore: []
|
||||||
main: ./cmd/pulumi-resource-docker-build/
|
main: ./cmd/pulumi-resource-dockerbuild/
|
||||||
ldflags:
|
ldflags:
|
||||||
- -X
|
- -X github.com/pulumi/pulumi-dockerbuild/provider/pkg/version.Version={{.Tag}}
|
||||||
github.com/pulumi/pulumi-docker-build/provider/pkg/version.Version={{.Tag}}
|
binary: pulumi-resource-dockerbuild
|
||||||
- -X github.com/pulumi/pulumi-docker-build/provider.Version={{.Tag}}
|
|
||||||
binary: pulumi-resource-docker-build
|
|
||||||
archives:
|
archives:
|
||||||
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
- name_template: "{{ .Binary }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||||
id: archive
|
id: archive
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
3.116.1
|
|
||||||
17
CHANGELOG.md
17
CHANGELOG.md
@@ -1,17 +0,0 @@
|
|||||||
## Unreleased
|
|
||||||
|
|
||||||
### 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)
|
|
||||||
|
|
||||||
## 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.
|
|
||||||
78
Makefile
78
Makefile
@@ -1,12 +1,13 @@
|
|||||||
PROJECT_NAME := Pulumi Docker Build Resource Provider
|
PROJECT_NAME := Pulumi Docker Build Resource Provider
|
||||||
|
|
||||||
PACK := docker-build
|
PACK := dockerbuild
|
||||||
PACKDIR := sdk
|
PACKDIR := sdk
|
||||||
PROJECT := github.com/pulumi/pulumi-docker-build
|
PROJECT := github.com/pulumi/pulumi-dockerbuild
|
||||||
NODE_MODULE_NAME := @pulumi/docker-build
|
NODE_MODULE_NAME := @pulumi/dockerbuild
|
||||||
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
|
||||||
@@ -20,29 +21,17 @@ TESTPARALLELISM := 4
|
|||||||
PULUMI := bin/pulumi
|
PULUMI := bin/pulumi
|
||||||
GOGLANGCILINT := bin/golangci-lint
|
GOGLANGCILINT := bin/golangci-lint
|
||||||
|
|
||||||
# Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable
|
|
||||||
# Local & branch builds will just used this fixed default version unless specified
|
|
||||||
PROVIDER_VERSION ?= 1.0.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
|
|
||||||
|
|
||||||
.PHONY: ensure
|
.PHONY: ensure
|
||||||
ensure:: tidy lint test_provider examples
|
ensure:: tidy lint test_provider examples
|
||||||
|
|
||||||
.PHONY: tidy
|
.PHONY: tidy
|
||||||
tidy:
|
tidy: go.sum
|
||||||
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_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
(cd provider && go build -o $(WORKING_DIR)/bin/${PROVIDER} -gcflags="all=-N -l" -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
||||||
|
|
||||||
test_provider:: # Required by CI
|
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/...
|
||||||
@@ -76,7 +65,7 @@ examples/python: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.y
|
|||||||
|
|
||||||
examples/dotnet: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/dotnet: ${PULUMI} 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-dockerbuild.csproj
|
||||||
|
|
||||||
examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yaml
|
||||||
$(call example,java)
|
$(call example,java)
|
||||||
@@ -84,10 +73,6 @@ examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yam
|
|||||||
|
|
||||||
${PULUMI}: go.sum
|
${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/pkg/v3/cmd/pulumi
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3
|
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi-java/pkg/cmd/pulumi-language-java
|
|
||||||
|
|
||||||
${GOGLANGCILINT}: go.sum
|
${GOGLANGCILINT}: go.sum
|
||||||
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint
|
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||||
@@ -107,7 +92,6 @@ 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::
|
||||||
@@ -131,18 +115,20 @@ devcontainer::
|
|||||||
cp -f .devcontainer/devcontainer.json .devcontainer.json
|
cp -f .devcontainer/devcontainer.json .devcontainer.json
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:: provider sdk/dotnet sdk/go sdk/nodejs sdk/python sdk/java ${SCHEMA_PATH}
|
build:: provider dotnet_sdk go_sdk nodejs_sdk python_sdk
|
||||||
|
|
||||||
# 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}
|
||||||
${GOGLANGCILINT} run --fix -c .golangci.yml
|
${GOGLANGCILINT} run --fix -c .golangci.yml --timeout 10m
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
GO_TEST := go test -v -count=1 -cover -timeout 2h -parallel ${TESTPARALLELISM}
|
||||||
|
|
||||||
|
|
||||||
install_dotnet_sdk:: # Required by CI
|
install_dotnet_sdk:: # Required by CI
|
||||||
rm -rf $(WORKING_DIR)/nuget/$(NUGET_PKG_NAME).*.nupkg
|
rm -rf $(WORKING_DIR)/nuget/$(NUGET_PKG_NAME).*.nupkg
|
||||||
@@ -161,7 +147,7 @@ install_nodejs_sdk:: # Required by CI
|
|||||||
codegen: # Required by CI
|
codegen: # Required by CI
|
||||||
|
|
||||||
.PHONY: generate_schema
|
.PHONY: generate_schema
|
||||||
generate_schema: ${SCHEMA_PATH} # Required by CI
|
generate_schema: # 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
|
||||||
@@ -184,23 +170,24 @@ 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} | jq 'del(.version)' > $(SCHEMA_PATH)
|
pulumi package get-schema bin/${PROVIDER} > $(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_GENERIC}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
(cd provider && go build -o ../bin/${PROVIDER} -ldflags "-X ${PROJECT}/${VERSION_PATH}=${VERSION}" $(PROJECT)/${PROVIDER_PATH}/cmd/$(PROVIDER))
|
||||||
|
|
||||||
bin/pulumi-gen-${PACK}: # Required by CI
|
bin/pulumi-gen-${PACK}: # Required by CI
|
||||||
touch bin/pulumi-gen-${PACK}
|
touch bin/pulumi-gen-${PACK}
|
||||||
|
|
||||||
|
$(shell find . -name '*.go'):
|
||||||
|
|
||||||
go.mod: $(shell find . -name '*.go')
|
go.mod: $(shell find . -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
|
||||||
|
|
||||||
# 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.
|
sdk/python: PYPI_VERSION := $(shell pulumictl get version --language python)
|
||||||
.PHONY: sdk/*
|
|
||||||
|
|
||||||
sdk/python: TMPDIR := $(shell mktemp -d)
|
sdk/python: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/python: $(PULUMI) bin/${PROVIDER}
|
sdk/python: $(PULUMI) bin/${PROVIDER}
|
||||||
rm -rf sdk/python
|
rm -rf sdk/python
|
||||||
@@ -208,12 +195,15 @@ sdk/python: $(PULUMI) bin/${PROVIDER}
|
|||||||
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: $(PULUMI) bin/${PROVIDER}
|
||||||
rm -rf sdk/nodejs
|
rm -rf sdk/nodejs
|
||||||
@@ -222,30 +212,32 @@ sdk/nodejs: $(PULUMI) bin/${PROVIDER}
|
|||||||
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: $(PULUMI) bin/${PROVIDER}
|
sdk/go: $(PULUMI) bin/${PROVIDER}
|
||||||
rm -rf sdk/go
|
rm -rf sdk/go
|
||||||
PATH=$(PATH) $(PULUMI) package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
|
$(PULUMI) package gen-sdk bin/$(PROVIDER) --language go -o ${TMPDIR}
|
||||||
cp go.mod ${TMPDIR}/go/dockerbuild/go.mod
|
cp go.mod ${TMPDIR}/go/${PACK}/go.mod
|
||||||
cd ${TMPDIR}/go/dockerbuild && \
|
cd ${TMPDIR}/go/${PACK} && \
|
||||||
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/dockerbuild && \
|
go mod edit -module=github.com/pulumi/pulumi-${PACK}/${PACKDIR}/go/${PACK} && \
|
||||||
go mod tidy
|
go mod tidy
|
||||||
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
|
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/.
|
||||||
|
|
||||||
|
sdk/dotnet: DOTNET_VERSION := $(shell pulumictl get version --language dotnet)
|
||||||
sdk/dotnet: TMPDIR := $(shell mktemp -d)
|
sdk/dotnet: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/dotnet: $(PULUMI) bin/${PROVIDER}
|
sdk/dotnet: $(PULUMI) 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 "$(VERSION_GENERIC)" > version.txt && \
|
echo "$(DOTNET_VERSION)" > version.txt && \
|
||||||
dotnet build
|
dotnet build /p:Version=${DOTNET_VERSION}
|
||||||
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
|
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
|
||||||
|
|
||||||
sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)")
|
sdk/java: PACKAGE_VERSION := $(shell pulumictl get version --language generic)
|
||||||
sdk/java: TMPDIR := $(shell mktemp -d)
|
sdk/java: TMPDIR := $(shell mktemp -d)
|
||||||
sdk/java: $(PULUMI) bin/${PROVIDER}
|
sdk/java: $(PULUMI) bin/${PROVIDER}
|
||||||
rm -rf sdk/java
|
rm -rf sdk/java
|
||||||
@@ -253,6 +245,6 @@ sdk/java: $(PULUMI) bin/${PROVIDER}
|
|||||||
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') ${SCHEMA_PATH}
|
docs: $(shell find docs/yaml -type f)
|
||||||
go generate docs/generate.go
|
go generate docs/generate.go
|
||||||
@touch docs
|
@touch docs
|
||||||
|
|||||||
117
README.md
117
README.md
@@ -1,23 +1,106 @@
|
|||||||
[](https://slack.pulumi.com)
|
# Pulumi Native Provider Boilerplate
|
||||||
[](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)
|
|
||||||
|
|
||||||
# Docker-Build Resource Provider
|
This repository is a boilerplate showing how to create and locally test a native Pulumi 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/).
|
## Authoring a Pulumi Native Provider
|
||||||
|
|
||||||
Not to be confused with the earlier
|
This boilerplate creates a working Pulumi-owned provider named `xyz`.
|
||||||
[Docker](http://github.com/pulumi/pulumi-docker) provider, which is still
|
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.
|
||||||
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. |
|
|
||||||
|
|
||||||
## Reference
|
### Prerequisites
|
||||||
|
|
||||||
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/).
|
Prerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.
|
||||||
|
|
||||||
|
If you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:
|
||||||
|
|
||||||
|
* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
|
||||||
|
* [Go 1.21](https://golang.org/dl/) or 1.latest
|
||||||
|
* [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
|
||||||
|
* [Yarn](https://yarnpkg.com/)
|
||||||
|
* [TypeScript](https://www.typescriptlang.org/)
|
||||||
|
* [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
|
||||||
|
* [.NET](https://dotnet.microsoft.com/download)
|
||||||
|
|
||||||
|
|
||||||
|
### Build & test the boilerplate XYZ provider
|
||||||
|
|
||||||
|
1. Create a new Github CodeSpaces environment using this repository.
|
||||||
|
1. Open a terminal in the CodeSpaces environment.
|
||||||
|
1. Run `make build install` to build and install the provider.
|
||||||
|
1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.
|
||||||
|
1. Run `make up` to run the example program in `examples/yaml`.
|
||||||
|
1. Run `make down` to tear down the example program.
|
||||||
|
|
||||||
|
### Creating a new provider repository
|
||||||
|
|
||||||
|
Pulumi offers this repository as a [GitHub template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for convenience. From this repository:
|
||||||
|
|
||||||
|
1. Click "Use this template".
|
||||||
|
1. Set the following options:
|
||||||
|
* Owner: pulumi
|
||||||
|
* Repository name: pulumi-xyz-native (replace "xyz" with the name of your provider)
|
||||||
|
* Description: Pulumi provider for xyz
|
||||||
|
* Repository type: Public
|
||||||
|
1. Clone the generated repository.
|
||||||
|
|
||||||
|
From the templated repository:
|
||||||
|
|
||||||
|
1. Search-replace `xyz` with the name of your desired provider.
|
||||||
|
|
||||||
|
#### Build the provider and install the plugin
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ make build install
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
|
||||||
|
1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)
|
||||||
|
2. Create the provider binary and place it in the `./bin` folder (gitignored)
|
||||||
|
3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder
|
||||||
|
4. Install the provider on your machine.
|
||||||
|
|
||||||
|
#### Test against the example
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ cd examples/simple
|
||||||
|
$ yarn link @pulumi/xyz
|
||||||
|
$ yarn install
|
||||||
|
$ pulumi stack init test
|
||||||
|
$ pulumi up
|
||||||
|
```
|
||||||
|
|
||||||
|
Now that you have completed all of the above steps, you have a working provider that generates a random string for you.
|
||||||
|
|
||||||
|
#### A brief repository overview
|
||||||
|
|
||||||
|
You now have:
|
||||||
|
|
||||||
|
1. A `provider/` folder containing the building and implementation logic
|
||||||
|
1. `cmd/pulumi-resource-xyz/main.go` - holds the provider's sample implementation logic.
|
||||||
|
2. `deployment-templates` - a set of files to help you around deployment and publication
|
||||||
|
3. `sdk` - holds the generated code libraries created by `pulumi-gen-xyz/main.go`
|
||||||
|
4. `examples` a folder of Pulumi programs to try locally and/or use in CI.
|
||||||
|
5. A `Makefile` and this `README`.
|
||||||
|
|
||||||
|
#### Additional Details
|
||||||
|
|
||||||
|
This repository depends on the pulumi-go-provider library. For more details on building providers, please check
|
||||||
|
the [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).
|
||||||
|
|
||||||
|
### Build Examples
|
||||||
|
|
||||||
|
Create an example program using the resources defined in your provider, and place it in the `examples/` folder.
|
||||||
|
|
||||||
|
You can now repeat the steps for [build, install, and test](#test-against-the-example).
|
||||||
|
|
||||||
|
## Configuring CI and releases
|
||||||
|
|
||||||
|
1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
Other resources/examples for implementing providers:
|
||||||
|
* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)
|
||||||
|
* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)
|
||||||
|
|||||||
@@ -1,204 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# Copyright 2016-2018, Pulumi Corporation. All rights reserved.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import asyncio
|
|
||||||
from typing import Optional
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import traceback
|
|
||||||
import runpy
|
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
|
||||||
|
|
||||||
# The user might not have installed Pulumi yet in their environment - provide a high-quality error message in that case.
|
|
||||||
try:
|
|
||||||
import pulumi
|
|
||||||
import pulumi.runtime
|
|
||||||
except ImportError:
|
|
||||||
# For whatever reason, sys.stderr.write is not picked up by the engine as a message, but 'print' is. The Python
|
|
||||||
# langhost automatically flushes stdout and stderr on shutdown, so we don't need to do it here - just trust that
|
|
||||||
# Python does the sane thing when printing to stderr.
|
|
||||||
print(traceback.format_exc(), file=sys.stderr)
|
|
||||||
print("""
|
|
||||||
It looks like the Pulumi SDK has not been installed. Have you run pip install?
|
|
||||||
If you are running in a virtualenv, you must run pip install -r requirements.txt from inside the virtualenv.""", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# use exit code 32 to signal to the language host that an error message was displayed to the user
|
|
||||||
PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE = 32
|
|
||||||
|
|
||||||
def get_abs_module_path(mod_path):
|
|
||||||
path, ext = os.path.splitext(mod_path)
|
|
||||||
if not ext:
|
|
||||||
path = os.path.join(path, '__main__')
|
|
||||||
return os.path.abspath(path)
|
|
||||||
|
|
||||||
|
|
||||||
def _get_user_stacktrace(user_program_abspath: str) -> str:
|
|
||||||
'''grabs the current stacktrace and truncates it to show the only stacks pertaining to a user's program'''
|
|
||||||
tb = traceback.extract_tb(sys.exc_info()[2])
|
|
||||||
|
|
||||||
for frame_index, frame in enumerate(tb):
|
|
||||||
# loop over stack frames until we reach the main program
|
|
||||||
# then return the traceback truncated to the user's code
|
|
||||||
cur_module = frame[0]
|
|
||||||
if get_abs_module_path(user_program_abspath) == get_abs_module_path(cur_module):
|
|
||||||
# we have detected the start of a user's stack trace
|
|
||||||
remaining_frames = len(tb)-frame_index
|
|
||||||
|
|
||||||
# include remaining frames from the bottom by negating
|
|
||||||
return traceback.format_exc(limit=-remaining_frames)
|
|
||||||
|
|
||||||
# we did not detect a __main__ program, return normal traceback
|
|
||||||
return traceback.format_exc()
|
|
||||||
|
|
||||||
def _set_default_executor(loop, parallelism: Optional[int]):
|
|
||||||
'''configure this event loop to respect the settings provided.'''
|
|
||||||
if parallelism is None:
|
|
||||||
return
|
|
||||||
parallelism = max(parallelism, 1)
|
|
||||||
exec = ThreadPoolExecutor(max_workers=parallelism)
|
|
||||||
loop.set_default_executor(exec)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
# Parse the arguments, program name, and optional arguments.
|
|
||||||
ap = argparse.ArgumentParser(description='Execute a Pulumi Python program')
|
|
||||||
ap.add_argument('--project', help='Set the project name')
|
|
||||||
ap.add_argument('--stack', help='Set the stack name')
|
|
||||||
ap.add_argument('--parallel', help='Run P resource operations in parallel (default=none)')
|
|
||||||
ap.add_argument('--dry_run', help='Simulate resource changes, but without making them')
|
|
||||||
ap.add_argument('--pwd', help='Change the working directory before running the program')
|
|
||||||
ap.add_argument('--monitor', help='An RPC address for the resource monitor to connect to')
|
|
||||||
ap.add_argument('--engine', help='An RPC address for the engine to connect to')
|
|
||||||
ap.add_argument('--tracing', help='A Zipkin-compatible endpoint to send tracing data to')
|
|
||||||
ap.add_argument('--organization', help='Set the organization name')
|
|
||||||
ap.add_argument('PROGRAM', help='The Python program to run')
|
|
||||||
ap.add_argument('ARGS', help='Arguments to pass to the program', nargs='*')
|
|
||||||
args = ap.parse_args()
|
|
||||||
|
|
||||||
# If any config variables are present, parse and set them, so subsequent accesses are fast.
|
|
||||||
config_env = pulumi.runtime.get_config_env()
|
|
||||||
if hasattr(pulumi.runtime, "get_config_secret_keys_env") and hasattr(pulumi.runtime, "set_all_config"):
|
|
||||||
# If the pulumi SDK has `get_config_secret_keys_env` and `set_all_config`, use them
|
|
||||||
# to set the config and secret keys.
|
|
||||||
config_secret_keys_env = pulumi.runtime.get_config_secret_keys_env()
|
|
||||||
pulumi.runtime.set_all_config(config_env, config_secret_keys_env)
|
|
||||||
else:
|
|
||||||
# Otherwise, fallback to setting individual config values.
|
|
||||||
for k, v in config_env.items():
|
|
||||||
pulumi.runtime.set_config(k, v)
|
|
||||||
|
|
||||||
# Configure the runtime so that the user program hooks up to Pulumi as appropriate.
|
|
||||||
# New versions of pulumi python support setting organization, old versions do not
|
|
||||||
try:
|
|
||||||
settings = pulumi.runtime.Settings(
|
|
||||||
monitor=args.monitor,
|
|
||||||
engine=args.engine,
|
|
||||||
project=args.project,
|
|
||||||
stack=args.stack,
|
|
||||||
parallel=int(args.parallel),
|
|
||||||
dry_run=args.dry_run == "true",
|
|
||||||
organization=args.organization,
|
|
||||||
)
|
|
||||||
except TypeError:
|
|
||||||
settings = pulumi.runtime.Settings(
|
|
||||||
monitor=args.monitor,
|
|
||||||
engine=args.engine,
|
|
||||||
project=args.project,
|
|
||||||
stack=args.stack,
|
|
||||||
parallel=int(args.parallel),
|
|
||||||
dry_run=args.dry_run == "true"
|
|
||||||
)
|
|
||||||
|
|
||||||
pulumi.runtime.configure(settings)
|
|
||||||
|
|
||||||
# Finally, swap in the args, chdir if needed, and run the program as if it had been executed directly.
|
|
||||||
sys.argv = [args.PROGRAM] + args.ARGS
|
|
||||||
if args.pwd is not None:
|
|
||||||
os.chdir(args.pwd)
|
|
||||||
|
|
||||||
successful = False
|
|
||||||
|
|
||||||
try:
|
|
||||||
# The docs for get_running_loop are somewhat misleading because they state:
|
|
||||||
# This function can only be called from a coroutine or a callback. However, if the function is
|
|
||||||
# called from outside a coroutine or callback (the standard case when running `pulumi up`), the function
|
|
||||||
# raises a RuntimeError as expected and falls through to the exception clause below.
|
|
||||||
loop = asyncio.get_running_loop()
|
|
||||||
except RuntimeError:
|
|
||||||
loop = asyncio.new_event_loop()
|
|
||||||
asyncio.set_event_loop(loop)
|
|
||||||
|
|
||||||
# Configure the event loop to respect the parallelism value provided as input.
|
|
||||||
_set_default_executor(loop, settings.parallel)
|
|
||||||
|
|
||||||
# We are (unfortunately) suppressing the log output of asyncio to avoid showing to users some of the bad things we
|
|
||||||
# do in our programming model.
|
|
||||||
#
|
|
||||||
# Fundamentally, Pulumi is a way for users to build asynchronous dataflow graphs that, as their deployments
|
|
||||||
# progress, resolve naturally and eventually result in the complete resolution of the graph. If one node in the
|
|
||||||
# graph fails (i.e. a resource fails to create, there's an exception in an apply, etc.), part of the graph remains
|
|
||||||
# unevaluated at the time that we exit.
|
|
||||||
#
|
|
||||||
# asyncio abhors this. It gets very upset if the process terminates without having observed every future that we
|
|
||||||
# have resolved. If we are terminating abnormally, it is highly likely that we are not going to observe every single
|
|
||||||
# future that we have created. Furthermore, it's *harmless* to do this - asyncio logs errors because it thinks it
|
|
||||||
# needs to tell users that they're doing bad things (which, to their credit, they are), but we are doing this
|
|
||||||
# deliberately.
|
|
||||||
#
|
|
||||||
# In order to paper over this for our users, we simply turn off the logger for asyncio. Users won't see any asyncio
|
|
||||||
# error messages, but if they stick to the Pulumi programming model, they wouldn't be seeing any anyway.
|
|
||||||
logging.getLogger("asyncio").setLevel(logging.CRITICAL)
|
|
||||||
exit_code = 1
|
|
||||||
try:
|
|
||||||
# record the location of the user's program to return user tracebacks
|
|
||||||
user_program_abspath = os.path.abspath(args.PROGRAM)
|
|
||||||
def run():
|
|
||||||
try:
|
|
||||||
runpy.run_path(args.PROGRAM, run_name='__main__')
|
|
||||||
except ImportError as e:
|
|
||||||
def fix_module_file(m: str) -> str:
|
|
||||||
# Work around python 11 reporting "<frozen runpy>" rather
|
|
||||||
# than runpy.__file__ in the traceback.
|
|
||||||
return runpy.__file__ if m == "<frozen runpy>" else m
|
|
||||||
|
|
||||||
# detect if the main pulumi python program does not exist
|
|
||||||
stack_modules = [fix_module_file(f.filename) for f in traceback.extract_tb(e.__traceback__)]
|
|
||||||
unique_modules = set(module for module in stack_modules)
|
|
||||||
last_module_name = stack_modules[-1]
|
|
||||||
|
|
||||||
# we identify a missing program error if
|
|
||||||
# 1. the only modules in the stack trace are
|
|
||||||
# - `pulumi-language-python-exec`
|
|
||||||
# - `runpy`
|
|
||||||
# 2. the last function in the stack trace is in the `runpy` module
|
|
||||||
if unique_modules == {
|
|
||||||
__file__, # the language runtime itself
|
|
||||||
runpy.__file__,
|
|
||||||
} and last_module_name == runpy.__file__ :
|
|
||||||
# this error will only be hit when the user provides a directory
|
|
||||||
# the engine has a check to determine if the `main` file exists and will fail early
|
|
||||||
|
|
||||||
# if a language runtime receives a directory, it's the language's responsibility to determine
|
|
||||||
# whether the provided directory has a pulumi program
|
|
||||||
pulumi.log.error(f"unable to find main python program `__main__.py` in `{user_program_abspath}`")
|
|
||||||
sys.exit(PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE)
|
|
||||||
else:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
coro = pulumi.runtime.run_in_stack(run)
|
|
||||||
loop.run_until_complete(coro)
|
|
||||||
exit_code = 0
|
|
||||||
except pulumi.RunError as e:
|
|
||||||
pulumi.log.error(str(e))
|
|
||||||
except Exception:
|
|
||||||
error_msg = "Program failed with an unhandled exception:\n" + _get_user_stacktrace(user_program_abspath)
|
|
||||||
pulumi.log.error(error_msg)
|
|
||||||
exit_code = PYTHON_PROCESS_EXITED_AFTER_SHOWING_USER_ACTIONABLE_MESSAGE_CODE
|
|
||||||
finally:
|
|
||||||
loop.close()
|
|
||||||
sys.stdout.flush()
|
|
||||||
sys.stderr.flush()
|
|
||||||
|
|
||||||
sys.exit(exit_code)
|
|
||||||
@@ -6,7 +6,7 @@ resources:
|
|||||||
ecr-repository:
|
ecr-repository:
|
||||||
type: aws:ecr:Repository
|
type: aws:ecr:Repository
|
||||||
my-image:
|
my-image:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
tags:
|
tags:
|
||||||
- ${ecr-repository.repositoryUrl}:latest
|
- ${ecr-repository.repositoryUrl}:latest
|
||||||
@@ -36,21 +36,20 @@ runtime: yaml
|
|||||||
description: Multi-platform image
|
description: Multi-platform image
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
tags:
|
tags:
|
||||||
- "docker.io/pulumi/pulumi:3.107.0"
|
- "docker.io/pulumi/pulumi:3.107.0"
|
||||||
@@ -69,7 +68,7 @@ runtime: yaml
|
|||||||
description: Caching
|
description: Caching
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
@@ -80,71 +79,65 @@ 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: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index: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
|
||||||
@@ -152,7 +145,7 @@ runtime: yaml
|
|||||||
description: Inline Dockerfile
|
description: Inline Dockerfile
|
||||||
resources:
|
resources:
|
||||||
image:
|
image:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
dockerfile:
|
dockerfile:
|
||||||
inline: |
|
inline: |
|
||||||
@@ -160,31 +153,28 @@ 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: docker-build:Image
|
type: dockerbuild:index: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: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
exports:
|
exports:
|
||||||
- docker:
|
- docker:
|
||||||
tar: true
|
tar: true
|
||||||
push: false
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ description: Multi-platform registry caching
|
|||||||
runtime: yaml
|
runtime: yaml
|
||||||
resources:
|
resources:
|
||||||
arm64:
|
arm64:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
@@ -20,7 +20,7 @@ resources:
|
|||||||
ref: "docker.io/pulumi/pulumi:cache-arm64"
|
ref: "docker.io/pulumi/pulumi:cache-arm64"
|
||||||
|
|
||||||
amd64:
|
amd64:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
context:
|
context:
|
||||||
location: "app"
|
location: "app"
|
||||||
@@ -37,7 +37,7 @@ resources:
|
|||||||
ref: "docker.io/pulumi/pulumi:cache-amd64"
|
ref: "docker.io/pulumi/pulumi:cache-amd64"
|
||||||
|
|
||||||
index:
|
index:
|
||||||
type: docker-build:Index
|
type: dockerbuild:index:Index
|
||||||
properties:
|
properties:
|
||||||
tag: "docker.io/pulumi/pulumi:3.107.0"
|
tag: "docker.io/pulumi/pulumi:3.107.0"
|
||||||
sources:
|
sources:
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,34 +1,32 @@
|
|||||||
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 config = new Config();
|
var config = new Config();
|
||||||
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",
|
||||||
},
|
},
|
||||||
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,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
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",
|
||||||
},
|
},
|
||||||
@@ -38,9 +36,9 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
Exports = new[]
|
Exports = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.ExportArgs
|
new Dockerbuild.Inputs.ExportArgs
|
||||||
{
|
{
|
||||||
Registry = new DockerBuild.Inputs.ExportRegistryArgs
|
Registry = new Dockerbuild.Inputs.ExportRegistryArgs
|
||||||
{
|
{
|
||||||
OciMediaTypes = true,
|
OciMediaTypes = true,
|
||||||
Push = false,
|
Push = false,
|
||||||
@@ -49,7 +47,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
Registries = new[]
|
Registries = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.RegistryArgs
|
new Dockerbuild.Inputs.RegistryArgs
|
||||||
{
|
{
|
||||||
Address = "docker.io",
|
Address = "docker.io",
|
||||||
Username = "pulumibot",
|
Username = "pulumibot",
|
||||||
@@ -58,29 +56,28 @@ 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",
|
||||||
},
|
},
|
||||||
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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
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",
|
||||||
},
|
},
|
||||||
@@ -88,14 +85,13 @@ 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",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Dockerbuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
},
|
},
|
||||||
@@ -105,14 +101,13 @@ 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",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Dockerbuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
},
|
},
|
||||||
@@ -122,34 +117,32 @@ 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",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Dockerbuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
},
|
},
|
||||||
Ssh = new[]
|
Ssh = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.SSHArgs
|
new Dockerbuild.Inputs.SSHArgs
|
||||||
{
|
{
|
||||||
Id = "default",
|
Id = "default",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
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",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Dockerbuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
},
|
},
|
||||||
@@ -159,10 +152,9 @@ 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",
|
||||||
},
|
},
|
||||||
@@ -172,33 +164,31 @@ 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",
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Dockerbuild.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "./app",
|
Location = "./app",
|
||||||
},
|
},
|
||||||
Target = "build-me",
|
Target = "build-me",
|
||||||
});
|
});
|
||||||
|
|
||||||
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",
|
||||||
},
|
},
|
||||||
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",
|
||||||
} },
|
} },
|
||||||
@@ -206,53 +196,53 @@ 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",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
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
|
||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
",
|
",
|
||||||
},
|
},
|
||||||
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",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
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",
|
||||||
},
|
},
|
||||||
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,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: dotnet
|
runtime: dotnet
|
||||||
config:
|
config:
|
||||||
dockerHubPassword:
|
dockerHubPassword:
|
||||||
@@ -6,5 +6,5 @@ config:
|
|||||||
secret: true
|
secret: true
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Pulumi" Version="3.*" />
|
<PackageReference Include="Pulumi" Version="3.*" />
|
||||||
<PackageReference Include="Pulumi.DockerBuild" Version="0.0.2-alpha.1712594380+4cd6d49b.dirty" />
|
<PackageReference Include="Pulumi.Dockerbuild" Version="*" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -27,7 +27,7 @@ func TestDotNetExample(t *testing.T) {
|
|||||||
test := integration.ProgramTestOptions{
|
test := integration.ProgramTestOptions{
|
||||||
Dir: path.Join(cwd, "dotnet"),
|
Dir: path.Join(cwd, "dotnet"),
|
||||||
Dependencies: []string{
|
Dependencies: []string{
|
||||||
"Pulumi.DockerBuild",
|
"Pulumi.Dockerbuild",
|
||||||
},
|
},
|
||||||
Secrets: map[string]string{
|
Secrets: map[string]string{
|
||||||
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: go
|
runtime: go
|
||||||
config:
|
config:
|
||||||
dockerHubPassword:
|
dockerHubPassword:
|
||||||
@@ -6,5 +6,5 @@ config:
|
|||||||
secret: true
|
secret: true
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|||||||
@@ -1,94 +1,7 @@
|
|||||||
module provider-docker-build
|
module provider-dockerbuild
|
||||||
|
|
||||||
go 1.21.7
|
go 1.20
|
||||||
|
|
||||||
toolchain go1.21.9
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.0-20240425180359-26c144c916b7
|
github.com/pulumi/pulumi/sdk/v3 v3.111.1
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.117.0
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
|
||||||
dario.cat/mergo v1.0.0 // 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.24.2 // 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.6.2 // 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.23.0 // indirect
|
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
|
||||||
golang.org/x/mod v0.16.0 // indirect
|
|
||||||
golang.org/x/net v0.25.0 // indirect
|
|
||||||
golang.org/x/sync v0.6.0 // indirect
|
|
||||||
golang.org/x/sys v0.20.0 // indirect
|
|
||||||
golang.org/x/term v0.20.0 // indirect
|
|
||||||
golang.org/x/text v0.15.0 // indirect
|
|
||||||
golang.org/x/tools v0.19.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
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,317 +0,0 @@
|
|||||||
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
|
|
||||||
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
|
||||||
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.24.2 h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06RaW2cx/SY=
|
|
||||||
github.com/charmbracelet/bubbletea v0.24.2/go.mod h1:XdrNrV4J8GiyshTtx3DNuYkR1FDaJmO3l2nejekbsgg=
|
|
||||||
github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E=
|
|
||||||
github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c=
|
|
||||||
github.com/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.6.2 h1:+z+l8cuwIauLSwXQS0uoI3rqB+YG4SzsZYtHfNoXBvw=
|
|
||||||
github.com/pulumi/esc v0.6.2/go.mod h1:jNnYNjzsOgVTjCp0LL24NsCk8ZJxq4IoLQdCT0X7l8k=
|
|
||||||
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.117.0 h1:ImIsukZ2ZIYQG94uWdSZl9dJjJTosQSTsOQTauTNX7U=
|
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.117.0/go.mod h1:kNea72+FQk82OjZ3yEP4dl6nbAl2ngE8PDBc0iFAaHg=
|
|
||||||
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.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
|
|
||||||
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
|
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o=
|
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08=
|
|
||||||
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.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
|
|
||||||
golang.org/x/mod v0.16.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.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
|
|
||||||
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
|
||||||
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.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
|
||||||
golang.org/x/sync v0.6.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.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
|
|
||||||
golang.org/x/sys v0.20.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.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
|
|
||||||
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
|
|
||||||
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.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
|
|
||||||
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
|
||||||
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.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
|
|
||||||
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
|
|
||||||
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=
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
|
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
|
||||||
)
|
)
|
||||||
@@ -11,7 +11,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -27,7 +26,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -54,7 +52,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -78,7 +75,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -93,7 +89,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -108,7 +103,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -125,7 +119,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -140,7 +133,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -152,7 +144,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -165,7 +156,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -182,7 +172,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -191,7 +180,6 @@ 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"),
|
||||||
},
|
},
|
||||||
@@ -203,16 +191,17 @@ 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"),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func TestGoExample(t *testing.T) {
|
|||||||
test := integration.ProgramTestOptions{
|
test := integration.ProgramTestOptions{
|
||||||
Dir: path.Join(cwd, "go"),
|
Dir: path.Join(cwd, "go"),
|
||||||
Dependencies: []string{
|
Dependencies: []string{
|
||||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild=../sdk/go/dockerbuild",
|
"github.com/pulumi/pulumi-dockerbuild/sdk/go/dockerbuild=../sdk/go/dockerbuild",
|
||||||
},
|
},
|
||||||
Secrets: map[string]string{
|
Secrets: map[string]string{
|
||||||
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: java
|
runtime: java
|
||||||
config:
|
config:
|
||||||
dockerHubPassword:
|
dockerHubPassword:
|
||||||
@@ -6,5 +6,5 @@ config:
|
|||||||
secret: true
|
secret: true
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.pulumi</groupId>
|
<groupId>com.pulumi</groupId>
|
||||||
<artifactId>provider-docker-build</artifactId>
|
<artifactId>provider-dockerbuild</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.pulumi</groupId>
|
<groupId>com.pulumi</groupId>
|
||||||
<artifactId>docker-build</artifactId>
|
<artifactId>dockerbuild</artifactId>
|
||||||
<version>[0.0.0,)</version>
|
<version>[0.0.0,)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ 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())
|
||||||
@@ -45,7 +44,6 @@ 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())
|
||||||
@@ -64,7 +62,6 @@ 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())
|
||||||
@@ -82,7 +79,6 @@ 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())
|
||||||
@@ -93,7 +89,6 @@ 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())
|
||||||
@@ -104,7 +99,6 @@ 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())
|
||||||
@@ -117,7 +111,6 @@ 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())
|
||||||
@@ -128,7 +121,6 @@ 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())
|
||||||
@@ -136,7 +128,6 @@ 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())
|
||||||
@@ -147,7 +138,6 @@ 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())
|
||||||
@@ -158,14 +148,12 @@ 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
|
||||||
@@ -178,17 +166,18 @@ 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())
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package examples
|
package examples
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/rand"
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"errors"
|
|
||||||
"io"
|
|
||||||
"math/rand"
|
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -22,39 +20,30 @@ func TestMain(m *testing.M) {
|
|||||||
|
|
||||||
// sshagent crates an in-memory SSH agent with one identity.
|
// sshagent crates an in-memory SSH agent with one identity.
|
||||||
func sshagent() string {
|
func sshagent() string {
|
||||||
dir, err := os.MkdirTemp(os.TempDir(), "docker-test-*")
|
dir := os.TempDir()
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
sock := filepath.Join(dir, "test.sock")
|
sock := filepath.Join(dir, "test.sock")
|
||||||
|
|
||||||
|
// In case it already exists.
|
||||||
|
_ = os.Remove(sock)
|
||||||
|
|
||||||
l, err := net.Listen("unix", sock)
|
l, err := net.Listen("unix", sock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
a := agent.NewKeyring()
|
a := agent.NewKeyring()
|
||||||
//nolint:gosec
|
key, err := rsa.GenerateKey(rand.Reader, 2048)
|
||||||
key, err := rsa.GenerateKey(rand.New(rand.NewSource(42)), 2048)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
err = a.Add(agent.AddedKey{PrivateKey: key})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
_ = a.Add(agent.AddedKey{PrivateKey: key})
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
conn, err := l.Accept()
|
||||||
conn, err := l.Accept()
|
if err != nil {
|
||||||
if err != nil {
|
panic(err)
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
if err := agent.ServeAgent(a, conn); err != nil && !errors.Is(err, io.EOF) {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
agent.ServeAgent(a, conn)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return sock
|
return sock
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: nodejs
|
runtime: nodejs
|
||||||
config:
|
config:
|
||||||
dockerHubPassword:
|
dockerHubPassword:
|
||||||
@@ -6,5 +6,5 @@ config:
|
|||||||
secret: true
|
secret: true
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import * as pulumi from "@pulumi/pulumi";
|
import * as pulumi from "@pulumi/pulumi";
|
||||||
import * as docker_build from "@pulumi/docker-build";
|
import * as dockerbuild from "@pulumi/dockerbuild";
|
||||||
|
|
||||||
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 dockerbuild.Image("multiPlatform", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.multiPlatform",
|
location: "./app/Dockerfile.multiPlatform",
|
||||||
},
|
},
|
||||||
@@ -12,12 +11,11 @@ const multiPlatform = new docker_build.Image("multiPlatform", {
|
|||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
platforms: [
|
platforms: [
|
||||||
docker_build.Platform.Plan9_amd64,
|
dockerbuild.Platform.Plan9_amd64,
|
||||||
docker_build.Platform.Plan9_386,
|
dockerbuild.Platform.Plan9_386,
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
const registryPush = new docker_build.Image("registryPush", {
|
const registryPush = new dockerbuild.Image("registryPush", {
|
||||||
push: false,
|
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
@@ -34,15 +32,14 @@ const registryPush = new docker_build.Image("registryPush", {
|
|||||||
password: dockerHubPassword,
|
password: dockerHubPassword,
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const cached = new docker_build.Image("cached", {
|
const cached = new dockerbuild.Image("cached", {
|
||||||
push: false,
|
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
cacheTo: [{
|
cacheTo: [{
|
||||||
local: {
|
local: {
|
||||||
dest: "tmp/cache",
|
dest: "tmp/cache",
|
||||||
mode: docker_build.CacheMode.Max,
|
mode: dockerbuild.CacheMode.Max,
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
cacheFrom: [{
|
cacheFrom: [{
|
||||||
@@ -51,8 +48,7 @@ const cached = new docker_build.Image("cached", {
|
|||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const buildArgs = new docker_build.Image("buildArgs", {
|
const buildArgs = new dockerbuild.Image("buildArgs", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.buildArgs",
|
location: "./app/Dockerfile.buildArgs",
|
||||||
},
|
},
|
||||||
@@ -63,8 +59,7 @@ const buildArgs = new docker_build.Image("buildArgs", {
|
|||||||
SET_ME_TO_TRUE: "true",
|
SET_ME_TO_TRUE: "true",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const extraHosts = new docker_build.Image("extraHosts", {
|
const extraHosts = new dockerbuild.Image("extraHosts", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.extraHosts",
|
location: "./app/Dockerfile.extraHosts",
|
||||||
},
|
},
|
||||||
@@ -73,8 +68,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 dockerbuild.Image("sshMount", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.sshMount",
|
location: "./app/Dockerfile.sshMount",
|
||||||
},
|
},
|
||||||
@@ -85,8 +79,7 @@ const sshMount = new docker_build.Image("sshMount", {
|
|||||||
id: "default",
|
id: "default",
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
const secrets = new docker_build.Image("secrets", {
|
const secrets = new dockerbuild.Image("secrets", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.secrets",
|
location: "./app/Dockerfile.secrets",
|
||||||
},
|
},
|
||||||
@@ -97,8 +90,7 @@ const secrets = new docker_build.Image("secrets", {
|
|||||||
password: "hunter2",
|
password: "hunter2",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const labels = new docker_build.Image("labels", {
|
const labels = new dockerbuild.Image("labels", {
|
||||||
push: false,
|
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
@@ -106,8 +98,7 @@ const labels = new docker_build.Image("labels", {
|
|||||||
description: "This image will get a descriptive label 👍",
|
description: "This image will get a descriptive label 👍",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const target = new docker_build.Image("target", {
|
const target = new dockerbuild.Image("target", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.target",
|
location: "./app/Dockerfile.target",
|
||||||
},
|
},
|
||||||
@@ -116,8 +107,7 @@ const target = new docker_build.Image("target", {
|
|||||||
},
|
},
|
||||||
target: "build-me",
|
target: "build-me",
|
||||||
});
|
});
|
||||||
const namedContexts = new docker_build.Image("namedContexts", {
|
const namedContexts = new dockerbuild.Image("namedContexts", {
|
||||||
push: false,
|
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
location: "./app/Dockerfile.namedContexts",
|
location: "./app/Dockerfile.namedContexts",
|
||||||
},
|
},
|
||||||
@@ -130,14 +120,10 @@ const namedContexts = new docker_build.Image("namedContexts", {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const remoteContext = new docker_build.Image("remoteContext", {
|
const remoteContext = new dockerbuild.Image("remoteContext", {context: {
|
||||||
push: false,
|
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
context: {
|
}});
|
||||||
location: "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
const remoteContextWithInline = new dockerbuild.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 ./
|
||||||
@@ -147,16 +133,17 @@ COPY hello.c ./
|
|||||||
location: "https://github.com/docker-library/hello-world.git",
|
location: "https://github.com/docker-library/hello-world.git",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const inline = new docker_build.Image("inline", {
|
const inline = new dockerbuild.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 dockerbuild.Image("dockerLoad", {
|
||||||
push: false,
|
|
||||||
context: {
|
context: {
|
||||||
location: "./app",
|
location: "./app",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "provider-docker-build",
|
"name": "provider-dockerbuild",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^18"
|
"@types/node": "^18"
|
||||||
},
|
},
|
||||||
@@ -8,3 +8,4 @@
|
|||||||
"@pulumi/pulumi": "^3.0.0"
|
"@pulumi/pulumi": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,19 +4,11 @@
|
|||||||
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,7 +18,7 @@ func TestNodeExample(t *testing.T) {
|
|||||||
|
|
||||||
test := integration.ProgramTestOptions{
|
test := integration.ProgramTestOptions{
|
||||||
Dir: path.Join(cwd, "nodejs"),
|
Dir: path.Join(cwd, "nodejs"),
|
||||||
Dependencies: []string{"@pulumi/docker-build"},
|
Dependencies: []string{"@pulumi/dockerbuild"},
|
||||||
Secrets: map[string]string{
|
Secrets: map[string]string{
|
||||||
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
||||||
},
|
},
|
||||||
@@ -34,180 +26,3 @@ 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())
|
|
||||||
|
|
||||||
// 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
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: python
|
runtime: python
|
||||||
config:
|
config:
|
||||||
dockerHubPassword:
|
dockerHubPassword:
|
||||||
@@ -6,5 +6,5 @@ config:
|
|||||||
secret: true
|
secret: true
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|||||||
@@ -1,154 +1,142 @@
|
|||||||
import pulumi
|
import pulumi
|
||||||
import pulumi_docker_build as docker_build
|
import pulumi_dockerbuild as dockerbuild
|
||||||
|
|
||||||
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 = dockerbuild.Image("multiPlatform",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.multiPlatform",
|
location="./app/Dockerfile.multiPlatform",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
platforms=[
|
platforms=[
|
||||||
docker_build.Platform.PLAN9_AMD64,
|
dockerbuild.Platform.PLAN9_AMD64,
|
||||||
docker_build.Platform.PLAN9_386,
|
dockerbuild.Platform.PLAN9_386,
|
||||||
])
|
])
|
||||||
registry_push = docker_build.Image("registryPush",
|
registry_push = dockerbuild.Image("registryPush",
|
||||||
push=False,
|
context=dockerbuild.BuildContextArgs(
|
||||||
context=docker_build.BuildContextArgs(
|
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
tags=["docker.io/pulumibot/buildkit-e2e:example"],
|
tags=["docker.io/pulumibot/buildkit-e2e:example"],
|
||||||
exports=[docker_build.ExportArgs(
|
exports=[dockerbuild.ExportArgs(
|
||||||
registry=docker_build.ExportRegistryArgs(
|
registry=dockerbuild.ExportRegistryArgs(
|
||||||
oci_media_types=True,
|
oci_media_types=True,
|
||||||
push=False,
|
push=False,
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
registries=[docker_build.RegistryArgs(
|
registries=[dockerbuild.RegistryArgs(
|
||||||
address="docker.io",
|
address="docker.io",
|
||||||
username="pulumibot",
|
username="pulumibot",
|
||||||
password=docker_hub_password,
|
password=docker_hub_password,
|
||||||
)])
|
)])
|
||||||
cached = docker_build.Image("cached",
|
cached = dockerbuild.Image("cached",
|
||||||
push=False,
|
context=dockerbuild.BuildContextArgs(
|
||||||
context=docker_build.BuildContextArgs(
|
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
cache_to=[docker_build.CacheToArgs(
|
cache_to=[dockerbuild.CacheToArgs(
|
||||||
local=docker_build.CacheToLocalArgs(
|
local=dockerbuild.CacheToLocalArgs(
|
||||||
dest="tmp/cache",
|
dest="tmp/cache",
|
||||||
mode=docker_build.CacheMode.MAX,
|
mode=dockerbuild.CacheMode.MAX,
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
cache_from=[docker_build.CacheFromArgs(
|
cache_from=[dockerbuild.CacheFromArgs(
|
||||||
local=docker_build.CacheFromLocalArgs(
|
local=dockerbuild.CacheFromLocalArgs(
|
||||||
src="tmp/cache",
|
src="tmp/cache",
|
||||||
),
|
),
|
||||||
)])
|
)])
|
||||||
build_args = docker_build.Image("buildArgs",
|
build_args = dockerbuild.Image("buildArgs",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.buildArgs",
|
location="./app/Dockerfile.buildArgs",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
build_args={
|
build_args={
|
||||||
"SET_ME_TO_TRUE": "true",
|
"SET_ME_TO_TRUE": "true",
|
||||||
})
|
})
|
||||||
extra_hosts = docker_build.Image("extraHosts",
|
extra_hosts = dockerbuild.Image("extraHosts",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.extraHosts",
|
location="./app/Dockerfile.extraHosts",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
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 = dockerbuild.Image("sshMount",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.sshMount",
|
location="./app/Dockerfile.sshMount",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
ssh=[docker_build.SSHArgs(
|
ssh=[dockerbuild.SSHArgs(
|
||||||
id="default",
|
id="default",
|
||||||
)])
|
)])
|
||||||
secrets = docker_build.Image("secrets",
|
secrets = dockerbuild.Image("secrets",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.secrets",
|
location="./app/Dockerfile.secrets",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
secrets={
|
secrets={
|
||||||
"password": "hunter2",
|
"password": "hunter2",
|
||||||
})
|
})
|
||||||
labels = docker_build.Image("labels",
|
labels = dockerbuild.Image("labels",
|
||||||
push=False,
|
context=dockerbuild.BuildContextArgs(
|
||||||
context=docker_build.BuildContextArgs(
|
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
labels={
|
labels={
|
||||||
"description": "This image will get a descriptive label 👍",
|
"description": "This image will get a descriptive label 👍",
|
||||||
})
|
})
|
||||||
target = docker_build.Image("target",
|
target = dockerbuild.Image("target",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.target",
|
location="./app/Dockerfile.target",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
target="build-me")
|
target="build-me")
|
||||||
named_contexts = docker_build.Image("namedContexts",
|
named_contexts = dockerbuild.Image("namedContexts",
|
||||||
push=False,
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
location="./app/Dockerfile.namedContexts",
|
location="./app/Dockerfile.namedContexts",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="./app",
|
location="./app",
|
||||||
named={
|
named={
|
||||||
"golang:latest": docker_build.ContextArgs(
|
"golang:latest": dockerbuild.ContextArgs(
|
||||||
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
remote_context = docker_build.Image("remoteContext",
|
remote_context = dockerbuild.Image("remoteContext", context=dockerbuild.BuildContextArgs(
|
||||||
push=False,
|
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
||||||
context=docker_build.BuildContextArgs(
|
))
|
||||||
location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
remote_context_with_inline = dockerbuild.Image("remoteContextWithInline",
|
||||||
))
|
dockerfile=dockerbuild.DockerfileArgs(
|
||||||
remote_context_with_inline = docker_build.Image("remoteContextWithInline",
|
|
||||||
push=False,
|
|
||||||
dockerfile=docker_build.DockerfileArgs(
|
|
||||||
inline="""FROM busybox
|
inline="""FROM busybox
|
||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
""",
|
""",
|
||||||
),
|
),
|
||||||
context=docker_build.BuildContextArgs(
|
context=dockerbuild.BuildContextArgs(
|
||||||
location="https://github.com/docker-library/hello-world.git",
|
location="https://github.com/docker-library/hello-world.git",
|
||||||
))
|
))
|
||||||
inline = docker_build.Image("inline",
|
inline = dockerbuild.Image("inline",
|
||||||
push=False,
|
dockerfile=dockerbuild.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=dockerbuild.BuildContextArgs(
|
||||||
|
location="./app",
|
||||||
))
|
))
|
||||||
docker_load = docker_build.Image("dockerLoad",
|
docker_load = dockerbuild.Image("dockerLoad",
|
||||||
push=False,
|
context=dockerbuild.BuildContextArgs(
|
||||||
context=docker_build.BuildContextArgs(
|
|
||||||
location="./app",
|
location="./app",
|
||||||
),
|
),
|
||||||
exports=[docker_build.ExportArgs(
|
exports=[dockerbuild.ExportArgs(
|
||||||
docker=docker_build.ExportDockerArgs(
|
docker=dockerbuild.ExportDockerArgs(
|
||||||
tar=True,
|
tar=True,
|
||||||
),
|
),
|
||||||
)])
|
)])
|
||||||
|
|||||||
@@ -1,238 +0,0 @@
|
|||||||
{"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-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"Zpop9M+JmIOwQmpumbecUCsV/ks1h9w6l2kNF3lHjtY="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::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"}},"randomSeed":"dazhCjb2uC3lg762/5M8fHXC64y7VpteYy88EbBvYRk="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"k/yAQzkpHW8a2lT12qIMuQfWrQ6sxi52a7UTd31LbD4="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::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"}},"randomSeed":"NEWS/2SobJBiSZclKMV4daNb9w/gZpL9pcnSEjW15fY="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"w9MW3AkZK+TS8c5c+uX+fP+Vt8poZV/PUbderi6/3dE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::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"}},"randomSeed":"mV9MJBEc699p8wXnrZvEsyefqhUZDd3HxcbOcnUAdO0="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"SPsY4RQylcrhPetcrwIr7G+BibJW0+09naCR6cJSJGg="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::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"}},"randomSeed":"6nH/HyMcjBzTIyOjPbXERsM0mAuEXlIBKB24F1Gsa80="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"fMySvdt7mS2bvuQkC+8ICtuDrqf6d8R/cNdjP+iii6w="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"pXjbeSMAG78wM0O3cgoHerpS38bRyXVDCXAXHVmkeXA="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::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"}},"randomSeed":"hU23n1oCU57Ug9cijDs3BOi/NUF0CsL2DRpU9QXayJU="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"9oO+TJ0chIeCLZuHJV29ILCIQ6XWA9HcT34B8nt7lI8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"kWpnWR43XXn09f6NoRg3J1ahweFpu+Ki90I2VetJ8SM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"VXrvj73695AeVkkB+YfN35qaeyIUVEvBOVHVxSSfaIw="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"preview":true},"response":{"id":"sshMount","properties":{"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,"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.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"labels","properties":{"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,"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":"sshMount","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"inline","properties":{"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,"noCache":false,"pull":false,"push":false,"ref":"04da6b54-80e4-46f7-96ec-b56ff0331ba9","target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"preview":true},"response":{"id":"secrets","properties":{"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,"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":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"preview":true},"response":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","properties":{"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":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"preview":true},"response":{"id":"target","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","properties":{"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":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"multiPlatform","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContext","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"remoteContextWithInline","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"preview":true},"response":{"id":"namedContexts","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.LanguageRuntime/Run","request":{"project":"provider-docker-build","stack":"p-it-bryces-wor-upgrade-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60753","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::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-e061461f::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"}},"randomSeed":"c+JQMdFhF6DOlV8hBuEsf76TrMLc6uX0cKSx/rvuQcc="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"iPranfQEDhU2tBPuJ2P7Q3/OHjdBPVHK9/IzM11zxfk="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"nIXHrGklHMSwivplBfBucdtH4wJ7A5eo7bjj4ZxL8QE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::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"}},"randomSeed":"hd2D8/SmwfN3kSVt2mzNB6K7p8wSD24qhpQ+kH+6Kxk="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"i/5eV6MV38Hjst81A4OlJF42udbJ9Asyz/r3P+1NTZ0="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::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"}},"randomSeed":"spb/oBaOJEb8pwkhwRwVY/swPtN8qOE65qm/r+WENhM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"randomSeed":"VAIZ261e1K5SdjJGxUK4lFZZ81lVX9uLZNaMJZSaSgc="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::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"}},"randomSeed":"ckcraHsDcgQy8Xfc5GCkEctolkFoPJuQBchIjgaIy5o="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"qLetBHXWUUbd1nzRKwb+4Q3vMS1U992mEpsIV3aWY68="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"1Z8ESqA4tOmwRrcM6D0q+ipiiHXwTJ9qgw9HT7+WaWo="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"jVeY5oCFxhbO0PQM/yzT/j5sqyKRIiswQOHMkXQy1cw="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"DhxVd/uvzafm07NfEWe2OBqp3t/o9IR6AT18EKLmEuU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::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"}},"randomSeed":"I0Y9+u4kHEsYQsS6cmtW6TOL8Bagud98ZK8PBzHAKOU="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"T9HnfRgKDfZ+iBd2a68qPmyp8eGs0f+K2xsnjj0ISWE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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":"remoteContext","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"inline","properties":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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":"inline","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{"id":"target","properties":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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":"target","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""}},"response":{"id":"secrets","properties":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""}},"response":{"id":"sshMount","properties":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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":"cached","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"labels","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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":"labels","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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":"buildArgs","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""}},"response":{"id":"multiPlatform","properties":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"namedContexts","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Create","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{"id":"remoteContextWithInline","properties":{"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,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"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,"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-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","parallel":40,"monitorAddress":"127.0.0.1:60794","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::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-e061461f::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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"tMXM48V491BYs4k3nOqa+BUpCpy8mkFXc1Jyngtv2ks="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"DcWNEJg0Y5LZ6MCTk5H8k58+T7cr/GbT3jb4gNz5zNc="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"H71/WG0tiWTMF269z3kMD9zBX9Ln0uXis2MuCV/A1NQ="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"HMPS/w4UZY/QwMCrYxUJnzTrLqe3q5V/LmY6nKTB484="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"agoXAuKdGsp1d8fTJ9q9+zEZCYWyZTuS2p3bvSUHOyA="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"9dw+AeJcDZPN4zirq4fWzncjMehMUqGP+reeeUwWhBY="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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"]},"randomSeed":"eisHaeSJgr13Hz+Y+OW0HajMWGInl2AdIdvYKhaiYM8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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"}},"randomSeed":"dozyePo0yXgy++Qeg4zKJgYgteXPg9nDONDS38XVAWc="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"GeqkcC4hzoLB0IuMuSrn0UluNtAKnAwskinrZUpwQHY="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"dJuBcpYybxF+YavduppyVIwRmNtwxnfbY/QvUOcVEkU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"DQv3cDSC/jY0j+m+Uuxz4NGr+SPwkxRd0NQEcjXKjFU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"secrets","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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"}},"randomSeed":"LUCJNdWcMwcGg8+RC4Ps+WrX65B8InJWTsWzq/7tadw="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"XvWY+fKcYQGtROjT+EFktlT4gOcDqR5hl3ICvkGeEDE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"H0mPGShL53nYNHWweNJpfa/pyS3//KbQRVxI9hsRdqM="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","dryRun":true,"parallel":40,"monitorAddress":"127.0.0.1:60813","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f-4146250643","program":".","info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","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-e061461f","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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","object":{}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/CheckConfig","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::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-e061461f::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-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"randomSeed":"0R8XzurAkZVBVo5Ak3rdfLsdkT4+q95F/3DhfHyWma8="},"response":{"inputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::cached","olds":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"cacheFrom":[{"local":{"src":"tmp/cache"}}],"cacheTo":[{"local":{"dest":"tmp/cache","mode":"max"}}],"context":{"location":"./app"}},"propertyDependencies":{"cacheFrom":{},"cacheTo":{},"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::cached","id":"cached","object":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"randomSeed":"y7SP2cfhyxX/xTtxfJbroa9/iXEXVW6Eaci4JXJTNxQ="},"response":{"inputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","olds":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.buildArgs"}},"propertyDependencies":{"buildArgs":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","id":"buildArgs","object":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"randomSeed":"cz62E7jO5yWlw9mkJj9Ez4cpdYBF2dgh7E0FUuzLxl8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Diff","request":{"id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"docker":{"tar":true}}]},"propertyDependencies":{"context":{},"exports":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","id":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"randomSeed":"7y6D1J226DjAjOcjiIkhaRj6CTPNcN4M2H70xK/eCVE="},"response":{"inputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","olds":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.extraHosts"}},"propertyDependencies":{"addHosts":{},"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","id":"extraHosts","object":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"randomSeed":"YY7uODwIoO2TN3U21WRsr19e/afGYYMZhvFEdWfsi4g="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::inline","olds":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::inline","id":"inline","object":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"randomSeed":"w3KBpsGE5S0Y+m/1J+0/lClLXfM53bkQwrs6RHl3xlE="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::labels","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"labels":{"description":"This image will get a descriptive label 👍"}},"propertyDependencies":{"context":{},"labels":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::labels","id":"labels","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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"]},"randomSeed":"Ty0cOel4m07ZkB3A+9oMsoZbmI2Q+HUb8UsAbfy/QvU="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","olds":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.multiPlatform"},"platforms":["plan9/amd64","plan9/386"]},"propertyDependencies":{"context":{},"dockerfile":{},"platforms":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","id":"multiPlatform","object":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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"}},"randomSeed":"zIZQ9y9Yx+mkkcVMVreEF0oSRj3raIAxkTQxi9rr18E="},"response":{"inputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","olds":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"location":"./app/Dockerfile.namedContexts"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","id":"namedContexts","object":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"randomSeed":"+e5XWIeDD3dvxfeCWWouOUkymanKzu57dKusbE3L9Zg="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","olds":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"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/RegisterResourceOutputs","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","outputs":{"platforms":["plan9/amd64","plan9/386"]}},"response":{},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceMonitor/RegisterResource","request":{"type":"docker-build:index:Image","name":"registryPush","parent":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"exports":[{"registry":{"ociMediaTypes":true,"push":false}}],"tags":["docker.io/pulumibot/buildkit-e2e:example"]},"propertyDependencies":{"context":{},"exports":{},"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-e061461f::provider-docker-build::docker-build:index:Image::registryPush","id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","object":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"randomSeed":"uB8WQMUAsec6AH38scYXxeWFx+nAhZp+rUm2WGgrYxk="},"response":{"inputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","olds":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"}},"propertyDependencies":{"context":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","id":"remoteContext","object":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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"}},"randomSeed":"1V9l2UKAV9cHSJcJTKt0ymI0WMMLUnIr+8qPkP6XqGc="},"response":{"inputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","olds":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"news":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n"}},"propertyDependencies":{"context":{},"dockerfile":{}},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","id":"remoteContextWithInline","object":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""}},"metadata":{"mode":"server"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Check","request":{"urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"randomSeed":"+icqSaPIIvsMlPWlo6cwzRCAeYedBVcz625lO/zhkio="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","olds":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.secrets"},"secrets":{"password":"hunter2"}},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::secrets","id":"secrets","object":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"randomSeed":"rK2kTpMkTSvZwJOL04Qni9QGC/C92dnGNNjTxCKtSO8="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","olds":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.sshMount"},"ssh":[{"id":"default"}]},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","id":"sshMount","object":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"randomSeed":"qrvpFrYtistuCpd/I8Dq63WU/hRxec5tndtlGxorgoY="},"response":{"inputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","olds":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"news":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f","custom":true,"object":{"context":{"location":"./app"},"dockerfile":{"location":"./app/Dockerfile.target"},"target":"build-me"},"propertyDependencies":{"context":{},"dockerfile":{},"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-e061461f::provider-docker-build::docker-build:index:Image::target","id":"target","object":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"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-e061461f","pwd":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","program":".","parallel":40,"monitorAddress":"127.0.0.1:60829","organization":"organization","configPropertyMap":{},"info":{"rootDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","programDirectory":"/private/var/folders/kq/zdlx0fn57yl66gxktcyzylv40000gn/T/p-it-bryces-wor-upgrade-e061461f-4146250643","entryPoint":".","options":{}}},"response":{},"metadata":{"kind":"language","mode":"client","runtime":"yaml"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/GetPluginInfo","request":{},"response":{"version":"0.0.2-alpha.1713828576+f5e57ab7.dirty"},"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:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"docker":{"compressionLevel":0,"dest":"","tar":true},"raw":""}],"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform","properties":{"context":{"location":"./app"},"contextHash":"c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.multiPlatform"},"exec":false,"load":false,"noCache":false,"platforms":["plan9/amd64","plan9/386"],"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::inline","properties":{"context":{"location":"./app"},"contextHash":"36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec","digest":"","dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::buildArgs","properties":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"contextHash":"55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"buildArgs":{"SET_ME_TO_TRUE":"true"},"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.buildArgs"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::target","properties":{"context":{"location":"./app"},"contextHash":"fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":"build-me"},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.target"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":"build-me"}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"labels","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"labels":{"description":"This image will get a descriptive label 👍"},"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::sshMount","properties":{"context":{"location":"./app"},"contextHash":"71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","ssh":[{"id":"default"}],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.sshMount"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ssh":[{"id":"default"}],"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-e061461f::provider-docker-build::docker-build:index:Image::namedContexts","properties":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"./app","named":{"golang:latest":{"location":"docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"}}},"dockerfile":{"inline":"","location":"./app/Dockerfile.namedContexts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::cached","properties":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"cacheFrom":[{"disabled":false,"local":{"digest":"","src":"tmp/cache"},"raw":""}],"cacheTo":[{"disabled":false,"local":{"compressionLevel":0,"dest":"tmp/cache","mode":"max"},"raw":""}],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline","properties":{"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,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"https://github.com/docker-library/hello-world.git"},"dockerfile":{"inline":"FROM busybox\nCOPY hello.c ./\n","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"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-e061461f::provider-docker-build::docker-build:index:Image::extraHosts","properties":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"contextHash":"e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"addHosts":["metadata.google.internal:169.254.169.254"],"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.extraHosts"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"secrets","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets","properties":{"context":{"location":"./app"},"contextHash":"5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21","digest":"","dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","secrets":{"password":"hunter2"},"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"./app/Dockerfile.secrets"},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"secrets":{"password":"hunter2"},"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-e061461f::provider-docker-build::docker-build:index:Image::remoteContext","properties":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"contextHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","digest":"","dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"ref":"","target":""},"oldInputs":{"context":{"location":"https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"},"dockerfile":{"inline":"","location":""},"exec":false,"load":false,"noCache":false,"pull":false,"push":false,"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
{"method":"/pulumirpc.ResourceProvider/Delete","request":{"id":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","urn":"urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush","properties":{"context":{"location":"./app"},"contextHash":"e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5","digest":"sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"ref":"docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e","tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""},"oldInputs":{"context":{"location":"./app"},"dockerfile":{"inline":"","location":"app/Dockerfile"},"exec":false,"exports":[{"disabled":false,"raw":"","registry":{"compressionLevel":0,"danglingNamePrefix":"","ociMediaTypes":true,"push":false}}],"load":false,"noCache":false,"pull":false,"push":false,"tags":["docker.io/pulumibot/buildkit-e2e:example"],"target":""}},"response":{},"metadata":{"kind":"resource","mode":"client","name":"docker-build"}}
|
|
||||||
@@ -1,856 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"deployment": {
|
|
||||||
"manifest": {
|
|
||||||
"time": "2024-04-25T08:48:01.267863-07:00",
|
|
||||||
"magic": "",
|
|
||||||
"version": ""
|
|
||||||
},
|
|
||||||
"secrets_providers": {
|
|
||||||
"type": "passphrase",
|
|
||||||
"state": {
|
|
||||||
"salt": "v1:VL+kccbv65M=:v1:rRAfrl2TUFiFVdMv:sqpTiKP4J8mt05CfZp3bhu9Zqp4UsA=="
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"resources": [
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"custom": false,
|
|
||||||
"type": "pulumi:pulumi:Stack",
|
|
||||||
"outputs": {
|
|
||||||
"platforms": [
|
|
||||||
"plan9/amd64",
|
|
||||||
"plan9/386"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:47:59.523578Z",
|
|
||||||
"modified": "2024-04-25T15:47:59.523578Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default",
|
|
||||||
"custom": true,
|
|
||||||
"id": "1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"type": "pulumi:providers:docker-build",
|
|
||||||
"inputs": {
|
|
||||||
"host": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"host": ""
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:47:59.664483Z",
|
|
||||||
"modified": "2024-04-25T15:47:59.664483Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContext",
|
|
||||||
"custom": true,
|
|
||||||
"id": "remoteContext",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": ""
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile"
|
|
||||||
},
|
|
||||||
"contextHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": ""
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.520476Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.520476Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::inline",
|
|
||||||
"custom": true,
|
|
||||||
"id": "inline",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
|
||||||
"location": ""
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "36c67969e6700e87bde75fcf604a7db1fa9593194718fc0ae1c498df43228aec",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "FROM alpine\nRUN echo \"This uses an inline Dockerfile! 👍\"\n",
|
|
||||||
"location": ""
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.542164Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.542164Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::target",
|
|
||||||
"custom": true,
|
|
||||||
"id": "target",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.target"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": "build-me"
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "fefadf795b6b4b119e97a87067a25f52a16cc3375223acad7b3f642fdcd413fc",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.target"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": "build-me"
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": [],
|
|
||||||
"target": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.568397Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.568397Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::secrets",
|
|
||||||
"custom": true,
|
|
||||||
"id": "secrets",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.secrets"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"secrets": {
|
|
||||||
"password": "hunter2"
|
|
||||||
},
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "5c1561571a60aa3b5a234a9c26f69e2ba5d9a18624f426109d36a1d729b23a21",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.secrets"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"secrets": {
|
|
||||||
"password": "hunter2"
|
|
||||||
},
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": [],
|
|
||||||
"secrets": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.578273Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.578273Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::sshMount",
|
|
||||||
"custom": true,
|
|
||||||
"id": "sshMount",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.sshMount"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ssh": [
|
|
||||||
{
|
|
||||||
"id": "default"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "71d21b382ab9ee0324ad820ce57a0a4318342a0a244931f51fc46b791f1b37e9",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.sshMount"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"ssh": [
|
|
||||||
{
|
|
||||||
"id": "default"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": [],
|
|
||||||
"ssh": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.590119Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.590119Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::registryPush",
|
|
||||||
"custom": true,
|
|
||||||
"id": "sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"exports": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"raw": "",
|
|
||||||
"registry": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"danglingNamePrefix": "",
|
|
||||||
"ociMediaTypes": true,
|
|
||||||
"push": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"tags": [
|
|
||||||
"docker.io/pulumibot/buildkit-e2e:example"
|
|
||||||
],
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
|
||||||
"digest": "sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"exports": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"raw": "",
|
|
||||||
"registry": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"danglingNamePrefix": "",
|
|
||||||
"ociMediaTypes": true,
|
|
||||||
"push": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "docker.io/pulumibot/buildkit-e2e:example@sha256:daf363fb4e814674f8e3e542e3dc1dbb9f7fb21f83c1956ddc948f20c1f9553e",
|
|
||||||
"tags": [
|
|
||||||
"docker.io/pulumibot/buildkit-e2e:example"
|
|
||||||
],
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"exports": [],
|
|
||||||
"tags": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.59945Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.59945Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::cached",
|
|
||||||
"custom": true,
|
|
||||||
"id": "cached",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"cacheFrom": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"local": {
|
|
||||||
"digest": "",
|
|
||||||
"src": "tmp/cache"
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cacheTo": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"local": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"dest": "tmp/cache",
|
|
||||||
"mode": "max"
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"cacheFrom": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"local": {
|
|
||||||
"digest": "",
|
|
||||||
"src": "tmp/cache"
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cacheTo": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"local": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"dest": "tmp/cache",
|
|
||||||
"mode": "max"
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"cacheFrom": [],
|
|
||||||
"cacheTo": [],
|
|
||||||
"context": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.616567Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.616567Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::dockerLoad",
|
|
||||||
"custom": true,
|
|
||||||
"id": "sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"exports": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"docker": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"dest": "",
|
|
||||||
"tar": true
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
|
||||||
"digest": "sha256:af0f1b830122444f250e8f6d50ceea71b6f485cfc0f7a9cc828390c2f0647040",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"exports": [
|
|
||||||
{
|
|
||||||
"disabled": false,
|
|
||||||
"docker": {
|
|
||||||
"compressionLevel": 0,
|
|
||||||
"dest": "",
|
|
||||||
"tar": true
|
|
||||||
},
|
|
||||||
"raw": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"exports": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.629463Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.629463Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::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"
|
|
||||||
],
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.extraHosts"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"addHosts": [
|
|
||||||
"metadata.google.internal:169.254.169.254"
|
|
||||||
],
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "e5d510d9ce39d91260e3aa7f8c81d7517a76165eb35e7134cae2f3e4e9fcb712",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.extraHosts"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"addHosts": [],
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.639744Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.639744Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::labels",
|
|
||||||
"custom": true,
|
|
||||||
"id": "labels",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"labels": {
|
|
||||||
"description": "This image will get a descriptive label 👍"
|
|
||||||
},
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "e569495ad1cfde07d0e769ab9b5ed56b889508f299d2e7a90400caf9e12795d5",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "app/Dockerfile"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"labels": {
|
|
||||||
"description": "This image will get a descriptive label 👍"
|
|
||||||
},
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"labels": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.707146Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.707146Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::buildArgs",
|
|
||||||
"custom": true,
|
|
||||||
"id": "buildArgs",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"buildArgs": {
|
|
||||||
"SET_ME_TO_TRUE": "true"
|
|
||||||
},
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.buildArgs"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"buildArgs": {
|
|
||||||
"SET_ME_TO_TRUE": "true"
|
|
||||||
},
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "55695ddcfb4d08a0d78d1a74c7b0141dada73ed05bc4b056ba29a51e42c83381",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.buildArgs"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"buildArgs": [],
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.713219Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.713219Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::multiPlatform",
|
|
||||||
"custom": true,
|
|
||||||
"id": "multiPlatform",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.multiPlatform"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"platforms": [
|
|
||||||
"plan9/amd64",
|
|
||||||
"plan9/386"
|
|
||||||
],
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app"
|
|
||||||
},
|
|
||||||
"contextHash": "c7ecf546ed2402de04f2dfa56ca4adb6fd490eed4219d7f1b2e559cd475f1755",
|
|
||||||
"digest": "",
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.multiPlatform"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"platforms": [
|
|
||||||
"plan9/amd64",
|
|
||||||
"plan9/386"
|
|
||||||
],
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": [],
|
|
||||||
"platforms": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.802952Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.802952Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::namedContexts",
|
|
||||||
"custom": true,
|
|
||||||
"id": "namedContexts",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "./app",
|
|
||||||
"named": {
|
|
||||||
"golang:latest": {
|
|
||||||
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "",
|
|
||||||
"location": "./app/Dockerfile.namedContexts"
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"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,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:00.82495Z",
|
|
||||||
"modified": "2024-04-25T15:48:00.82495Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"urn": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::docker-build:index:Image::remoteContextWithInline",
|
|
||||||
"custom": true,
|
|
||||||
"id": "remoteContextWithInline",
|
|
||||||
"type": "docker-build:index:Image",
|
|
||||||
"inputs": {
|
|
||||||
"context": {
|
|
||||||
"location": "https://github.com/docker-library/hello-world.git"
|
|
||||||
},
|
|
||||||
"dockerfile": {
|
|
||||||
"inline": "FROM busybox\nCOPY hello.c ./\n",
|
|
||||||
"location": ""
|
|
||||||
},
|
|
||||||
"exec": false,
|
|
||||||
"load": false,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"outputs": {
|
|
||||||
"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,
|
|
||||||
"noCache": false,
|
|
||||||
"pull": false,
|
|
||||||
"push": false,
|
|
||||||
"ref": "",
|
|
||||||
"target": ""
|
|
||||||
},
|
|
||||||
"parent": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:pulumi:Stack::provider-docker-build-p-it-bryces-wor-upgrade-e061461f",
|
|
||||||
"provider": "urn:pulumi:p-it-bryces-wor-upgrade-e061461f::provider-docker-build::pulumi:providers:docker-build::default::1262d75a-1f92-4f7b-8b32-6b5246d188f0",
|
|
||||||
"propertyDependencies": {
|
|
||||||
"context": [],
|
|
||||||
"dockerfile": []
|
|
||||||
},
|
|
||||||
"created": "2024-04-25T15:48:01.263124Z",
|
|
||||||
"modified": "2024-04-25T15:48:01.263124Z"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
name: test-buildx-caching
|
|
||||||
runtime: nodejs
|
|
||||||
description: A minimal TypeScript Pulumi program
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
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
|
|
||||||
);
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "test-buildx-caching",
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^20.0.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@pulumi/pulumi": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
|||||||
*
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
name: dockerhub
|
|
||||||
description: Push to DockerHub with caching
|
|
||||||
runtime: yaml
|
|
||||||
plugins:
|
|
||||||
providers:
|
|
||||||
- name: docker-build
|
|
||||||
path: ../../../bin
|
|
||||||
outputs:
|
|
||||||
ref: ${my-image.ref}
|
|
||||||
resources:
|
|
||||||
my-image:
|
|
||||||
type: docker-build:Image
|
|
||||||
properties:
|
|
||||||
tags:
|
|
||||||
- docker.io/pulumibot/buildkit-e2e
|
|
||||||
push: true
|
|
||||||
context:
|
|
||||||
location: .
|
|
||||||
dockerfile:
|
|
||||||
inline: FROM alpine
|
|
||||||
cacheFrom:
|
|
||||||
- registry:
|
|
||||||
ref: docker.io/pulumibot/buildkit-e2e:cache
|
|
||||||
cacheTo:
|
|
||||||
- registry:
|
|
||||||
ref: docker.io/pulumibot/buildkit-e2e:cache
|
|
||||||
registries:
|
|
||||||
- username: pulumibot
|
|
||||||
address: docker.io
|
|
||||||
password: ${dockerHubPassword}
|
|
||||||
config:
|
|
||||||
dockerHubPassword:
|
|
||||||
type: string
|
|
||||||
secret: true
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
*
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
name: ecr
|
|
||||||
description: Push to AWS ECR with caching
|
|
||||||
runtime: yaml
|
|
||||||
plugins:
|
|
||||||
providers:
|
|
||||||
- name: docker-build
|
|
||||||
path: ../../../bin
|
|
||||||
outputs:
|
|
||||||
ref: ${my-image.ref}
|
|
||||||
resources:
|
|
||||||
ecr-repository:
|
|
||||||
type: aws:ecr:Repository
|
|
||||||
properties:
|
|
||||||
forceDelete: true
|
|
||||||
my-image:
|
|
||||||
type: docker-build:Image
|
|
||||||
properties:
|
|
||||||
tags:
|
|
||||||
- ${ecr-repository.repositoryUrl}:latest
|
|
||||||
push: true
|
|
||||||
context:
|
|
||||||
location: .
|
|
||||||
dockerfile:
|
|
||||||
inline: FROM alpine
|
|
||||||
cacheFrom:
|
|
||||||
- registry:
|
|
||||||
ref: ${ecr-repository.repositoryUrl}:cache
|
|
||||||
cacheTo:
|
|
||||||
- registry:
|
|
||||||
ref: ${ecr-repository.repositoryUrl}:cache
|
|
||||||
imageManifest: true
|
|
||||||
ociMediaTypes: true
|
|
||||||
registries:
|
|
||||||
- username: ${auth-token.userName}
|
|
||||||
password: ${auth-token.password}
|
|
||||||
address: ${ecr-repository.repositoryUrl}
|
|
||||||
variables:
|
|
||||||
auth-token:
|
|
||||||
fn::aws:ecr:getAuthorizationToken:
|
|
||||||
registryId: ${ecr-repository.registryId}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
*
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,187 +0,0 @@
|
|||||||
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}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# YAML Example Program
|
|
||||||
|
|
||||||
Test Pulumi program written in YAML for testing this provider locally.
|
|
||||||
|
|
||||||
Edit this yaml program to test features of your provider locally. You can run this program using the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pulumi login
|
|
||||||
pulumi stack init local
|
|
||||||
pulumi up
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that unlike the rest of the auto-generated examples in the ./examples directory, this example is not automatically generated. It is intended to be a place for you to test your provider locally.
|
|
||||||
|
|
||||||
The remaining examples are language specific examples derived from the `make gen_examples` command supported in this provider's Makefile. These examples are automatically generated and should not be edited directly. To regenerate these examples, run `make gen_examples` in the root of this provider's repository.
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
FROM alpine
|
|
||||||
RUN echo 👍
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
FROM alpine
|
|
||||||
|
|
||||||
ARG SET_ME_TO_TRUE
|
|
||||||
RUN [ "$SET_ME_TO_TRUE" = "true" ]
|
|
||||||
RUN echo "That's the correct build arg, thanks! 👍"
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
FROM alpine
|
|
||||||
RUN echo "This image doesn't use any local files, so it doesn't need a context parameter 👍"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
FROM bash AS base
|
|
||||||
|
|
||||||
RUN getent hosts metadata.google.internal
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
FROM --platform=$BUILDPLATFORM alpine as build
|
|
||||||
RUN echo ${BUILDPLATFORM} > buildplatform
|
|
||||||
RUN echo ${TARGETPLATFORM} > targetplatform
|
|
||||||
|
|
||||||
FROM build
|
|
||||||
RUN cat buildplatform
|
|
||||||
RUN cat targetplatform
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# 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 👍"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
FROM alpine
|
|
||||||
|
|
||||||
RUN --mount=type=secret,id=password [ "$(cat /run/secrets/password)" = "hunter2" ]
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
FROM alpine
|
|
||||||
|
|
||||||
RUN apk add openssh-client
|
|
||||||
|
|
||||||
RUN --mount=type=ssh ssh-add -l
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
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" ]
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
command-output
|
|
||||||
tmp
|
|
||||||
@@ -1,16 +1,15 @@
|
|||||||
name: provider-docker-build
|
name: provider-dockerbuild
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
plugins:
|
plugins:
|
||||||
providers:
|
providers:
|
||||||
- name: docker-build
|
- name: dockerbuild
|
||||||
path: ../../bin
|
path: ../../bin
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
# docker buildx build -f app/Dockerfile.multiPlatform --platform plan9/amd64,plan9/386 app
|
# docker buildx build -f app/Dockerfile.multiPlatform --platform plan9/amd64,plan9/386 app
|
||||||
multiPlatform:
|
multiPlatform:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.multiPlatform"
|
location: "./app/Dockerfile.multiPlatform"
|
||||||
context:
|
context:
|
||||||
@@ -21,9 +20,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build --output=type=registry app
|
# docker buildx build --output=type=registry app
|
||||||
registryPush:
|
registryPush:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index: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,9 +36,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build --cache-to=type=local,dest=tmp/cache,mode=max --cache-from=type=local,src=tmp/cache app
|
# docker buildx build --cache-to=type=local,dest=tmp/cache,mode=max --cache-from=type=local,src=tmp/cache app
|
||||||
cached:
|
cached:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
cacheTo:
|
cacheTo:
|
||||||
@@ -53,9 +50,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build -f app/Dockerfile.buildArgs --build-arg SET_ME_TO_TRUE=true app
|
# docker buildx build -f app/Dockerfile.buildArgs --build-arg SET_ME_TO_TRUE=true app
|
||||||
buildArgs:
|
buildArgs:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.buildArgs"
|
location: "./app/Dockerfile.buildArgs"
|
||||||
context:
|
context:
|
||||||
@@ -65,9 +61,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build -f app/Dockerfile.extraHosts --add-host metadata.google.internal:169.254.169.254 app
|
# docker buildx build -f app/Dockerfile.extraHosts --add-host metadata.google.internal:169.254.169.254 app
|
||||||
extraHosts:
|
extraHosts:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.extraHosts"
|
location: "./app/Dockerfile.extraHosts"
|
||||||
context:
|
context:
|
||||||
@@ -77,9 +72,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build -f app/Dockerfile.sshMount --ssh default app
|
# docker buildx build -f app/Dockerfile.sshMount --ssh default app
|
||||||
sshMount:
|
sshMount:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.sshMount"
|
location: "./app/Dockerfile.sshMount"
|
||||||
context:
|
context:
|
||||||
@@ -89,9 +83,8 @@ resources:
|
|||||||
|
|
||||||
# PASSWORD=hunter2 docker buildx build -f app/Dockerfile.secrets --secret id=password,env=PASSWORD app
|
# PASSWORD=hunter2 docker buildx build -f app/Dockerfile.secrets --secret id=password,env=PASSWORD app
|
||||||
secrets:
|
secrets:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.secrets"
|
location: "./app/Dockerfile.secrets"
|
||||||
context:
|
context:
|
||||||
@@ -101,9 +94,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build --label "description=This image will get a descriptive label 👍" app
|
# docker buildx build --label "description=This image will get a descriptive label 👍" app
|
||||||
labels:
|
labels:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
labels:
|
labels:
|
||||||
@@ -111,9 +103,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build -f app/Dockerfile.target --target build-me app
|
# docker buildx build -f app/Dockerfile.target --target build-me app
|
||||||
target:
|
target:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.target"
|
location: "./app/Dockerfile.target"
|
||||||
context:
|
context:
|
||||||
@@ -123,9 +114,8 @@ resources:
|
|||||||
# docker buildx build -f app/Dockerfile.namedContexts \
|
# docker buildx build -f app/Dockerfile.namedContexts \
|
||||||
# --build-context golang:latest=docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984 app
|
# --build-context golang:latest=docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984 app
|
||||||
namedContexts:
|
namedContexts:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
location: "./app/Dockerfile.namedContexts"
|
location: "./app/Dockerfile.namedContexts"
|
||||||
context:
|
context:
|
||||||
@@ -136,9 +126,8 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile
|
# docker buildx build https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile
|
||||||
remoteContext:
|
remoteContext:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index: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"
|
||||||
|
|
||||||
@@ -147,9 +136,8 @@ resources:
|
|||||||
# COPY hello.c ./
|
# COPY hello.c ./
|
||||||
# EOF
|
# EOF
|
||||||
remoteContextWithInline:
|
remoteContextWithInline:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
dockerfile:
|
dockerfile:
|
||||||
inline: |
|
inline: |
|
||||||
FROM busybox
|
FROM busybox
|
||||||
@@ -159,19 +147,19 @@ resources:
|
|||||||
|
|
||||||
# echo "FROM alpine" | docker buildx build -f - .
|
# echo "FROM alpine" | docker buildx build -f - .
|
||||||
inline:
|
inline:
|
||||||
type: docker-build:Image
|
type: dockerbuild:index: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: dockerbuild:index:Image
|
||||||
properties:
|
properties:
|
||||||
push: false
|
|
||||||
context:
|
context:
|
||||||
location: "./app"
|
location: "./app"
|
||||||
exports:
|
exports:
|
||||||
@@ -180,7 +168,7 @@ resources:
|
|||||||
|
|
||||||
# docker buildx build - < app/Dockerfile.emptyContext
|
# docker buildx build - < app/Dockerfile.emptyContext
|
||||||
#emptyContext:
|
#emptyContext:
|
||||||
# type: docker-build:Image
|
# type: dockerbuild:index:Image
|
||||||
# properties:
|
# properties:
|
||||||
# file: "app/Dockerfile.emptyContext"
|
# file: "app/Dockerfile.emptyContext"
|
||||||
# context: "-"
|
# context: "-"
|
||||||
|
|||||||
@@ -6,11 +6,8 @@ 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"
|
||||||
)
|
)
|
||||||
@@ -28,69 +25,3 @@ 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) {
|
|
||||||
if os.Getenv("AWS_SESSION_TOKEN") == "" {
|
|
||||||
t.Skip("Missing AWS credentials")
|
|
||||||
}
|
|
||||||
|
|
||||||
cwd, err := os.Getwd()
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
test := integration.ProgramTestOptions{
|
|
||||||
Dir: path.Join(cwd, "tests/ecr"),
|
|
||||||
}
|
|
||||||
|
|
||||||
integration.ProgramTest(t, &test)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDockerHub(t *testing.T) {
|
|
||||||
if os.Getenv("DOCKER_HUB_PASSWORD") == "" {
|
|
||||||
t.Skip("Missing DockerHub credentials")
|
|
||||||
}
|
|
||||||
|
|
||||||
cwd, err := os.Getwd()
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
test := integration.ProgramTestOptions{
|
|
||||||
Dir: path.Join(cwd, "tests/dockerhub"),
|
|
||||||
Secrets: map[string]string{
|
|
||||||
"dockerHubPassword": os.Getenv("DOCKER_HUB_PASSWORD"),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
|
|||||||
233
go.mod
233
go.mod
@@ -1,30 +1,24 @@
|
|||||||
module github.com/pulumi/pulumi-docker-build
|
module github.com/pulumi/pulumi-dockerbuild
|
||||||
|
|
||||||
go 1.21.7
|
go 1.21.7
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/aws/aws-sdk-go v1.50.36
|
|
||||||
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.5.0
|
||||||
github.com/docker/buildx v0.13.1
|
github.com/docker/buildx v0.12.0-rc2.0.20240214233841-c9d1c41d206c
|
||||||
github.com/docker/cli v26.0.0-rc1+incompatible
|
github.com/docker/cli v25.0.3+incompatible
|
||||||
github.com/docker/distribution v2.8.2+incompatible
|
github.com/docker/distribution v2.8.2+incompatible
|
||||||
github.com/docker/docker v26.0.0-rc1+incompatible
|
github.com/docker/docker v25.0.2+incompatible
|
||||||
github.com/golangci/golangci-lint v1.57.1
|
github.com/golangci/golangci-lint v1.57.1
|
||||||
github.com/moby/buildkit v0.13.0
|
github.com/moby/buildkit v0.13.0-beta3.0.20240205165705-d6e142600ee5
|
||||||
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/providertest v0.0.12
|
github.com/pulumi/pulumi-go-provider v0.14.1-0.20240314105842-9fbffb634faf
|
||||||
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20240429090326-810475295195
|
github.com/pulumi/pulumi-go-provider/integration v0.10.1-0.20240314105842-9fbffb634faf
|
||||||
github.com/pulumi/pulumi-go-provider v0.16.1-0.20240426163030-72606b1e6fb7
|
github.com/pulumi/pulumi-java/pkg v0.9.9
|
||||||
github.com/pulumi/pulumi-java/pkg v0.11.0
|
github.com/pulumi/pulumi/pkg/v3 v3.111.2-0.20240324200353-583e06df0c70
|
||||||
github.com/pulumi/pulumi-yaml v1.7.0
|
github.com/pulumi/pulumi/sdk/v3 v3.111.2-0.20240324200353-583e06df0c70
|
||||||
github.com/pulumi/pulumi/pkg/v3 v3.117.0
|
|
||||||
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20240525040238-ee831fc5b644
|
|
||||||
github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3 v3.0.0-20240525040238-ee831fc5b644
|
|
||||||
github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3 v3.0.0-20240525040238-ee831fc5b644
|
|
||||||
github.com/pulumi/pulumi/sdk/v3 v3.117.1-0.20240525040238-ee831fc5b644
|
|
||||||
github.com/regclient/regclient v0.0.0-20240308005156-a7434cff9c6b
|
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
|
||||||
@@ -32,7 +26,6 @@ require (
|
|||||||
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-20240301111122-7525a1af2bb5
|
||||||
go.uber.org/mock v0.3.0
|
go.uber.org/mock v0.3.0
|
||||||
golang.org/x/crypto v0.23.0
|
|
||||||
google.golang.org/protobuf v1.33.0
|
google.golang.org/protobuf v1.33.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
@@ -40,14 +33,14 @@ require (
|
|||||||
require (
|
require (
|
||||||
4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
|
4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
|
||||||
4d63.com/gochecknoglobals v0.2.1 // indirect
|
4d63.com/gochecknoglobals v0.2.1 // indirect
|
||||||
cloud.google.com/go v0.112.1 // indirect
|
cloud.google.com/go v0.112.0 // indirect
|
||||||
cloud.google.com/go/compute v1.25.0 // indirect
|
cloud.google.com/go/compute v1.23.3 // 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.5 // indirect
|
||||||
cloud.google.com/go/kms v1.15.7 // indirect
|
cloud.google.com/go/kms v1.15.5 // indirect
|
||||||
cloud.google.com/go/logging v1.9.0 // indirect
|
cloud.google.com/go/logging v1.9.0 // indirect
|
||||||
cloud.google.com/go/longrunning v0.5.5 // indirect
|
cloud.google.com/go/longrunning v0.5.4 // indirect
|
||||||
cloud.google.com/go/storage v1.39.1 // indirect
|
cloud.google.com/go/storage v1.36.0 // 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/4meepo/tagalign v1.3.3 // indirect
|
||||||
github.com/Abirdcfly/dupword v0.0.14 // indirect
|
github.com/Abirdcfly/dupword v0.0.14 // indirect
|
||||||
@@ -56,16 +49,16 @@ require (
|
|||||||
github.com/Antonboom/errname v0.1.12 // indirect
|
github.com/Antonboom/errname v0.1.12 // indirect
|
||||||
github.com/Antonboom/nilnil v0.1.7 // indirect
|
github.com/Antonboom/nilnil v0.1.7 // indirect
|
||||||
github.com/Antonboom/testifylint v1.2.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/azcore v1.9.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/keyvault/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/azure-sdk-for-go/sdk/storage/azblob v1.2.0 // indirect
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||||
github.com/Azure/go-autorest/autorest/to v0.4.0 // 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.0 // indirect
|
||||||
github.com/BurntSushi/toml v1.3.2 // indirect
|
github.com/BurntSushi/toml v1.3.2 // indirect
|
||||||
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
|
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
|
||||||
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
|
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
|
||||||
@@ -73,7 +66,7 @@ require (
|
|||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||||
github.com/Microsoft/hcsshim v0.11.4 // indirect
|
github.com/Microsoft/hcsshim v0.11.4 // indirect
|
||||||
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
|
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
|
||||||
github.com/ProtonMail/go-crypto v1.0.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/chroma v0.10.0 // indirect
|
||||||
@@ -83,29 +76,32 @@ require (
|
|||||||
github.com/alingse/asasalint v0.0.11 // 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/forbidigo v1.6.0 // indirect
|
||||||
github.com/ashanbrown/makezero v1.1.1 // 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-v2 v1.26.1 // indirect
|
github.com/aws/aws-sdk-go v1.49.0 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
|
github.com/aws/aws-sdk-go-v2/config v1.26.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect
|
||||||
github.com/aws/smithy-go v1.20.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect
|
||||||
|
github.com/aws/smithy-go v1.19.0 // 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/aymerick/douceur v0.2.0 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
@@ -132,8 +128,8 @@ require (
|
|||||||
github.com/cloudflare/circl v1.3.7 // indirect
|
github.com/cloudflare/circl v1.3.7 // indirect
|
||||||
github.com/compose-spec/compose-go/v2 v2.0.0-rc.8 // 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.12 // indirect
|
||||||
github.com/containerd/continuity v0.4.3 // indirect
|
github.com/containerd/continuity v0.4.2 // 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/ttrpc v1.2.2 // indirect
|
||||||
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
github.com/containerd/typeurl/v2 v2.1.1 // indirect
|
||||||
@@ -146,7 +142,7 @@ require (
|
|||||||
github.com/denis-tingaikin/go-header v0.5.0 // indirect
|
github.com/denis-tingaikin/go-header v0.5.0 // indirect
|
||||||
github.com/djherbis/times v1.5.0 // indirect
|
github.com/djherbis/times v1.5.0 // indirect
|
||||||
github.com/dlclark/regexp2 v1.4.0 // indirect
|
github.com/dlclark/regexp2 v1.4.0 // indirect
|
||||||
github.com/docker/cli-docs-tool v0.7.0 // indirect
|
github.com/docker/cli-docs-tool v0.6.0 // indirect
|
||||||
github.com/docker/docker-credential-helpers v0.8.0 // 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
|
||||||
@@ -155,7 +151,7 @@ require (
|
|||||||
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/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.10.1 // 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/promptkit v0.9.0 // indirect
|
||||||
github.com/ettle/strcase v0.2.0 // indirect
|
github.com/ettle/strcase v0.2.0 // indirect
|
||||||
@@ -171,14 +167,13 @@ require (
|
|||||||
github.com/go-critic/go-critic v0.11.2 // 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.12.0 // indirect
|
github.com/go-git/go-git/v5 v5.11.0 // indirect
|
||||||
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
github.com/go-logr/logr v1.3.0 // 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-ole/go-ole v1.2.6 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
||||||
github.com/go-openapi/swag v0.22.3 // indirect
|
github.com/go-openapi/swag v0.21.1 // indirect
|
||||||
github.com/go-toolsmith/astcast v1.1.0 // indirect
|
github.com/go-toolsmith/astcast v1.1.0 // indirect
|
||||||
github.com/go-toolsmith/astcopy v1.1.0 // indirect
|
github.com/go-toolsmith/astcopy v1.1.0 // indirect
|
||||||
github.com/go-toolsmith/astequal v1.2.0 // indirect
|
github.com/go-toolsmith/astequal v1.2.0 // indirect
|
||||||
@@ -193,17 +188,18 @@ require (
|
|||||||
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.1.0 // indirect
|
||||||
github.com/golang/glog v1.2.0 // indirect
|
github.com/golang/glog v1.2.0 // 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.3 // indirect
|
||||||
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
|
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
|
||||||
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
|
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
|
||||||
github.com/golangci/misspell v0.4.1 // indirect
|
github.com/golangci/misspell v0.4.1 // indirect
|
||||||
github.com/golangci/plugin-module-register v0.1.1 // indirect
|
github.com/golangci/plugin-module-register v0.1.1 // indirect
|
||||||
github.com/golangci/revgrep v0.5.2 // indirect
|
github.com/golangci/revgrep v0.5.2 // indirect
|
||||||
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
|
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
|
||||||
github.com/google/gnostic-models v0.6.8 // indirect
|
github.com/google/gnostic v0.5.7-v3refs // 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
|
||||||
@@ -211,13 +207,12 @@ require (
|
|||||||
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.5.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.0 // indirect
|
||||||
github.com/gordonklaus/ineffassign v0.1.0 // indirect
|
github.com/gordonklaus/ineffassign v0.1.0 // indirect
|
||||||
github.com/gorilla/css v1.0.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/gostaticanalysis/analysisutil v0.7.1 // indirect
|
github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
|
||||||
github.com/gostaticanalysis/comment v1.4.2 // indirect
|
github.com/gostaticanalysis/comment v1.4.2 // indirect
|
||||||
github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
|
github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
|
||||||
@@ -229,17 +224,25 @@ require (
|
|||||||
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-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-retryablehttp v0.7.5 // indirect
|
github.com/hashicorp/go-plugin v1.6.0 // indirect
|
||||||
|
github.com/hashicorp/go-retryablehttp v0.7.2 // 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/parseutil v0.1.8 // indirect
|
github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 // 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.6 // indirect
|
github.com/hashicorp/go-sockaddr v1.0.2 // indirect
|
||||||
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||||
github.com/hashicorp/go-version v1.6.0 // indirect
|
github.com/hashicorp/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.19.1 // indirect
|
||||||
github.com/hashicorp/vault/api v1.12.0 // indirect
|
github.com/hashicorp/vault/api v1.8.2 // indirect
|
||||||
|
github.com/hashicorp/vault/sdk v0.6.1 // indirect
|
||||||
|
github.com/hashicorp/yamux v0.1.1 // indirect
|
||||||
github.com/hexops/gotextdiff v1.0.3 // indirect
|
github.com/hexops/gotextdiff v1.0.3 // indirect
|
||||||
|
github.com/hexops/valast v1.4.4 // 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/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect
|
||||||
github.com/imdario/mergo v0.3.16 // indirect
|
github.com/imdario/mergo v0.3.16 // indirect
|
||||||
@@ -289,10 +292,10 @@ require (
|
|||||||
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/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/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/moby v25.0.4+incompatible // indirect
|
||||||
github.com/moby/spdystream v0.2.0 // indirect
|
github.com/moby/spdystream v0.2.0 // indirect
|
||||||
@@ -309,14 +312,13 @@ require (
|
|||||||
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/nakabonne/nestif v0.3.1 // 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/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d // indirect
|
||||||
github.com/nishanths/exhaustive v0.12.0 // indirect
|
github.com/nishanths/exhaustive v0.12.0 // indirect
|
||||||
github.com/nishanths/predeclared v0.2.2 // indirect
|
github.com/nishanths/predeclared v0.2.2 // indirect
|
||||||
github.com/nunnatsa/ginkgolinter v0.16.1 // indirect
|
github.com/nunnatsa/ginkgolinter v0.16.1 // indirect
|
||||||
github.com/nxadm/tail v1.4.11 // indirect
|
github.com/oklog/run v1.1.0 // indirect
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // 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-rc5 // indirect
|
||||||
@@ -329,19 +331,21 @@ require (
|
|||||||
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/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-20210911075715-681adbf594b8 // 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/polyfloyd/go-errorlint v1.4.8 // indirect
|
||||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // 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.16.0 // indirect
|
||||||
github.com/prometheus/client_model v0.5.0 // indirect
|
github.com/prometheus/client_model v0.4.0 // indirect
|
||||||
github.com/prometheus/common v0.44.0 // indirect
|
github.com/prometheus/common v0.42.0 // indirect
|
||||||
github.com/prometheus/procfs v0.12.0 // indirect
|
github.com/prometheus/procfs v0.10.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.6.2 // indirect
|
||||||
|
github.com/pulumi/pulumi-yaml v1.6.0 // indirect
|
||||||
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
|
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
|
||||||
github.com/quasilyte/gogrep v0.5.0 // indirect
|
github.com/quasilyte/gogrep v0.5.0 // indirect
|
||||||
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
|
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
|
||||||
@@ -361,8 +365,8 @@ require (
|
|||||||
github.com/securego/gosec/v2 v2.19.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.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
github.com/sergi/go-diff v1.3.1 // indirect
|
||||||
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
|
github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002 // indirect
|
||||||
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // 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/shirou/gopsutil/v3 v3.24.2 // indirect
|
||||||
@@ -371,7 +375,7 @@ require (
|
|||||||
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
|
||||||
github.com/sivchari/containedctx v1.0.3 // indirect
|
github.com/sivchari/containedctx v1.0.3 // indirect
|
||||||
github.com/sivchari/tenv v1.7.1 // indirect
|
github.com/sivchari/tenv v1.7.1 // indirect
|
||||||
github.com/skeema/knownhosts v1.2.2 // indirect
|
github.com/skeema/knownhosts v1.2.1 // indirect
|
||||||
github.com/sonatard/noctx v0.0.2 // indirect
|
github.com/sonatard/noctx v0.0.2 // indirect
|
||||||
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
|
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
|
||||||
github.com/sourcegraph/go-diff v0.7.0 // indirect
|
github.com/sourcegraph/go-diff v0.7.0 // indirect
|
||||||
@@ -419,64 +423,65 @@ require (
|
|||||||
go-simpler.org/musttag v0.9.0 // indirect
|
go-simpler.org/musttag v0.9.0 // indirect
|
||||||
go-simpler.org/sloglint v0.5.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.46.1 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.45.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect
|
||||||
go.opentelemetry.io/otel v1.24.0 // indirect
|
go.opentelemetry.io/otel v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/prometheus v0.42.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.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk v1.22.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.21.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect
|
go.opentelemetry.io/otel/sdk/metric v1.19.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
go.opentelemetry.io/otel/trace v1.21.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.pennock.tech/tabular v1.1.3 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
go.uber.org/atomic v1.10.0 // indirect
|
||||||
go.uber.org/automaxprocs v1.5.3 // indirect
|
go.uber.org/automaxprocs v1.5.3 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.27.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
gocloud.dev v0.37.0 // indirect
|
gocloud.dev v0.36.0 // indirect
|
||||||
gocloud.dev/secrets/hashivault v0.37.0 // indirect
|
gocloud.dev/secrets/hashivault v0.28.0 // indirect
|
||||||
|
golang.org/x/crypto v0.21.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
||||||
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
|
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
|
||||||
golang.org/x/mod v0.16.0 // indirect
|
golang.org/x/mod v0.16.0 // indirect
|
||||||
golang.org/x/net v0.25.0 // indirect
|
golang.org/x/net v0.22.0 // indirect
|
||||||
golang.org/x/oauth2 v0.18.0 // indirect
|
golang.org/x/oauth2 v0.16.0 // indirect
|
||||||
golang.org/x/sync v0.6.0 // indirect
|
golang.org/x/sync v0.6.0 // indirect
|
||||||
golang.org/x/sys v0.20.0 // indirect
|
golang.org/x/sys v0.18.0 // indirect
|
||||||
golang.org/x/term v0.20.0 // indirect
|
golang.org/x/term v0.18.0 // indirect
|
||||||
golang.org/x/text v0.15.0 // indirect
|
golang.org/x/text v0.14.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.19.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.155.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-20240123012728-ef4313101c80 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
|
||||||
google.golang.org/grpc v1.63.2 // indirect
|
google.golang.org/grpc v1.62.0 // 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/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
gopkg.in/square/go-jose.v2 v2.6.0 // 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
|
honnef.co/go/tools v0.4.7 // indirect
|
||||||
k8s.io/api v0.29.2 // indirect
|
k8s.io/api v0.26.7 // indirect
|
||||||
k8s.io/apimachinery v0.29.2 // indirect
|
k8s.io/apimachinery v0.26.7 // indirect
|
||||||
k8s.io/apiserver v0.29.2 // indirect
|
k8s.io/apiserver v0.26.7 // indirect
|
||||||
k8s.io/client-go v0.29.2 // indirect
|
k8s.io/client-go v0.26.7 // indirect
|
||||||
k8s.io/klog/v2 v2.110.1 // indirect
|
k8s.io/klog/v2 v2.90.1 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
|
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
|
||||||
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
|
k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // 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
|
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-20220713155537-f223a00ba0e2 // indirect
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // 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
@@ -16,8 +16,9 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/pulumi/pulumi-docker-build/provider"
|
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/common/util/cmdutil"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/cmdutil"
|
||||||
|
|
||||||
|
"github.com/pulumi/pulumi-dockerbuild/provider"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
1454
provider/cmd/pulumi-resource-dockerbuild/schema.json
Normal file
1454
provider/cmd/pulumi-resource-dockerbuild/schema.json
Normal file
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_CACHE_URL")
|
a.SetDefault(&c.URL, "", "ACTIONS_RUNTIME_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_CACHE_URL", although a separate action like
|
Defaults to "$ACTIONS_RUNTIME_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.
|
||||||
`))
|
`))
|
||||||
@@ -342,23 +342,22 @@ func (c *CacheFromS3) String() string {
|
|||||||
|
|
||||||
// CacheWithMode is a cache that can configure its mode.
|
// CacheWithMode is a cache that can configure its mode.
|
||||||
type CacheWithMode struct {
|
type CacheWithMode struct {
|
||||||
Mode *CacheMode `pulumi:"mode,optional"`
|
Mode CacheMode `pulumi:"mode,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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".
|
||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c CacheWithMode) String() string {
|
func (c CacheWithMode) String() string {
|
||||||
if c.Mode == nil {
|
if c.Mode == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("mode=%s", *c.Mode)
|
return fmt.Sprintf("mode=%s", c.Mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CacheWithIgnoreError exposes an option to ignore errors during caching.
|
// CacheWithIgnoreError exposes an option to ignore errors during caching.
|
||||||
@@ -553,15 +552,14 @@ func (c *CacheToRegistry) String() string {
|
|||||||
// CacheWithCompression is a cache with options to configure compression
|
// CacheWithCompression is a cache with options to configure compression
|
||||||
// settings.
|
// settings.
|
||||||
type CacheWithCompression struct {
|
type CacheWithCompression struct {
|
||||||
Compression *CompressionType `pulumi:"compression,optional"`
|
Compression CompressionType `pulumi:"compression,optional"`
|
||||||
CompressionLevel int `pulumi:"compressionLevel,optional"`
|
CompressionLevel int `pulumi:"compressionLevel,optional"`
|
||||||
ForceCompression *bool `pulumi:"forceCompression,optional"`
|
ForceCompression *bool `pulumi:"forceCompression,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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)
|
||||||
|
|
||||||
@@ -577,8 +575,8 @@ func (c CacheWithCompression) String() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
parts := []string{}
|
parts := []string{}
|
||||||
if c.Compression != nil {
|
if c.Compression != "" {
|
||||||
parts = append(parts, fmt.Sprintf("compression=%s", *c.Compression))
|
parts = append(parts, fmt.Sprintf("compression=%s", c.Compression))
|
||||||
}
|
}
|
||||||
if c.CompressionLevel > 0 {
|
if c.CompressionLevel > 0 {
|
||||||
cl := c.CompressionLevel
|
cl := c.CompressionLevel
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import (
|
|||||||
|
|
||||||
func TestCacheString(t *testing.T) {
|
func TestCacheString(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
gzip := Gzip
|
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -82,12 +81,12 @@ func TestCacheString(t *testing.T) {
|
|||||||
given: CacheTo{Local: &CacheToLocal{
|
given: CacheTo{Local: &CacheToLocal{
|
||||||
Dest: "/foo",
|
Dest: "/foo",
|
||||||
CacheWithCompression: CacheWithCompression{
|
CacheWithCompression: CacheWithCompression{
|
||||||
Compression: &gzip,
|
Compression: "gz2",
|
||||||
CompressionLevel: 100,
|
CompressionLevel: 100,
|
||||||
ForceCompression: pulumi.BoolRef(true),
|
ForceCompression: pulumi.BoolRef(true),
|
||||||
},
|
},
|
||||||
}},
|
}},
|
||||||
want: "type=local,dest=/foo,compression=gzip,compression-level=22,force-compression=true",
|
want: "type=local,dest=/foo,compression=gz2,compression-level=22,force-compression=true",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "ignore-error",
|
name: "ignore-error",
|
||||||
|
|||||||
@@ -12,14 +12,13 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
//go:generate go run go.uber.org/mock/mockgen -typed -package internal -source cli.go -destination mockcli_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
|
//go:generate go run go.uber.org/mock/mockgen -typed -package internal -source client.go -destination mockcli_test.go --self_package github.com/pulumi/pulumi-dockerbuild/provider/internal
|
||||||
|
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -31,16 +30,15 @@ import (
|
|||||||
"github.com/docker/buildx/commands"
|
"github.com/docker/buildx/commands"
|
||||||
"github.com/docker/cli/cli-plugins/manager"
|
"github.com/docker/cli/cli-plugins/manager"
|
||||||
"github.com/docker/cli/cli/command"
|
"github.com/docker/cli/cli/command"
|
||||||
"github.com/docker/cli/cli/config/credentials"
|
|
||||||
cfgtypes "github.com/docker/cli/cli/config/types"
|
cfgtypes "github.com/docker/cli/cli/config/types"
|
||||||
"github.com/docker/cli/cli/streams"
|
"github.com/docker/cli/cli/streams"
|
||||||
"github.com/moby/buildkit/client"
|
"github.com/moby/buildkit/client"
|
||||||
cp "github.com/otiai10/copy"
|
cp "github.com/otiai10/copy"
|
||||||
"github.com/regclient/regclient"
|
"github.com/regclient/regclient"
|
||||||
"github.com/regclient/regclient/config"
|
"github.com/regclient/regclient/config"
|
||||||
"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"
|
||||||
)
|
)
|
||||||
@@ -56,11 +54,10 @@ type cli struct {
|
|||||||
auths map[string]cfgtypes.AuthConfig
|
auths map[string]cfgtypes.AuthConfig
|
||||||
host *host
|
host *host
|
||||||
|
|
||||||
in string // stdin
|
in string // stdin
|
||||||
r, w *os.File // stdout
|
r, w *os.File // stdout
|
||||||
err bytes.Buffer // stderr
|
err bytes.Buffer // stderr
|
||||||
dumplogs bool // if true then tail() will re-log status messages
|
done chan struct{} // signaled when all logs have been forwarded to the engine.
|
||||||
done chan struct{} // signaled when all logs have been forwarded to the engine.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cli wraps the Docker interface for mock generation.
|
// Cli wraps the Docker interface for mock generation.
|
||||||
@@ -69,8 +66,7 @@ type Cli interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wrap creates a new cli client with auth configs layered on top of our host's
|
// wrap creates a new cli client with auth configs layered on top of our host's
|
||||||
// auth. Repeated auth for the same host will take precedence over earlier
|
// auth.
|
||||||
// credentials.
|
|
||||||
func wrap(host *host, registries ...Registry) (*cli, error) {
|
func wrap(host *host, registries ...Registry) (*cli, error) {
|
||||||
// We need to create a new DockerCLI instance because we don't want the
|
// We need to create a new DockerCLI instance because we don't want the
|
||||||
// auth changes we make to the ConfigFile to leak to the host.
|
// auth changes we make to the ConfigFile to leak to the host.
|
||||||
@@ -81,25 +77,13 @@ 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 {
|
auths[k] = v
|
||||||
k = credentials.ConvertToHostname(k)
|
|
||||||
}
|
|
||||||
auths[k] = cfgtypes.AuthConfig{
|
|
||||||
ServerAddress: v.ServerAddress,
|
|
||||||
Username: v.Username,
|
|
||||||
Password: v.Password,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range registries {
|
for _, r := range registries {
|
||||||
// HostNewName takes care of DockerHub's special-casing for us.
|
// HostNewName takes care of DockerHub's special-casing for us.
|
||||||
h := config.HostNewName(credentials.ConvertToHostname(r.Address))
|
h := config.HostNewName(r.Address)
|
||||||
key := h.CredHost
|
auths[h.CredHost] = cfgtypes.AuthConfig{
|
||||||
if key == "" {
|
|
||||||
key = h.Hostname
|
|
||||||
}
|
|
||||||
|
|
||||||
auths[key] = cfgtypes.AuthConfig{
|
|
||||||
ServerAddress: h.Hostname,
|
ServerAddress: h.Hostname,
|
||||||
Username: r.Username,
|
Username: r.Username,
|
||||||
Password: r.Password,
|
Password: r.Password,
|
||||||
@@ -157,7 +141,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 context.Context) {
|
func (c *cli) tail(ctx provider.Context) {
|
||||||
c.done = make(chan struct{}, 1)
|
c.done = make(chan struct{}, 1)
|
||||||
defer func() {
|
defer func() {
|
||||||
c.done <- struct{}{}
|
c.done <- struct{}{}
|
||||||
@@ -166,30 +150,17 @@ func (c *cli) tail(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
b := bytes.Buffer{}
|
|
||||||
|
|
||||||
s := bufio.NewScanner(c.r)
|
s := bufio.NewScanner(c.r)
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
text := s.Text()
|
ctx.LogStatus(diag.Info, s.Text())
|
||||||
provider.GetLogger(ctx).InfoStatus(text)
|
|
||||||
_, _ = b.WriteString(text + "\n")
|
|
||||||
}
|
|
||||||
provider.GetLogger(ctx).InfoStatus("") // clear confusing "DONE" statements.
|
|
||||||
|
|
||||||
if c.dumplogs {
|
|
||||||
// Persist the full Docker output on error for easier debugging.
|
|
||||||
if b.Len() > 0 {
|
|
||||||
provider.GetLogger(ctx).Info(b.String())
|
|
||||||
}
|
|
||||||
if c.err.Len() > 0 {
|
|
||||||
provider.GetLogger(ctx).Error(c.err.String())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
ctx.LogStatus(diag.Info, "") // clear confusing "DONE" statements.
|
||||||
}
|
}
|
||||||
|
|
||||||
// close flushes any outstanding logs and cleans up resources.
|
// close flushes any outstanding logs and cleans up resources.
|
||||||
func (c *cli) Close() error {
|
func (c *cli) Close() error {
|
||||||
err := errors.Join(c.w.Close(), c.r.Close())
|
err := c.w.Close()
|
||||||
|
err = errors.Join(err, c.r.Close())
|
||||||
if c.done != nil {
|
if c.done != nil {
|
||||||
<-c.done
|
<-c.done
|
||||||
}
|
}
|
||||||
@@ -396,7 +367,7 @@ func (c *cli) exec(args, extraEnv []string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cmd.Args = append([]string{cmd.Args[0]}, args...)
|
cmd.Args = append([]string{cmd.Args[0]}, args...)
|
||||||
cmd.Stderr = c.Err()
|
cmd.Stderr = c.Err() // TODO: This is build output...
|
||||||
cmd.Stdout = c.Out()
|
cmd.Stdout = c.Out()
|
||||||
cmd.Stdin = c.In()
|
cmd.Stdin = c.In()
|
||||||
|
|
||||||
@@ -413,8 +384,3 @@ func attrcsv(typ string, m map[string]string) string {
|
|||||||
}
|
}
|
||||||
return strings.Join(s, ",")
|
return strings.Join(s, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
|
||||||
// Disable the CLI's tendency to log randomly to stdout.
|
|
||||||
logrus.SetOutput(io.Discard)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/docker/cli/cli/config/types"
|
|
||||||
"github.com/regclient/regclient/config"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@@ -39,70 +37,3 @@ func TestExec(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Contains(t, string(out), "github.com/docker/buildx")
|
assert.Contains(t, string(out), "github.com/docker/buildx")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWrappedAuth(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
ecr := "https://1234.dkr.ecr.us-west-2.amazonaws.com"
|
|
||||||
|
|
||||||
realhost, err := newHost(nil)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
h := &host{
|
|
||||||
auths: map[string]types.AuthConfig{
|
|
||||||
ecr: {
|
|
||||||
Username: "host-aws-user",
|
|
||||||
Password: "host-aws-password",
|
|
||||||
ServerAddress: ecr,
|
|
||||||
},
|
|
||||||
"https://misc": { // Legacy config includes http/https scheme.
|
|
||||||
Username: "host-misc-user",
|
|
||||||
Password: "host-misc-password",
|
|
||||||
ServerAddress: "misc",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
registries := []Registry{
|
|
||||||
{
|
|
||||||
Address: "1234.dkr.ecr.us-west-2.amazonaws.com",
|
|
||||||
Username: "resource-aws-user",
|
|
||||||
Password: "resource-aws-password",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Address: "docker.io",
|
|
||||||
Username: "resource-dockerhub-user",
|
|
||||||
Password: "resource-dockerhub-password",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = wrap(h, registries...)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
cli, err := wrap(h, registries...)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
expected := map[string]types.AuthConfig{
|
|
||||||
"1234.dkr.ecr.us-west-2.amazonaws.com": {
|
|
||||||
Username: "resource-aws-user",
|
|
||||||
Password: "resource-aws-password",
|
|
||||||
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.
|
|
||||||
|
|
||||||
// Assert that our on-disk host's auth is untouched.
|
|
||||||
realhostRefreshed, err := newHost(nil)
|
|
||||||
require.NoError(t, err)
|
|
||||||
assert.Equal(t, realhost.auths, realhostRefreshed.auths)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
//go:generate go run go.uber.org/mock/mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
|
//go:generate go run go.uber.org/mock/mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-dockerbuild/provider/internal
|
||||||
|
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -34,7 +35,7 @@ import (
|
|||||||
"github.com/docker/buildx/util/progress"
|
"github.com/docker/buildx/util/progress"
|
||||||
"github.com/docker/cli/cli/command"
|
"github.com/docker/cli/cli/command"
|
||||||
"github.com/docker/cli/cli/flags"
|
"github.com/docker/cli/cli/flags"
|
||||||
"github.com/docker/docker/api/types/image"
|
"github.com/docker/docker/api/types"
|
||||||
"github.com/moby/buildkit/client"
|
"github.com/moby/buildkit/client"
|
||||||
"github.com/moby/buildkit/session"
|
"github.com/moby/buildkit/session"
|
||||||
"github.com/moby/buildkit/session/auth/authprovider"
|
"github.com/moby/buildkit/session/auth/authprovider"
|
||||||
@@ -43,21 +44,23 @@ import (
|
|||||||
"github.com/regclient/regclient/types/errs"
|
"github.com/regclient/regclient/types/errs"
|
||||||
"github.com/regclient/regclient/types/manifest"
|
"github.com/regclient/regclient/types/manifest"
|
||||||
"github.com/regclient/regclient/types/ref"
|
"github.com/regclient/regclient/types/ref"
|
||||||
|
"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/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 context.Context, b Build) (*client.SolveResponse, error)
|
Build(ctx provider.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 context.Context, push bool, target string, refs ...string) error
|
ManifestCreate(ctx provider.Context, push bool, target string, refs ...string) error
|
||||||
ManifestInspect(ctx context.Context, target string) (string, error)
|
ManifestInspect(ctx provider.Context, target string) (string, error)
|
||||||
ManifestDelete(ctx context.Context, target string) error
|
ManifestDelete(ctx provider.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.
|
||||||
@@ -90,6 +93,9 @@ func newDockerCLI(config *Config) (*command.DockerCli, error) {
|
|||||||
|
|
||||||
// TODO: Log some version information for debugging.
|
// TODO: Log some version information for debugging.
|
||||||
|
|
||||||
|
// Disable the CLI's tendency to log randomly to stdout.
|
||||||
|
logrus.SetOutput(io.Discard)
|
||||||
|
|
||||||
return cli, nil
|
return cli, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,12 +103,13 @@ 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(
|
||||||
ctx context.Context,
|
pctx provider.Context,
|
||||||
build Build,
|
build Build,
|
||||||
) (*client.SolveResponse, error) {
|
) (*client.SolveResponse, error) {
|
||||||
|
ctx := context.Context(pctx)
|
||||||
opts := build.BuildOptions()
|
opts := build.BuildOptions()
|
||||||
|
|
||||||
go c.tail(ctx)
|
go c.tail(pctx)
|
||||||
defer contract.IgnoreClose(c)
|
defer contract.IgnoreClose(c)
|
||||||
|
|
||||||
if build.ShouldExec() {
|
if build.ShouldExec() {
|
||||||
@@ -123,24 +130,9 @@ func (c *cli) Build(
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("creating printer: %w", err)
|
return nil, fmt.Errorf("creating printer: %w", err)
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
// Log any warnings when we're done.
|
|
||||||
_ = printer.Wait()
|
|
||||||
for _, w := range printer.Warnings() {
|
|
||||||
b := &bytes.Buffer{}
|
|
||||||
fmt.Fprint(b, w.Short)
|
|
||||||
for _, d := range w.Detail {
|
|
||||||
fmt.Fprintf(b, "\n%s", d)
|
|
||||||
}
|
|
||||||
provider.GetLogger(ctx).Warning(b.String())
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
cacheFrom := []client.CacheOptionsEntry{}
|
cacheFrom := []client.CacheOptionsEntry{}
|
||||||
for _, c := range opts.CacheFrom {
|
for _, c := range opts.CacheFrom {
|
||||||
if c == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
cacheFrom = append(cacheFrom, client.CacheOptionsEntry{
|
cacheFrom = append(cacheFrom, client.CacheOptionsEntry{
|
||||||
Type: c.Type,
|
Type: c.Type,
|
||||||
Attrs: c.Attrs,
|
Attrs: c.Attrs,
|
||||||
@@ -148,9 +140,6 @@ func (c *cli) Build(
|
|||||||
}
|
}
|
||||||
cacheTo := []client.CacheOptionsEntry{}
|
cacheTo := []client.CacheOptionsEntry{}
|
||||||
for _, c := range opts.CacheTo {
|
for _, c := range opts.CacheTo {
|
||||||
if c == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
cacheTo = append(cacheTo, client.CacheOptionsEntry{
|
cacheTo = append(cacheTo, client.CacheOptionsEntry{
|
||||||
Type: c.Type,
|
Type: c.Type,
|
||||||
Attrs: c.Attrs,
|
Attrs: c.Attrs,
|
||||||
@@ -158,9 +147,6 @@ func (c *cli) Build(
|
|||||||
}
|
}
|
||||||
exports := []client.ExportEntry{}
|
exports := []client.ExportEntry{}
|
||||||
for _, e := range opts.Exports {
|
for _, e := range opts.Exports {
|
||||||
if e == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
exports = append(exports, client.ExportEntry{
|
exports = append(exports, client.ExportEntry{
|
||||||
Type: e.Type,
|
Type: e.Type,
|
||||||
Attrs: e.Attrs,
|
Attrs: e.Attrs,
|
||||||
@@ -233,10 +219,21 @@ func (c *cli) Build(
|
|||||||
printer,
|
printer,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.dumplogs = true
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if printErr := printer.Wait(); printErr != nil {
|
||||||
|
return results[target], printErr
|
||||||
|
}
|
||||||
|
for _, w := range printer.Warnings() {
|
||||||
|
b := &bytes.Buffer{}
|
||||||
|
fmt.Fprintf(b, "%s", w.Short)
|
||||||
|
for _, d := range w.Detail {
|
||||||
|
fmt.Fprintf(b, "\n%s", d)
|
||||||
|
}
|
||||||
|
pctx.Log(diag.Warning, b.String())
|
||||||
|
}
|
||||||
|
|
||||||
return results[target], err
|
return results[target], err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,7 +242,9 @@ func (c *cli) BuildKitEnabled() (bool, error) {
|
|||||||
return c.Cli.BuildKitEnabled()
|
return c.Cli.BuildKitEnabled()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error {
|
func (c *cli) ManifestCreate(ctx provider.Context, push bool, target string, refs ...string) error {
|
||||||
|
// TODO: Create this manifest with regclient or imagetools.
|
||||||
|
|
||||||
go c.tail(ctx)
|
go c.tail(ctx)
|
||||||
defer contract.IgnoreClose(c)
|
defer contract.IgnoreClose(c)
|
||||||
|
|
||||||
@@ -253,7 +252,6 @@ func (c *cli) ManifestCreate(ctx context.Context, push bool, target string, refs
|
|||||||
// "buildx",
|
// "buildx",
|
||||||
"imagetools",
|
"imagetools",
|
||||||
"create",
|
"create",
|
||||||
"--progress=plain",
|
|
||||||
"--tag", target,
|
"--tag", target,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,14 +264,10 @@ func (c *cli) ManifestCreate(ctx context.Context, push bool, target string, refs
|
|||||||
cmd := commands.NewRootCmd(os.Args[0], false, c)
|
cmd := commands.NewRootCmd(os.Args[0], false, c)
|
||||||
|
|
||||||
cmd.SetArgs(args)
|
cmd.SetArgs(args)
|
||||||
cmd.SetErr(c.Err())
|
|
||||||
cmd.SetOut(c.Out())
|
|
||||||
|
|
||||||
provider.GetLogger(ctx).Debug(fmt.Sprint("creating manifest with args", args))
|
|
||||||
return cmd.ExecuteContext(ctx)
|
return cmd.ExecuteContext(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestInspect(ctx context.Context, target string) (string, error) {
|
func (c *cli) ManifestInspect(ctx provider.Context, target string) (string, error) {
|
||||||
rc := c.rc()
|
rc := c.rc()
|
||||||
|
|
||||||
ref, err := ref.New(target)
|
ref, err := ref.New(target)
|
||||||
@@ -283,13 +277,13 @@ func (c *cli) ManifestInspect(ctx context.Context, target string) (string, error
|
|||||||
|
|
||||||
m, err := rc.ManifestHead(ctx, ref)
|
m, err := rc.ManifestHead(ctx, ref)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("fetching %q: %w", ref, err)
|
return "", fmt.Errorf("fetching head: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return string(m.GetDescriptor().Digest), nil
|
return string(m.GetDescriptor().Digest), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *cli) ManifestDelete(ctx context.Context, target string) error {
|
func (c *cli) ManifestDelete(ctx provider.Context, target string) error {
|
||||||
rc := c.rc()
|
rc := c.rc()
|
||||||
|
|
||||||
ref, err := ref.New(target)
|
ref, err := ref.New(target)
|
||||||
@@ -297,9 +291,9 @@ func (c *cli) ManifestDelete(ctx context.Context, target string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = rc.ManifestDelete(ctx, ref)
|
err = rc.ManifestDelete(context.Context(ctx), ref)
|
||||||
if errors.Is(err, errs.ErrHTTPStatus) {
|
if errors.Is(err, errs.ErrHTTPStatus) {
|
||||||
provider.GetLogger(ctx).Warning("this registry does not support deletions")
|
ctx.Log(diag.Warning, "this registry does not support deletions")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -333,7 +327,7 @@ func (c *cli) Inspect(ctx context.Context, r string) ([]descriptor.Descriptor, e
|
|||||||
// support the DELETE API yet, so this operation is not guaranteed to work.
|
// support the DELETE API yet, so this operation is not guaranteed to work.
|
||||||
func (c *cli) Delete(ctx context.Context, r string) error {
|
func (c *cli) Delete(ctx context.Context, r string) error {
|
||||||
// Attempt to delete the ref locally if it exists.
|
// Attempt to delete the ref locally if it exists.
|
||||||
_, _ = c.Client().ImageRemove(ctx, r, image.RemoveOptions{
|
_, _ = c.Client().ImageRemove(ctx, r, types.ImageRemoveOptions{
|
||||||
Force: true, // Needed in case the image has multiple tags.
|
Force: true, // Needed in case the image has multiple tags.
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,7 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"io"
|
|
||||||
"log/slog"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -26,6 +23,7 @@ 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"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAuth(t *testing.T) {
|
func TestAuth(t *testing.T) {
|
||||||
@@ -78,11 +76,22 @@ 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
|
|
||||||
|
|
||||||
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
exampleContext := BuildContext{Context: Context{Location: "../../examples/app"}}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -95,7 +104,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "multiPlatform",
|
name: "multiPlatform",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.multiPlatform",
|
Location: "../../examples/app/Dockerfile.multiPlatform",
|
||||||
},
|
},
|
||||||
Platforms: []Platform{"plan9/amd64", "plan9/arm64"},
|
Platforms: []Platform{"plan9/amd64", "plan9/arm64"},
|
||||||
@@ -122,7 +131,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"),
|
||||||
@@ -133,7 +142,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "buildArgs",
|
name: "buildArgs",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.buildArgs",
|
Location: "../../examples/app/Dockerfile.buildArgs",
|
||||||
},
|
},
|
||||||
BuildArgs: map[string]string{
|
BuildArgs: map[string]string{
|
||||||
@@ -145,7 +154,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "extraHosts",
|
name: "extraHosts",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.extraHosts",
|
Location: "../../examples/app/Dockerfile.extraHosts",
|
||||||
},
|
},
|
||||||
AddHosts: []string{
|
AddHosts: []string{
|
||||||
@@ -158,7 +167,7 @@ func TestBuild(t *testing.T) {
|
|||||||
skip: os.Getenv("SSH_AUTH_SOCK") == "",
|
skip: os.Getenv("SSH_AUTH_SOCK") == "",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.sshMount",
|
Location: "../../examples/app/Dockerfile.sshMount",
|
||||||
},
|
},
|
||||||
SSH: []SSH{{ID: "default"}},
|
SSH: []SSH{{ID: "default"}},
|
||||||
@@ -168,7 +177,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "secrets",
|
name: "secrets",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.secrets",
|
Location: "../../examples/app/Dockerfile.secrets",
|
||||||
},
|
},
|
||||||
Secrets: map[string]string{
|
Secrets: map[string]string{
|
||||||
@@ -190,7 +199,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "target",
|
name: "target",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.target",
|
Location: "../../examples/app/Dockerfile.target",
|
||||||
},
|
},
|
||||||
Target: "build-me",
|
Target: "build-me",
|
||||||
@@ -199,7 +208,7 @@ func TestBuild(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "namedContext",
|
name: "namedContext",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: &BuildContext{
|
Context: BuildContext{
|
||||||
Context: Context{
|
Context: Context{
|
||||||
Location: "../../examples/app",
|
Location: "../../examples/app",
|
||||||
},
|
},
|
||||||
@@ -209,7 +218,7 @@ func TestBuild(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Location: "../../examples/app/Dockerfile.namedContexts",
|
Location: "../../examples/app/Dockerfile.namedContexts",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -217,7 +226,7 @@ func TestBuild(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "remoteContext",
|
name: "remoteContext",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: &BuildContext{
|
Context: BuildContext{
|
||||||
Context: Context{
|
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",
|
||||||
},
|
},
|
||||||
@@ -227,12 +236,12 @@ func TestBuild(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "remoteContextWithInline",
|
name: "remoteContextWithInline",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: &BuildContext{
|
Context: BuildContext{
|
||||||
Context: Context{
|
Context: Context{
|
||||||
Location: "https://github.com/docker-library/hello-world.git",
|
Location: "https://github.com/docker-library/hello-world.git",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Inline: dedent(`
|
Inline: dedent(`
|
||||||
FROM busybox
|
FROM busybox
|
||||||
COPY hello.c ./
|
COPY hello.c ./
|
||||||
@@ -244,7 +253,7 @@ func TestBuild(t *testing.T) {
|
|||||||
name: "inline",
|
name: "inline",
|
||||||
args: ImageArgs{
|
args: ImageArgs{
|
||||||
Context: exampleContext,
|
Context: exampleContext,
|
||||||
Dockerfile: &Dockerfile{
|
Dockerfile: Dockerfile{
|
||||||
Inline: dedent(`
|
Inline: dedent(`
|
||||||
FROM alpine
|
FROM alpine
|
||||||
RUN echo 👍
|
RUN echo 👍
|
||||||
@@ -287,13 +296,12 @@ 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(ctx, false)
|
build, err := tt.args.toBuild(pctx, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
_, err = cli.Build(ctx, build)
|
_, err = cli.Build(pctx, build)
|
||||||
assert.NoError(t, err, cli.err.String())
|
assert.NoError(t, err, cli.err.String())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -311,7 +319,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")
|
||||||
require.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(
|
assert.Equal(
|
||||||
t,
|
t,
|
||||||
"application/vnd.docker.distribution.manifest.v2+json",
|
"application/vnd.docker.distribution.manifest.v2+json",
|
||||||
@@ -319,7 +327,7 @@ func TestInspect(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNormalizeReference(t *testing.T) {
|
func TestNormalizatReference(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
ref string
|
ref string
|
||||||
@@ -354,87 +362,6 @@ func TestNormalizeReference(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint:paralleltest // Overrides default logger.
|
|
||||||
func TestBuildError(t *testing.T) {
|
|
||||||
if os.Getenv("CI") != "" {
|
|
||||||
t.Skip("flaky on CI for some reason")
|
|
||||||
}
|
|
||||||
|
|
||||||
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"}}
|
|
||||||
|
|
||||||
args := ImageArgs{
|
|
||||||
Context: exampleContext,
|
|
||||||
Dockerfile: &Dockerfile{
|
|
||||||
Inline: "FROM alpine\nRUN echo hello\nRUN badcmd",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
cli := testcli(t, true)
|
|
||||||
|
|
||||||
build, err := args.toBuild(ctx, false)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
_, err = cli.Build(ctx, build)
|
|
||||||
assert.Error(t, err)
|
|
||||||
|
|
||||||
want := []string{
|
|
||||||
`RUN echo hello`,
|
|
||||||
`/bin/sh: badcmd: not found`,
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, want := range want {
|
|
||||||
assert.Contains(t, logger.String(), want)
|
|
||||||
}
|
|
||||||
assert.ErrorContains(t, err,
|
|
||||||
`process "/bin/sh -c badcmd" did not complete successfully: exit code: 127`,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestBuildExecError(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
exampleContext := &BuildContext{Context: Context{Location: "../../examples/app"}}
|
|
||||||
|
|
||||||
args := ImageArgs{
|
|
||||||
Context: exampleContext,
|
|
||||||
Dockerfile: &Dockerfile{
|
|
||||||
Inline: "FROM alpine\nRUN echo hello\nRUN badcmd",
|
|
||||||
},
|
|
||||||
Exec: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
cli := testcli(t, true)
|
|
||||||
|
|
||||||
build, err := args.toBuild(ctx, false)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
_, err = cli.Build(ctx, build)
|
|
||||||
assert.Error(t, err)
|
|
||||||
|
|
||||||
want := []string{
|
|
||||||
`RUN echo hello`,
|
|
||||||
`/bin/sh: badcmd: not found`,
|
|
||||||
`process "/bin/sh -c badcmd" did not complete successfully: exit code: 127`,
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, want := range want {
|
|
||||||
assert.Contains(t, cli.err.String(), want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// testcli returns a new standalone CLI instance. Set ping to true if a live
|
// testcli returns a new standalone CLI instance. Set ping to true if a live
|
||||||
// daemon is required -- the test will be skipped if the daemon is not available.
|
// daemon is required -- the test will be skipped if the daemon is not available.
|
||||||
func testcli(t *testing.T, ping bool, auths ...Registry) *cli {
|
func testcli(t *testing.T, ping bool, auths ...Registry) *cli {
|
||||||
|
|||||||
@@ -26,14 +26,12 @@ 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"
|
||||||
@@ -56,13 +54,6 @@ type BuildContext struct {
|
|||||||
Named NamedContexts `pulumi:"named,optional"`
|
Named NamedContexts `pulumi:"named,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bc *BuildContext) namedMap() map[string]string {
|
|
||||||
if bc == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return bc.Named.Map()
|
|
||||||
}
|
|
||||||
|
|
||||||
// NamedContexts correspond to Docker's `--build-context name=path` options.
|
// NamedContexts correspond to Docker's `--build-context name=path` options.
|
||||||
// The path can be local or a remote URL.
|
// The path can be local or a remote URL.
|
||||||
type NamedContexts map[string]Context
|
type NamedContexts map[string]Context
|
||||||
@@ -92,39 +83,24 @@ 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. Non-nil
|
// handling. The returned Dockerfile should be validated separately.
|
||||||
// values are returned even in the case of errors to allow additional
|
func (c *Context) validate(preview bool, d Dockerfile) (Dockerfile, error) {
|
||||||
// validation to be performed.
|
|
||||||
func (bc *BuildContext) validate(preview bool, d *Dockerfile) (*Dockerfile, *Context, error) {
|
|
||||||
if d == nil {
|
|
||||||
d = &Dockerfile{}
|
|
||||||
}
|
|
||||||
c := &Context{}
|
|
||||||
if bc != nil {
|
|
||||||
c = &bc.Context
|
|
||||||
}
|
|
||||||
|
|
||||||
if c.Location == "" && preview {
|
if c.Location == "" && preview {
|
||||||
// The field is required so we normally wouldn't need to check if it
|
// The field is required so we normally wouldn't need to check if it
|
||||||
// exists, but during previews it can still be empty if the value is
|
// exists, but during previews it can still be empty if the value is
|
||||||
// unknown. This isn't an error, but it does prevent us from performing
|
// unknown. This isn't an error, but it does prevent us from performing
|
||||||
// a build later.
|
// a build later.
|
||||||
return d, c, nil
|
return d, 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.
|
||||||
return d, c, nil
|
return d, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
abs, err := filepath.Abs(c.Location)
|
abs, err := filepath.Abs(c.Location)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return d, c, newCheckFailure(err, "context.location")
|
return d, newCheckFailure(err, "context.location")
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.Location == "" && d.Inline == "" {
|
if d.Location == "" && d.Inline == "" {
|
||||||
@@ -135,17 +111,17 @@ func (bc *BuildContext) validate(preview bool, d *Dockerfile) (*Dockerfile, *Con
|
|||||||
|
|
||||||
if isLocalDir(afero.NewOsFs(), abs) {
|
if isLocalDir(afero.NewOsFs(), abs) {
|
||||||
// Our context exists -- nothing else to check.
|
// Our context exists -- nothing else to check.
|
||||||
return d, c, nil
|
return d, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.Location != "-" {
|
if c.Location != "-" {
|
||||||
return d, c, newCheckFailure(
|
return d, newCheckFailure(
|
||||||
fmt.Errorf("%q: not a valid directory or URL", c.Location),
|
fmt.Errorf("%q: not a valid directory or URL", c.Location),
|
||||||
"context.location",
|
"context.location",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return d, c, nil
|
return d, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Annotate sets docstrings on BuildContext.
|
// Annotate sets docstrings on BuildContext.
|
||||||
@@ -234,11 +210,8 @@ func hashBuildContext(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hash any local named contexts. Sort keys for stable iteration order.
|
// Hash any local named contexts.
|
||||||
keys := maps.Keys(namedContexts)
|
for _, namedContext := range 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,69 +33,62 @@ func TestValidateContext(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
c *BuildContext
|
c Context
|
||||||
givenD Dockerfile
|
givenD Dockerfile
|
||||||
preview bool
|
preview bool
|
||||||
|
|
||||||
wantD *Dockerfile
|
wantD *Dockerfile
|
||||||
wantC *Context
|
|
||||||
wantErr string
|
wantErr string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "relative",
|
name: "relative",
|
||||||
c: &BuildContext{Context: Context{
|
c: 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: &BuildContext{Context: Context{
|
c: 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: &BuildContext{Context: Context{
|
c: Context{
|
||||||
Location: "testdata",
|
Location: "testdata",
|
||||||
}},
|
},
|
||||||
wantD: &Dockerfile{Location: "testdata/Dockerfile"},
|
wantD: &Dockerfile{Location: "testdata/Dockerfile"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "with explicit Dockerfile",
|
name: "with explicit Dockerfile",
|
||||||
c: &BuildContext{Context: Context{
|
c: Context{
|
||||||
Location: "testdata",
|
Location: "testdata",
|
||||||
}},
|
},
|
||||||
givenD: Dockerfile{
|
givenD: Dockerfile{
|
||||||
Location: "testdata/Dockerfile.invalid",
|
Location: "testdata/Dockerfile.invalid",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "default location",
|
name: "default location",
|
||||||
c: &BuildContext{Context: Context{}},
|
c: 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: &BuildContext{Context: Context{
|
c: 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: &BuildContext{Context: Context{}},
|
c: 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 {
|
||||||
@@ -103,7 +96,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()
|
||||||
|
|
||||||
d, c, err := tt.c.validate(tt.preview, &tt.givenD)
|
d, err := tt.c.validate(tt.preview, tt.givenD)
|
||||||
|
|
||||||
if tt.wantErr == "" {
|
if tt.wantErr == "" {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@@ -115,9 +108,6 @@ 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,6 +17,9 @@ 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"
|
||||||
@@ -110,7 +113,6 @@ 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,
|
||||||
}
|
}
|
||||||
@@ -118,10 +120,15 @@ 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,
|
||||||
pv resource.PropertyValue,
|
v *structpb.Value,
|
||||||
) (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.
|
||||||
@@ -129,10 +136,8 @@ func (enc *ConfigEncoding) unmarshalPropertyValue(key resource.PropertyKey,
|
|||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var jsonString string
|
||||||
jsonString string
|
var jsonStringDetected, jsonStringSecret bool
|
||||||
jsonStringDetected, jsonStringSecret bool
|
|
||||||
)
|
|
||||||
|
|
||||||
if pv.IsString() {
|
if pv.IsString() {
|
||||||
jsonString = pv.StringValue()
|
jsonString = pv.StringValue()
|
||||||
@@ -148,21 +153,22 @@ 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 resource.PropertyValue{}, fmt.Errorf("error unmarshalling property %q: %w", key, err)
|
return nil, fmt.Errorf("error unmarshalling property %q: %w", key, err)
|
||||||
}
|
}
|
||||||
if jsonStringSecret {
|
if jsonStringSecret {
|
||||||
return resource.MakeSecret(v), nil
|
s := resource.MakeSecret(v)
|
||||||
|
return &s, nil
|
||||||
}
|
}
|
||||||
return v, nil
|
return &v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Computed sentinels are coming in as always having an empty string, but the encoding coerces them to a zero
|
// Computed sentinels are coming in as always having an empty string, but the encoding coerses 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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,20 +177,36 @@ 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 resource.PropertyMap,
|
props *structpb.Struct,
|
||||||
) (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).
|
||||||
keys := props.StableKeys()
|
var keys []string
|
||||||
|
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 {
|
||||||
v, err := enc.unmarshalPropertyValue(key, props[key])
|
pk := resource.PropertyKey(key)
|
||||||
|
v, err := enc.unmarshalPropertyValue(pk, props.Fields[key])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return resource.PropertyMap{}, err
|
return nil, 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"
|
||||||
"github.com/stretchr/testify/require"
|
structpb "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"
|
||||||
|
"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
|
||||||
given resource.PropertyValue
|
v *structpb.Value
|
||||||
want resource.PropertyValue
|
pv resource.PropertyValue
|
||||||
}
|
}
|
||||||
|
|
||||||
knownKey := "mykey"
|
knownKey := "mykey"
|
||||||
@@ -49,64 +49,69 @@ 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)
|
||||||
key := resource.PropertyKey(knownKey)
|
pv, err := enc.unmarshalPropertyValue(resource.PropertyKey(knownKey), tc.v)
|
||||||
|
assert.NoError(t, err)
|
||||||
actual, err := enc.unmarshalPropertyValue(key, tc.given)
|
assert.NotNil(t, pv)
|
||||||
require.NoError(t, err)
|
assert.Equal(t, tc.pv, *pv)
|
||||||
assert.Equal(t, tc.want, actual)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
turnaroundTestCases := []testCase{
|
turnaroundTestCases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
resource.NewPropertyValue(`true`),
|
makeValue(`true`),
|
||||||
resource.NewBoolProperty(true),
|
resource.NewBoolProperty(true),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
resource.NewPropertyValue(`false`),
|
makeValue(`false`),
|
||||||
resource.NewBoolProperty(false),
|
resource.NewBoolProperty(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
resource.NewPropertyValue(`0`),
|
makeValue(`0`),
|
||||||
resource.NewNumberProperty(0),
|
resource.NewNumberProperty(0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
resource.NewPropertyValue(`42`),
|
makeValue(`42`),
|
||||||
resource.NewNumberProperty(42),
|
resource.NewNumberProperty(42),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
resource.NewPropertyValue(`0`),
|
makeValue(`0`),
|
||||||
resource.NewNumberProperty(0.0),
|
resource.NewNumberProperty(0.0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
resource.NewPropertyValue(`42.5`),
|
makeValue(`42.5`),
|
||||||
resource.NewNumberProperty(42.5),
|
resource.NewNumberProperty(42.5),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
resource.NewStringProperty(""),
|
structpb.NewStringValue(""),
|
||||||
resource.NewStringProperty(""),
|
resource.NewStringProperty(""),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
resource.NewStringProperty("hello"),
|
structpb.NewStringValue("hello"),
|
||||||
resource.NewStringProperty("hello"),
|
resource.NewStringProperty("hello"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
resource.NewPropertyValue(`[]`),
|
makeValue(`[]`),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{}),
|
resource.NewArrayProperty([]resource.PropertyValue{}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
resource.NewPropertyValue(`["hello","there"]`),
|
makeValue(`["hello","there"]`),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{
|
resource.NewArrayProperty([]resource.PropertyValue{
|
||||||
resource.NewStringProperty("hello"),
|
resource.NewStringProperty("hello"),
|
||||||
resource.NewStringProperty("there"),
|
resource.NewStringProperty("there"),
|
||||||
@@ -114,12 +119,12 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
resource.NewPropertyValue(`{}`),
|
makeValue(`{}`),
|
||||||
resource.NewObjectProperty(resource.PropertyMap{}),
|
resource.NewObjectProperty(resource.PropertyMap{}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
resource.NewPropertyValue(`{"key":"value"}`),
|
makeValue(`{"key":"value"}`),
|
||||||
resource.NewObjectProperty(resource.PropertyMap{
|
resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"key": resource.NewStringProperty("value"),
|
"key": resource.NewStringProperty("value"),
|
||||||
}),
|
}),
|
||||||
@@ -130,7 +135,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
for i, tc := range turnaroundTestCases {
|
for i, tc := range turnaroundTestCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
checkUnmarshal(t, tc)
|
checkUnmarshal(t, tc)
|
||||||
})
|
})
|
||||||
@@ -142,32 +147,32 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
cases := []testCase{
|
cases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "boolean"},
|
schema.TypeSpec{Type: "boolean"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewBoolProperty(false),
|
resource.NewBoolProperty(false),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "number"},
|
schema.TypeSpec{Type: "number"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewNumberProperty(0.),
|
resource.NewNumberProperty(0.),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "integer"},
|
schema.TypeSpec{Type: "integer"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewNumberProperty(0),
|
resource.NewNumberProperty(0),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "string"},
|
schema.TypeSpec{Type: "string"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewStringProperty(""),
|
resource.NewStringProperty(""),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "object"},
|
schema.TypeSpec{Type: "object"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewObjectProperty(make(resource.PropertyMap)),
|
resource.NewObjectProperty(make(resource.PropertyMap)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
resource.NewPropertyValue(""),
|
makeValue(""),
|
||||||
resource.NewArrayProperty([]resource.PropertyValue{}),
|
resource.NewArrayProperty([]resource.PropertyValue{}),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -182,18 +187,18 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("computed", func(t *testing.T) {
|
t.Run("computed", func(t *testing.T) {
|
||||||
unk := resource.MakeComputed(resource.NewStringProperty(""))
|
unk := makeValue(plugin.UnknownStringValue)
|
||||||
|
|
||||||
for i, tc := range turnaroundTestCases {
|
for i, tc := range turnaroundTestCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", 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{
|
||||||
ty: tc.ty,
|
tc.ty,
|
||||||
given: unk,
|
unk,
|
||||||
want: resource.MakeComputed(makeEnc(tc.ty).zeroValue(tc.ty.Type)),
|
resource.MakeComputed(makeEnc(tc.ty).zeroValue(tc.ty.Type)),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -210,30 +215,46 @@ 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{
|
||||||
ty: tc.ty,
|
tc.ty,
|
||||||
given: resource.MakeSecret(tc.given),
|
pbSecret(tc.v),
|
||||||
want: resource.MakeSecret(tc.want),
|
resource.MakeSecret(tc.pv),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tc := range secretCases {
|
for i, tc := range secretCases {
|
||||||
tc := tc
|
tc := tc
|
||||||
|
|
||||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("secret/UnmarshalPropertyValue/%d", 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("nested secrets", func(t *testing.T) {
|
t.Run("tolerate secrets in Configure", 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"},
|
||||||
resource.MakeSecret(resource.NewPropertyValue(`{"key":"val"}`)),
|
pbSecret(makeValue(`{"key":"val"}`)),
|
||||||
resource.MakeSecret(resource.NewObjectProperty(resource.PropertyMap{
|
resource.NewObjectProperty(resource.PropertyMap{
|
||||||
"key": resource.NewStringProperty("val"),
|
"key": resource.NewStringProperty("val"),
|
||||||
})),
|
}),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -241,7 +262,7 @@ func TestConfigEncoding(t *testing.T) {
|
|||||||
regressUnmarshalTestCases := []testCase{
|
regressUnmarshalTestCases := []testCase{
|
||||||
{
|
{
|
||||||
schema.TypeSpec{Type: "array"},
|
schema.TypeSpec{Type: "array"},
|
||||||
resource.NewPropertyValue(`
|
makeValue(`
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"address": "somewhere.org",
|
"address": "somewhere.org",
|
||||||
@@ -255,7 +276,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.MakeSecret(resource.NewStringProperty("some-password")),
|
"password": resource.NewStringProperty("some-password"),
|
||||||
"username": resource.NewStringProperty("some-user"),
|
"username": resource.NewStringProperty("some-user"),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
@@ -265,7 +286,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(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("UnmarshalPropertyValue/%d", i), func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
checkUnmarshal(t, tc)
|
checkUnmarshal(t, tc)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:generate go run ../pkg/docs-gen/examples examples doc
|
||||||
|
|
||||||
// Package internal contains our clients, validation, and provider
|
// Package internal contains our clients, validation, and provider
|
||||||
// implementation for interacting with Docker's buildx APIs.
|
// implementation for interacting with Docker's buildx APIs.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ func (d *Dockerfile) Annotate(a infer.Annotator) {
|
|||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Dockerfile) validate(preview bool, c *Context) error {
|
func (d *Dockerfile) validate(preview bool, c Context) error {
|
||||||
if d.Location != "" && d.Inline != "" {
|
if d.Location != "" && d.Inline != "" {
|
||||||
return newCheckFailure(
|
return newCheckFailure(
|
||||||
errors.New(`only specify "file" or "inline", not both`),
|
errors.New(`only specify "file" or "inline", not both`),
|
||||||
@@ -88,7 +88,7 @@ func (d *Dockerfile) validate(preview bool, c *Context) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if !preview && c != nil && !buildx.IsRemoteURL(c.Location) {
|
if !preview && !buildx.IsRemoteURL(c.Location) {
|
||||||
return newCheckFailure(errors.New("missing 'location' or 'inline'"), "dockerfile")
|
return newCheckFailure(errors.New("missing 'location' or 'inline'"), "dockerfile")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ func TestValidateDockerfile(t *testing.T) {
|
|||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
err := tt.d.validate(tt.preview, &tt.givenC)
|
err := tt.d.validate(tt.preview, tt.givenC)
|
||||||
|
|
||||||
if tt.wantErr == "" {
|
if tt.wantErr == "" {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,11 @@
|
|||||||
## Migrating Pulumi Docker v3 and v4 Image resources
|
## Migrating v3 and v4 Image resources
|
||||||
|
|
||||||
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.
|
The `buildx.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 `build.Image` resources with minor modifications.
|
||||||
|
|
||||||
### Behavioral differences
|
### Behavioral differences
|
||||||
|
|
||||||
There are several key behavioral differences to keep in mind when transitioning images to the new `Image` resource.
|
There are several key behavioral differences to keep in mind when transitioning images to the new `buildx.Image` resource.
|
||||||
|
|
||||||
#### Previews
|
#### Previews
|
||||||
|
|
||||||
@@ -14,17 +14,19 @@ 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.
|
||||||
Several users reported outages due to the default behavior allowing bad images to accidentally sneak through CI.
|
Some users felt this made previews in CI less helpful because they no longer detected bad images by default.
|
||||||
|
|
||||||
The default behavior of this provider's `Image` resource is similar to `3.x` and will build images during previews.
|
The default behavior of the `buildx.Image` resource has been changed to strike a better balance between CI use cases and manual updates.
|
||||||
This behavior can be changed by specifying `buildOnPreview`.
|
By default, Pulumi will now only build `buildx.Image` resources during previews when it detects a CI environment like GitHub Actions.
|
||||||
|
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.
|
||||||
|
|
||||||
This provider's `Image` resource matches the Docker CLI's behavior and does not push images anywhere by default.
|
The `buildx.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.
|
||||||
@@ -35,7 +37,7 @@ Version `3.x` of the Pulumi Docker provider supports secrets by way of the `extr
|
|||||||
|
|
||||||
Version `4.x` of the Pulumi Docker provider does not support secrets.
|
Version `4.x` of the Pulumi Docker provider does not support secrets.
|
||||||
|
|
||||||
The `Image` resource supports secrets but does not require those secrets to exist on-disk or in environment variables.
|
The `buildx.Image` resource supports secrets but does not require those secrets to exist on-disk or in environment variables.
|
||||||
Instead, they should be passed directly as values.
|
Instead, they should be passed directly as values.
|
||||||
(Please be sure to familiarize yourself with Pulumi's [native secret handling](https://www.pulumi.com/docs/concepts/secrets/).)
|
(Please be sure to familiarize yourself with Pulumi's [native secret handling](https://www.pulumi.com/docs/concepts/secrets/).)
|
||||||
Pulumi also provides [ESC](https://www.pulumi.com/product/esc/) to make it easier to share secrets across stacks and environments.
|
Pulumi also provides [ESC](https://www.pulumi.com/product/esc/) to make it easier to share secrets across stacks and environments.
|
||||||
@@ -50,7 +52,7 @@ Version `4.x` exposes a similar parameter `cacheFrom: { images: [...] }` which p
|
|||||||
Both versions 3 and 4 require specific environment variables to be set and deviate from Docker's native caching behavior.
|
Both versions 3 and 4 require specific environment variables to be set and deviate from Docker's native caching behavior.
|
||||||
This can result in inefficient builds due to unnecessary image pulls, repeated file transfers, etc.
|
This can result in inefficient builds due to unnecessary image pulls, repeated file transfers, etc.
|
||||||
|
|
||||||
The `Image` resource delegates all caching behavior to Docker.
|
The `buildx.Image` resource delegates all caching behavior to Docker.
|
||||||
`cacheFrom` and `cacheTo` options (equivalent to Docker's `--cache-to` and `--cache-from`) are exposed and provide additional cache targets, such as local disk, S3 storage, etc.
|
`cacheFrom` and `cacheTo` options (equivalent to Docker's `--cache-to` and `--cache-from`) are exposed and provide additional cache targets, such as local disk, S3 storage, etc.
|
||||||
|
|
||||||
#### Outputs
|
#### Outputs
|
||||||
@@ -58,7 +60,7 @@ The `Image` resource delegates all caching behavior to Docker.
|
|||||||
Versions `3.x` and `4.x` of the provider exposed a `repoDigest` output which was a fully qualified tag with digest.
|
Versions `3.x` and `4.x` of the provider exposed a `repoDigest` output which was a fully qualified tag with digest.
|
||||||
In `4.x` this could also be a single sha256 hash if the image wasn't pushed.
|
In `4.x` this could also be a single sha256 hash if the image wasn't pushed.
|
||||||
|
|
||||||
Unlike earlier providers the `Image` resource can push multiple tags.
|
Unlike earlier providers the `buildx.Image` resource can push multiple tags.
|
||||||
As a convenience, it exposes a `ref` output consisting of a tag with digest as long as the image was pushed.
|
As a convenience, it exposes a `ref` output consisting of a tag with digest as long as the image was pushed.
|
||||||
If multiple tags were pushed this uses one at random.
|
If multiple tags were pushed this uses one at random.
|
||||||
|
|
||||||
@@ -71,7 +73,7 @@ Versions 3 and 4 of Pulumi Docker provider do not delete tags when the `Image` r
|
|||||||
The `buidx.Image` will query your registries during `refresh` to ensure the expected tags exist.
|
The `buidx.Image` will query your registries during `refresh` to ensure the expected tags exist.
|
||||||
If any are missing a subsequent `update` will push them.
|
If any are missing a subsequent `update` will push them.
|
||||||
|
|
||||||
When a `Image` is deleted, it will _attempt_ to also delete any pushed tags.
|
When a `buildx.Image` is deleted, it will _attempt_ to also delete any pushed tags.
|
||||||
Deletion of remote tags is not guaranteed because not all registries support the manifest `DELETE` API (`docker.io` in particular).
|
Deletion of remote tags is not guaranteed because not all registries support the manifest `DELETE` API (`docker.io` in particular).
|
||||||
Manifests are _not_ deleted in the same way during updates -- to do so safely would require a full build to determine whether a Pulumi operation should be an update or update-replace.
|
Manifests are _not_ deleted in the same way during updates -- to do so safely would require a full build to determine whether a Pulumi operation should be an update or update-replace.
|
||||||
|
|
||||||
@@ -79,11 +81,11 @@ Use the [`retainOnDelete: true`](https://www.pulumi.com/docs/concepts/options/re
|
|||||||
|
|
||||||
### Example migration
|
### Example migration
|
||||||
|
|
||||||
Examples of "fully-featured" `v3` and `v4` `Image` resources are shown below, along with an example `Image` resource showing how they would look after migration.
|
Examples of "fully-featured" `v3` and `v4` `Image` resources are shown below, along with an example `buildx.Image` resource showing how they would look after migration.
|
||||||
|
|
||||||
The `v3` resource leverages `buildx` via a `DOCKER_BUILDKIT` environment variable and CLI flags passed in with `extraOption`.
|
The `v3` resource leverages `buildx` via a `DOCKER_BUILDKIT` environment variable and CLI flags passed in with `extraOption`.
|
||||||
After migration, the environment variable is no longer needed and CLI flags are now properties on the `Image`.
|
After migration, the environment variable is no longer needed and CLI flags are now properties on the `buildx.Image`.
|
||||||
In almost all cases, properties of `Image` are named after the Docker CLI flag they correspond to.
|
In almost all cases, properties of `buildx.Image` are named after the Docker CLI flag they correspond to.
|
||||||
|
|
||||||
The `v4` resource is less functional than its `v3` counterpart because it lacks the flexibility of `extraOptions`.
|
The `v4` resource is less functional than its `v3` counterpart because it lacks the flexibility of `extraOptions`.
|
||||||
It it is shown with parameters similar to the `v3` example for completeness.
|
It it is shown with parameters similar to the `v3` example for completeness.
|
||||||
@@ -134,8 +136,8 @@ const v3 = new docker.Image("v3-image", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// v3 Image after migrating to docker-build.Image
|
// v3 Image after migrating to buildx.Image
|
||||||
const v3Migrated = new dockerbuild.Image("v3-to-buildx", {
|
const v3Migrated = new docker.buildx.Image("v3-to-buildx", {
|
||||||
tags: ["myregistry.com/user/repo:latest", "local-tag"],
|
tags: ["myregistry.com/user/repo:latest", "local-tag"],
|
||||||
push: true,
|
push: true,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
@@ -144,7 +146,7 @@ const v3Migrated = new dockerbuild.Image("v3-to-buildx", {
|
|||||||
context: {
|
context: {
|
||||||
location: "../app",
|
location: "../app",
|
||||||
},
|
},
|
||||||
target: "mytarget",
|
targets: ["mytarget"],
|
||||||
buildArgs: {
|
buildArgs: {
|
||||||
MY_BUILD_ARG: "foo",
|
MY_BUILD_ARG: "foo",
|
||||||
},
|
},
|
||||||
@@ -193,8 +195,8 @@ const v4 = new docker.Image("v4-image", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// v4 Image after migrating to docker-build.Image
|
// v4 Image after migrating to buildx.Image
|
||||||
const v4Migrated = new dockerbuild.Image("v4-to-buildx", {
|
const v4Migrated = new docker.buildx.Image("v4-to-buildx", {
|
||||||
tags: ["myregistry.com/user/repo:latest"],
|
tags: ["myregistry.com/user/repo:latest"],
|
||||||
push: true,
|
push: true,
|
||||||
dockerfile: {
|
dockerfile: {
|
||||||
@@ -203,7 +205,7 @@ const v4Migrated = new dockerbuild.Image("v4-to-buildx", {
|
|||||||
context: {
|
context: {
|
||||||
location: "../app",
|
location: "../app",
|
||||||
},
|
},
|
||||||
target: "mytarget",
|
targets: ["mytarget"],
|
||||||
buildArgs: {
|
buildArgs: {
|
||||||
MY_BUILD_ARG: "foo",
|
MY_BUILD_ARG: "foo",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import * as pulumi from "@pulumi/pulumi";
|
import * as pulumi from "@pulumi/pulumi";
|
||||||
import * as docker_build from "@pulumi/docker-build";
|
import * as docker from "@pulumi/docker";
|
||||||
|
|
||||||
const amd64 = new docker_build.Image("amd64", {
|
const amd64 = new docker.buildx.Image("amd64", {
|
||||||
cacheFrom: [{
|
cacheFrom: [{
|
||||||
registry: {
|
registry: {
|
||||||
ref: "docker.io/pulumi/pulumi:cache-amd64",
|
ref: "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
@@ -15,17 +15,17 @@ const amd64 = new docker_build.Image("amd64", {
|
|||||||
}],
|
}],
|
||||||
cacheTo: [{
|
cacheTo: [{
|
||||||
registry: {
|
registry: {
|
||||||
mode: docker_build.CacheMode.Max,
|
mode: docker.buildx.image.CacheMode.Max,
|
||||||
ref: "docker.io/pulumi/pulumi:cache-amd64",
|
ref: "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
context: {
|
context: {
|
||||||
location: "app",
|
location: "app",
|
||||||
},
|
},
|
||||||
platforms: [docker_build.Platform.Linux_amd64],
|
platforms: [docker.buildx.image.Platform.Linux_amd64],
|
||||||
tags: ["docker.io/pulumi/pulumi:3.107.0-amd64"],
|
tags: ["docker.io/pulumi/pulumi:3.107.0-amd64"],
|
||||||
});
|
});
|
||||||
const arm64 = new docker_build.Image("arm64", {
|
const arm64 = new docker.buildx.Image("arm64", {
|
||||||
cacheFrom: [{
|
cacheFrom: [{
|
||||||
registry: {
|
registry: {
|
||||||
ref: "docker.io/pulumi/pulumi:cache-arm64",
|
ref: "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
@@ -33,17 +33,17 @@ const arm64 = new docker_build.Image("arm64", {
|
|||||||
}],
|
}],
|
||||||
cacheTo: [{
|
cacheTo: [{
|
||||||
registry: {
|
registry: {
|
||||||
mode: docker_build.CacheMode.Max,
|
mode: docker.buildx.image.CacheMode.Max,
|
||||||
ref: "docker.io/pulumi/pulumi:cache-arm64",
|
ref: "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
context: {
|
context: {
|
||||||
location: "app",
|
location: "app",
|
||||||
},
|
},
|
||||||
platforms: [docker_build.Platform.Linux_arm64],
|
platforms: [docker.buildx.image.Platform.Linux_arm64],
|
||||||
tags: ["docker.io/pulumi/pulumi:3.107.0-arm64"],
|
tags: ["docker.io/pulumi/pulumi:3.107.0-arm64"],
|
||||||
});
|
});
|
||||||
const index = new docker_build.Index("index", {
|
const index = new docker.buildx.Index("index", {
|
||||||
sources: [
|
sources: [
|
||||||
amd64.ref,
|
amd64.ref,
|
||||||
arm64.ref,
|
arm64.ref,
|
||||||
@@ -54,43 +54,43 @@ export const ref = index.ref;
|
|||||||
```
|
```
|
||||||
```python
|
```python
|
||||||
import pulumi
|
import pulumi
|
||||||
import pulumi_docker_build as docker_build
|
import pulumi_docker as docker
|
||||||
|
|
||||||
amd64 = docker_build.Image("amd64",
|
amd64 = docker.buildx.Image("amd64",
|
||||||
cache_from=[docker_build.CacheFromArgs(
|
cache_from=[docker.buildx.CacheFromArgs(
|
||||||
registry=docker_build.CacheFromRegistryArgs(
|
registry=docker.buildx.CacheFromRegistryArgs(
|
||||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
ref="docker.io/pulumi/pulumi:cache-amd64",
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
cache_to=[docker_build.CacheToArgs(
|
cache_to=[docker.buildx.CacheToArgs(
|
||||||
registry=docker_build.CacheToRegistryArgs(
|
registry=docker.buildx.CacheToRegistryArgs(
|
||||||
mode=docker_build.CacheMode.MAX,
|
mode=docker.buildx.image.CacheMode.MAX,
|
||||||
ref="docker.io/pulumi/pulumi:cache-amd64",
|
ref="docker.io/pulumi/pulumi:cache-amd64",
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker.buildx.BuildContextArgs(
|
||||||
location="app",
|
location="app",
|
||||||
),
|
),
|
||||||
platforms=[docker_build.Platform.LINUX_AMD64],
|
platforms=[docker.buildx.image.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.buildx.Image("arm64",
|
||||||
cache_from=[docker_build.CacheFromArgs(
|
cache_from=[docker.buildx.CacheFromArgs(
|
||||||
registry=docker_build.CacheFromRegistryArgs(
|
registry=docker.buildx.CacheFromRegistryArgs(
|
||||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
ref="docker.io/pulumi/pulumi:cache-arm64",
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
cache_to=[docker_build.CacheToArgs(
|
cache_to=[docker.buildx.CacheToArgs(
|
||||||
registry=docker_build.CacheToRegistryArgs(
|
registry=docker.buildx.CacheToRegistryArgs(
|
||||||
mode=docker_build.CacheMode.MAX,
|
mode=docker.buildx.image.CacheMode.MAX,
|
||||||
ref="docker.io/pulumi/pulumi:cache-arm64",
|
ref="docker.io/pulumi/pulumi:cache-arm64",
|
||||||
),
|
),
|
||||||
)],
|
)],
|
||||||
context=docker_build.BuildContextArgs(
|
context=docker.buildx.BuildContextArgs(
|
||||||
location="app",
|
location="app",
|
||||||
),
|
),
|
||||||
platforms=[docker_build.Platform.LINUX_ARM64],
|
platforms=[docker.buildx.image.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.buildx.Index("index",
|
||||||
sources=[
|
sources=[
|
||||||
amd64.ref,
|
amd64.ref,
|
||||||
arm64.ref,
|
arm64.ref,
|
||||||
@@ -102,17 +102,17 @@ pulumi.export("ref", index.ref)
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Pulumi;
|
using Pulumi;
|
||||||
using DockerBuild = Pulumi.DockerBuild;
|
using Docker = Pulumi.Docker;
|
||||||
|
|
||||||
return await Deployment.RunAsync(() =>
|
return await Deployment.RunAsync(() =>
|
||||||
{
|
{
|
||||||
var amd64 = new DockerBuild.Image("amd64", new()
|
var amd64 = new Docker.Buildx.Image("amd64", new()
|
||||||
{
|
{
|
||||||
CacheFrom = new[]
|
CacheFrom = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.CacheFromArgs
|
new Docker.Buildx.Inputs.CacheFromArgs
|
||||||
{
|
{
|
||||||
Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
|
Registry = new Docker.Buildx.Inputs.CacheFromRegistryArgs
|
||||||
{
|
{
|
||||||
Ref = "docker.io/pulumi/pulumi:cache-amd64",
|
Ref = "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
},
|
},
|
||||||
@@ -120,22 +120,22 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
CacheTo = new[]
|
CacheTo = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.CacheToArgs
|
new Docker.Buildx.Inputs.CacheToArgs
|
||||||
{
|
{
|
||||||
Registry = new DockerBuild.Inputs.CacheToRegistryArgs
|
Registry = new Docker.Buildx.Inputs.CacheToRegistryArgs
|
||||||
{
|
{
|
||||||
Mode = DockerBuild.CacheMode.Max,
|
Mode = Docker.Buildx.Image.CacheMode.Max,
|
||||||
Ref = "docker.io/pulumi/pulumi:cache-amd64",
|
Ref = "docker.io/pulumi/pulumi:cache-amd64",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Docker.Buildx.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "app",
|
Location = "app",
|
||||||
},
|
},
|
||||||
Platforms = new[]
|
Platforms = new[]
|
||||||
{
|
{
|
||||||
DockerBuild.Platform.Linux_amd64,
|
Docker.Buildx.Image.Platform.Linux_amd64,
|
||||||
},
|
},
|
||||||
Tags = new[]
|
Tags = new[]
|
||||||
{
|
{
|
||||||
@@ -143,13 +143,13 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var arm64 = new DockerBuild.Image("arm64", new()
|
var arm64 = new Docker.Buildx.Image("arm64", new()
|
||||||
{
|
{
|
||||||
CacheFrom = new[]
|
CacheFrom = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.CacheFromArgs
|
new Docker.Buildx.Inputs.CacheFromArgs
|
||||||
{
|
{
|
||||||
Registry = new DockerBuild.Inputs.CacheFromRegistryArgs
|
Registry = new Docker.Buildx.Inputs.CacheFromRegistryArgs
|
||||||
{
|
{
|
||||||
Ref = "docker.io/pulumi/pulumi:cache-arm64",
|
Ref = "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
},
|
},
|
||||||
@@ -157,22 +157,22 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
CacheTo = new[]
|
CacheTo = new[]
|
||||||
{
|
{
|
||||||
new DockerBuild.Inputs.CacheToArgs
|
new Docker.Buildx.Inputs.CacheToArgs
|
||||||
{
|
{
|
||||||
Registry = new DockerBuild.Inputs.CacheToRegistryArgs
|
Registry = new Docker.Buildx.Inputs.CacheToRegistryArgs
|
||||||
{
|
{
|
||||||
Mode = DockerBuild.CacheMode.Max,
|
Mode = Docker.Buildx.Image.CacheMode.Max,
|
||||||
Ref = "docker.io/pulumi/pulumi:cache-arm64",
|
Ref = "docker.io/pulumi/pulumi:cache-arm64",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Context = new DockerBuild.Inputs.BuildContextArgs
|
Context = new Docker.Buildx.Inputs.BuildContextArgs
|
||||||
{
|
{
|
||||||
Location = "app",
|
Location = "app",
|
||||||
},
|
},
|
||||||
Platforms = new[]
|
Platforms = new[]
|
||||||
{
|
{
|
||||||
DockerBuild.Platform.Linux_arm64,
|
Docker.Buildx.Image.Platform.Linux_arm64,
|
||||||
},
|
},
|
||||||
Tags = new[]
|
Tags = new[]
|
||||||
{
|
{
|
||||||
@@ -180,7 +180,7 @@ return await Deployment.RunAsync(() =>
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var index = new DockerBuild.Index("index", new()
|
var index = new Docker.Buildx.Index("index", new()
|
||||||
{
|
{
|
||||||
Sources = new[]
|
Sources = new[]
|
||||||
{
|
{
|
||||||
@@ -201,33 +201,33 @@ return await Deployment.RunAsync(() =>
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild"
|
"github.com/pulumi/pulumi-docker/sdk/v4/go/docker/buildx"
|
||||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
pulumi.Run(func(ctx *pulumi.Context) error {
|
pulumi.Run(func(ctx *pulumi.Context) error {
|
||||||
amd64, err := dockerbuild.NewImage(ctx, "amd64", &dockerbuild.ImageArgs{
|
amd64, err := buildx.NewImage(ctx, "amd64", &buildx.ImageArgs{
|
||||||
CacheFrom: dockerbuild.CacheFromArray{
|
CacheFrom: buildx.CacheFromArray{
|
||||||
&dockerbuild.CacheFromArgs{
|
&buildx.CacheFromArgs{
|
||||||
Registry: &dockerbuild.CacheFromRegistryArgs{
|
Registry: &buildx.CacheFromRegistryArgs{
|
||||||
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
|
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
CacheTo: dockerbuild.CacheToArray{
|
CacheTo: buildx.CacheToArray{
|
||||||
&dockerbuild.CacheToArgs{
|
&buildx.CacheToArgs{
|
||||||
Registry: &dockerbuild.CacheToRegistryArgs{
|
Registry: &buildx.CacheToRegistryArgs{
|
||||||
Mode: dockerbuild.CacheModeMax,
|
Mode: buildx.CacheModeMax,
|
||||||
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
|
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-amd64"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &buildx.BuildContextArgs{
|
||||||
Location: pulumi.String("app"),
|
Location: pulumi.String("app"),
|
||||||
},
|
},
|
||||||
Platforms: docker - build.PlatformArray{
|
Platforms: buildx.PlatformArray{
|
||||||
dockerbuild.Platform_Linux_amd64,
|
buildx.Platform_Linux_amd64,
|
||||||
},
|
},
|
||||||
Tags: pulumi.StringArray{
|
Tags: pulumi.StringArray{
|
||||||
pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
|
pulumi.String("docker.io/pulumi/pulumi:3.107.0-amd64"),
|
||||||
@@ -236,27 +236,27 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
arm64, err := dockerbuild.NewImage(ctx, "arm64", &dockerbuild.ImageArgs{
|
arm64, err := buildx.NewImage(ctx, "arm64", &buildx.ImageArgs{
|
||||||
CacheFrom: dockerbuild.CacheFromArray{
|
CacheFrom: buildx.CacheFromArray{
|
||||||
&dockerbuild.CacheFromArgs{
|
&buildx.CacheFromArgs{
|
||||||
Registry: &dockerbuild.CacheFromRegistryArgs{
|
Registry: &buildx.CacheFromRegistryArgs{
|
||||||
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
|
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
CacheTo: dockerbuild.CacheToArray{
|
CacheTo: buildx.CacheToArray{
|
||||||
&dockerbuild.CacheToArgs{
|
&buildx.CacheToArgs{
|
||||||
Registry: &dockerbuild.CacheToRegistryArgs{
|
Registry: &buildx.CacheToRegistryArgs{
|
||||||
Mode: dockerbuild.CacheModeMax,
|
Mode: buildx.CacheModeMax,
|
||||||
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
|
Ref: pulumi.String("docker.io/pulumi/pulumi:cache-arm64"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Context: &dockerbuild.BuildContextArgs{
|
Context: &buildx.BuildContextArgs{
|
||||||
Location: pulumi.String("app"),
|
Location: pulumi.String("app"),
|
||||||
},
|
},
|
||||||
Platforms: docker - build.PlatformArray{
|
Platforms: buildx.PlatformArray{
|
||||||
dockerbuild.Platform_Linux_arm64,
|
buildx.Platform_Linux_arm64,
|
||||||
},
|
},
|
||||||
Tags: pulumi.StringArray{
|
Tags: pulumi.StringArray{
|
||||||
pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
|
pulumi.String("docker.io/pulumi/pulumi:3.107.0-arm64"),
|
||||||
@@ -265,7 +265,7 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
index, err := dockerbuild.NewIndex(ctx, "index", &dockerbuild.IndexArgs{
|
index, err := buildx.NewIndex(ctx, "index", &buildx.IndexArgs{
|
||||||
Sources: pulumi.StringArray{
|
Sources: pulumi.StringArray{
|
||||||
amd64.Ref,
|
amd64.Ref,
|
||||||
arm64.Ref,
|
arm64.Ref,
|
||||||
@@ -301,7 +301,7 @@ resources:
|
|||||||
- linux/amd64
|
- linux/amd64
|
||||||
tags:
|
tags:
|
||||||
- docker.io/pulumi/pulumi:3.107.0-amd64
|
- docker.io/pulumi/pulumi:3.107.0-amd64
|
||||||
type: docker-build:Image
|
type: docker:buildx/image:Image
|
||||||
arm64:
|
arm64:
|
||||||
properties:
|
properties:
|
||||||
cacheFrom:
|
cacheFrom:
|
||||||
@@ -317,14 +317,14 @@ resources:
|
|||||||
- linux/arm64
|
- linux/arm64
|
||||||
tags:
|
tags:
|
||||||
- docker.io/pulumi/pulumi:3.107.0-arm64
|
- docker.io/pulumi/pulumi:3.107.0-arm64
|
||||||
type: docker-build:Image
|
type: docker:buildx/image:Image
|
||||||
index:
|
index:
|
||||||
properties:
|
properties:
|
||||||
sources:
|
sources:
|
||||||
- ${amd64.ref}
|
- ${amd64.ref}
|
||||||
- ${arm64.ref}
|
- ${arm64.ref}
|
||||||
tag: docker.io/pulumi/pulumi:3.107.0
|
tag: docker.io/pulumi/pulumi:3.107.0
|
||||||
type: docker-build:Index
|
type: docker:buildx/image:Index
|
||||||
runtime: yaml
|
runtime: yaml
|
||||||
```
|
```
|
||||||
```java
|
```java
|
||||||
@@ -333,15 +333,15 @@ package generated_program;
|
|||||||
import com.pulumi.Context;
|
import com.pulumi.Context;
|
||||||
import com.pulumi.Pulumi;
|
import com.pulumi.Pulumi;
|
||||||
import com.pulumi.core.Output;
|
import com.pulumi.core.Output;
|
||||||
import com.pulumi.dockerbuild.Image;
|
import com.pulumi.docker.buildx.Image;
|
||||||
import com.pulumi.dockerbuild.ImageArgs;
|
import com.pulumi.docker.buildx.ImageArgs;
|
||||||
import com.pulumi.dockerbuild.inputs.CacheFromArgs;
|
import com.pulumi.docker.buildx.inputs.CacheFromArgs;
|
||||||
import com.pulumi.dockerbuild.inputs.CacheFromRegistryArgs;
|
import com.pulumi.docker.buildx.inputs.CacheFromRegistryArgs;
|
||||||
import com.pulumi.dockerbuild.inputs.CacheToArgs;
|
import com.pulumi.docker.buildx.inputs.CacheToArgs;
|
||||||
import com.pulumi.dockerbuild.inputs.CacheToRegistryArgs;
|
import com.pulumi.docker.buildx.inputs.CacheToRegistryArgs;
|
||||||
import com.pulumi.dockerbuild.inputs.BuildContextArgs;
|
import com.pulumi.docker.buildx.inputs.BuildContextArgs;
|
||||||
import com.pulumi.dockerbuild.Index;
|
import com.pulumi.docker.buildx.Index;
|
||||||
import com.pulumi.dockerbuild.IndexArgs;
|
import com.pulumi.docker.buildx.IndexArgs;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -386,15 +386,14 @@ func (c ExportWithOCI) String() string {
|
|||||||
// ExportWithCompression is an export with options to configure compression
|
// ExportWithCompression is an export with options to configure compression
|
||||||
// settings.
|
// settings.
|
||||||
type ExportWithCompression struct {
|
type ExportWithCompression struct {
|
||||||
Compression *CompressionType `pulumi:"compression,optional"`
|
Compression CompressionType `pulumi:"compression,optional"`
|
||||||
CompressionLevel int `pulumi:"compressionLevel,optional"`
|
CompressionLevel int `pulumi:"compressionLevel,optional"`
|
||||||
ForceCompression *bool `pulumi:"forceCompression,optional"`
|
ForceCompression *bool `pulumi:"forceCompression,optional"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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)
|
||||||
|
|
||||||
@@ -408,8 +407,8 @@ func (e ExportWithCompression) String() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
parts := []string{}
|
parts := []string{}
|
||||||
if e.Compression != nil {
|
if e.Compression != "" {
|
||||||
parts = append(parts, fmt.Sprintf("compression=%s", *e.Compression))
|
parts = append(parts, fmt.Sprintf("compression=%s", e.Compression))
|
||||||
}
|
}
|
||||||
if e.CompressionLevel > 0 {
|
if e.CompressionLevel > 0 {
|
||||||
cl := e.CompressionLevel
|
cl := e.CompressionLevel
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ func TestValidateExport(t *testing.T) {
|
|||||||
|
|
||||||
func TestExportString(t *testing.T) {
|
func TestExportString(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
gzip := Gzip
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
given Export
|
given Export
|
||||||
@@ -114,13 +113,13 @@ func TestExportString(t *testing.T) {
|
|||||||
given: Export{Registry: &ExportRegistry{
|
given: Export{Registry: &ExportRegistry{
|
||||||
ExportImage: ExportImage{
|
ExportImage: ExportImage{
|
||||||
ExportWithCompression: ExportWithCompression{
|
ExportWithCompression: ExportWithCompression{
|
||||||
Compression: &gzip,
|
Compression: "gz2",
|
||||||
CompressionLevel: 100,
|
CompressionLevel: 100,
|
||||||
ForceCompression: pulumi.BoolRef(true),
|
ForceCompression: pulumi.BoolRef(true),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}},
|
}},
|
||||||
want: "type=registry,compression=gzip,compression-level=22,force-compression=true",
|
want: "type=registry,compression=gz2,compression-level=22,force-compression=true",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "registry-without-push",
|
name: "registry-without-push",
|
||||||
|
|||||||
@@ -16,10 +16,8 @@ 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"
|
||||||
@@ -74,7 +72,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, fmt.Errorf("getting store: %w", err)
|
return nil, err
|
||||||
}
|
}
|
||||||
defer release()
|
defer release()
|
||||||
|
|
||||||
@@ -88,7 +86,7 @@ func (h *host) builderFor(build Build) (*cachedBuilder, error) {
|
|||||||
builder.WithStore(txn),
|
builder.WithStore(txn),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("new builder: %w", err)
|
return nil, 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
|
||||||
@@ -97,7 +95,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, fmt.Errorf("getting builders: %w", err)
|
return nil, err
|
||||||
}
|
}
|
||||||
nextbuilder:
|
nextbuilder:
|
||||||
for _, bb := range builders {
|
for _, bb := range builders {
|
||||||
@@ -130,7 +128,6 @@ 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(),
|
||||||
@@ -139,12 +136,7 @@ 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, fmt.Errorf("creating builder: %w", err)
|
return nil, 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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +145,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, fmt.Errorf("loading nodes: %w", err)
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes}
|
cached := &cachedBuilder{name: b.Name, driver: b.Driver, nodes: nodes}
|
||||||
|
|||||||
@@ -38,8 +38,9 @@ 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/pulumi"
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/ciutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -71,10 +72,16 @@ func (i *Image) Annotate(a infer.Annotator) {
|
|||||||
|
|
||||||
## Stability
|
## Stability
|
||||||
|
|
||||||
**This resource is pre-1.0 and in public preview.**
|
**This resource is experimental and subject to change.**
|
||||||
|
|
||||||
We will strive to keep APIs and behavior as stable as possible, but we
|
API types are unstable. Subsequent releases _may_ require manual edits
|
||||||
cannot guarantee stability until version 1.0.
|
to your state file(s) in order to adopt API changes.
|
||||||
|
|
||||||
|
"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,
|
||||||
@@ -86,19 +93,19 @@ type ImageArgs struct {
|
|||||||
AddHosts []string `pulumi:"addHosts,optional"`
|
AddHosts []string `pulumi:"addHosts,optional"`
|
||||||
BuildArgs map[string]string `pulumi:"buildArgs,optional"`
|
BuildArgs map[string]string `pulumi:"buildArgs,optional"`
|
||||||
BuildOnPreview *bool `pulumi:"buildOnPreview,optional"`
|
BuildOnPreview *bool `pulumi:"buildOnPreview,optional"`
|
||||||
Builder *BuilderConfig `pulumi:"builder,optional"`
|
Builder BuilderConfig `pulumi:"builder,optional"`
|
||||||
CacheFrom []CacheFrom `pulumi:"cacheFrom,optional"`
|
CacheFrom []CacheFrom `pulumi:"cacheFrom,optional"`
|
||||||
CacheTo []CacheTo `pulumi:"cacheTo,optional"`
|
CacheTo []CacheTo `pulumi:"cacheTo,optional"`
|
||||||
Context *BuildContext `pulumi:"context,optional"`
|
Context BuildContext `pulumi:"context,optional"`
|
||||||
Dockerfile *Dockerfile `pulumi:"dockerfile,optional"`
|
Dockerfile Dockerfile `pulumi:"dockerfile,optional"`
|
||||||
Exports []Export `pulumi:"exports,optional"`
|
Exports []Export `pulumi:"exports,optional"`
|
||||||
Labels map[string]string `pulumi:"labels,optional"`
|
Labels map[string]string `pulumi:"labels,optional"`
|
||||||
Load bool `pulumi:"load,optional"`
|
Load bool `pulumi:"load,optional"`
|
||||||
Network *NetworkMode `pulumi:"network,optional"`
|
Network NetworkMode `pulumi:"network,optional"`
|
||||||
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"`
|
Push bool `pulumi:"push,optional"`
|
||||||
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"`
|
||||||
@@ -126,19 +133,21 @@ 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(`
|
||||||
Setting this to "false" will always skip image builds during previews,
|
By default, preview behavior depends on the execution environment. If
|
||||||
and setting it to "true" will always build images during previews.
|
Pulumi detects the operation is running on a CI system (GitHub Actions,
|
||||||
|
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.
|
||||||
`))
|
`))
|
||||||
@@ -153,7 +162,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. Defaults to the current directory.
|
Build context settings.
|
||||||
|
|
||||||
Equivalent to Docker's "PATH | URL | -" positional argument.
|
Equivalent to Docker's "PATH | URL | -" positional argument.
|
||||||
`))
|
`))
|
||||||
@@ -278,8 +287,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.
|
||||||
@@ -328,20 +336,18 @@ func (is *ImageState) Annotate(a infer.Annotator) {
|
|||||||
`))
|
`))
|
||||||
}
|
}
|
||||||
|
|
||||||
// client produces a CLI client scoped to this resource and layered on top of
|
// client produces a CLI client with scoped to this resource and layered on top
|
||||||
// any host-level credentials.
|
// of any host-level credentials.
|
||||||
func (i *Image) client(ctx context.Context, state ImageState, args ImageArgs) (Client, error) {
|
func (i *Image) client(ctx provider.Context, state ImageState, args ImageArgs) (Client, error) {
|
||||||
cfg := infer.GetConfig[Config](ctx)
|
cfg := infer.GetConfig[Config](ctx)
|
||||||
|
|
||||||
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
if cli, ok := ctx.Value(_mockClientKey).(Client); ok {
|
||||||
return cli, nil
|
return cli, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// We prefer auth from args, the provider, and state in that order. We
|
// Layer auth from args, state, and the provider in that order.
|
||||||
// build a slice in reverse order because wrap() will overwrite earlier
|
auths := cfg.Registries
|
||||||
// entries with later ones.
|
auths = append(auths, state.Registries...)
|
||||||
auths := []Registry{}
|
|
||||||
auths = append(auths, cfg.Registries...)
|
|
||||||
auths = append(auths, args.Registries...)
|
auths = append(auths, args.Registries...)
|
||||||
|
|
||||||
return wrap(cfg.host, auths...)
|
return wrap(cfg.host, auths...)
|
||||||
@@ -350,7 +356,7 @@ func (i *Image) client(ctx context.Context, state ImageState, args ImageArgs) (C
|
|||||||
// 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(
|
||||||
_ context.Context,
|
_ provider.Context,
|
||||||
_ string,
|
_ string,
|
||||||
_ resource.PropertyMap,
|
_ resource.PropertyMap,
|
||||||
news resource.PropertyMap,
|
news resource.PropertyMap,
|
||||||
@@ -452,12 +458,13 @@ 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.
|
// previews. In CI environments we default to building during previews, but we
|
||||||
|
// 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 true
|
return ciutil.IsCI()
|
||||||
}
|
}
|
||||||
|
|
||||||
type build struct {
|
type build struct {
|
||||||
@@ -488,7 +495,7 @@ func (b build) ShouldExec() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ia ImageArgs) toBuild(
|
func (ia ImageArgs) toBuild(
|
||||||
ctx context.Context,
|
ctx provider.Context,
|
||||||
preview bool,
|
preview bool,
|
||||||
) (Build, error) {
|
) (Build, error) {
|
||||||
opts, err := ia.validate(preview)
|
opts, err := ia.validate(preview)
|
||||||
@@ -497,15 +504,18 @@ func (ia ImageArgs) toBuild(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(ia.Exports) == 0 && !ia.Push && !ia.Load {
|
if len(ia.Exports) == 0 && !ia.Push && !ia.Load {
|
||||||
provider.GetLogger(ctx).Warning(
|
ctx.Log(diag.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 {
|
||||||
provider.GetLogger(ctx).Warning(
|
ctx.Log(
|
||||||
"Caching doesn't work reliably with multi-platform builds (https://github.com/docker/buildx/discussions/1382). " +
|
diag.Warning,
|
||||||
"Instead, perform one cached build per platform and create an Index to join them all together.")
|
"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.",
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return build{
|
return build{
|
||||||
@@ -541,17 +551,13 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
dockerfile, context, err := ia.Context.validate(preview, ia.Dockerfile)
|
dockerfile, err := ia.Context.validate(preview, ia.Dockerfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
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, ia.Context.Context); err != nil {
|
||||||
multierr = errors.Join(multierr, err)
|
multierr = errors.Join(multierr, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -634,24 +640,19 @@ func (ia *ImageArgs) validate(preview bool) (controllerapi.BuildOptions, error)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
builder := BuilderConfig{}
|
|
||||||
if normalized.Builder != nil {
|
|
||||||
builder = *normalized.Builder
|
|
||||||
}
|
|
||||||
|
|
||||||
opts := controllerapi.BuildOptions{
|
opts := controllerapi.BuildOptions{
|
||||||
BuildArgs: normalized.BuildArgs,
|
BuildArgs: normalized.BuildArgs,
|
||||||
Builder: builder.Name,
|
Builder: normalized.Builder.Name,
|
||||||
CacheFrom: cacheFrom,
|
CacheFrom: cacheFrom,
|
||||||
CacheTo: cacheTo,
|
CacheTo: cacheTo,
|
||||||
ContextPath: context.Location,
|
ContextPath: normalized.Context.Location,
|
||||||
DockerfileName: dockerfile.Location,
|
DockerfileName: dockerfile.Location,
|
||||||
Exports: exports,
|
Exports: exports,
|
||||||
ExtraHosts: normalized.AddHosts,
|
ExtraHosts: normalized.AddHosts,
|
||||||
Labels: normalized.Labels,
|
Labels: normalized.Labels,
|
||||||
NetworkMode: normalized.Network.String(),
|
NetworkMode: string(normalized.Network),
|
||||||
NoCache: normalized.NoCache,
|
NoCache: normalized.NoCache,
|
||||||
NamedContexts: normalized.Context.namedMap(),
|
NamedContexts: normalized.Context.Named.Map(),
|
||||||
Platforms: platforms,
|
Platforms: platforms,
|
||||||
Pull: normalized.Pull,
|
Pull: normalized.Pull,
|
||||||
Secrets: secrets,
|
Secrets: secrets,
|
||||||
@@ -665,7 +666,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 context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
preview bool,
|
preview bool,
|
||||||
@@ -714,7 +715,7 @@ func (i *Image) Create(
|
|||||||
return id, state, nil
|
return id, state, nil
|
||||||
}
|
}
|
||||||
if preview && !input.buildable() {
|
if preview && !input.buildable() {
|
||||||
provider.GetLogger(ctx).Warning("Skipping preview build because some inputs are unknown.")
|
ctx.Log(diag.Warning, "Skipping preview build because some inputs are unknown.")
|
||||||
return id, state, nil
|
return id, state, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -752,7 +753,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 context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
_ ImageState,
|
_ ImageState,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
@@ -765,7 +766,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 context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
input ImageArgs,
|
input ImageArgs,
|
||||||
state ImageState,
|
state ImageState,
|
||||||
@@ -799,7 +800,7 @@ 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 {
|
||||||
provider.GetLogger(ctx).Warning(err.Error())
|
ctx.Log(diag.Warning, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -828,7 +829,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 context.Context,
|
ctx provider.Context,
|
||||||
_ string,
|
_ string,
|
||||||
state ImageState,
|
state ImageState,
|
||||||
) error {
|
) error {
|
||||||
@@ -859,9 +860,9 @@ func (i *Image) Delete(
|
|||||||
|
|
||||||
var multierr error
|
var multierr error
|
||||||
for _, digested := range digests {
|
for _, digested := range digests {
|
||||||
err = cli.Delete(ctx, digested)
|
err = cli.Delete(context.Context(ctx), digested)
|
||||||
if errdefs.IsNotFound(err) {
|
if errdefs.IsNotFound(err) {
|
||||||
provider.GetLogger(ctx).Warning(digested + " not found")
|
ctx.Log(diag.Warning, digested+" not found")
|
||||||
continue // Nothing to do.
|
continue // Nothing to do.
|
||||||
}
|
}
|
||||||
multierr = errors.Join(multierr, err)
|
multierr = errors.Join(multierr, err)
|
||||||
@@ -873,7 +874,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(
|
||||||
_ context.Context,
|
_ provider.Context,
|
||||||
_ string,
|
_ string,
|
||||||
olds ImageState,
|
olds ImageState,
|
||||||
news ImageArgs,
|
news ImageArgs,
|
||||||
@@ -887,7 +888,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 !reflect.DeepEqual(olds.BuildOnPreview, news.BuildOnPreview) {
|
if olds.BuildOnPreview != news.BuildOnPreview {
|
||||||
diff["buildOnPreview"] = update
|
diff["buildOnPreview"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Builder, news.Builder) {
|
if !reflect.DeepEqual(olds.Builder, news.Builder) {
|
||||||
@@ -905,9 +906,11 @@ 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
|
||||||
}
|
}
|
||||||
dockerfile, _, _ := news.Context.validate(true, news.Dockerfile)
|
if olds.Dockerfile.Location != news.Dockerfile.Location {
|
||||||
if !reflect.DeepEqual(olds.Dockerfile, dockerfile) {
|
diff["dockerfile.location"] = update
|
||||||
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) {
|
||||||
@@ -919,7 +922,7 @@ func (*Image) Diff(
|
|||||||
if olds.Load != news.Load {
|
if olds.Load != news.Load {
|
||||||
diff["load"] = update
|
diff["load"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Network, news.Network) {
|
if olds.Network != news.Network {
|
||||||
diff["network"] = update
|
diff["network"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.NoCache, news.NoCache) {
|
if !reflect.DeepEqual(olds.NoCache, news.NoCache) {
|
||||||
@@ -928,10 +931,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 !reflect.DeepEqual(olds.Pull, news.Pull) {
|
if olds.Pull != news.Pull {
|
||||||
diff["pull"] = update
|
diff["pull"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Push, news.Push) {
|
if olds.Push != news.Push {
|
||||||
diff["push"] = update
|
diff["push"] = update
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(olds.Secrets, news.Secrets) {
|
if !reflect.DeepEqual(olds.Secrets, news.Secrets) {
|
||||||
@@ -956,7 +959,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,
|
||||||
dockerfile.Location,
|
news.Dockerfile.Location,
|
||||||
news.Context.Named.Map(),
|
news.Context.Named.Map(),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
@@ -40,7 +39,7 @@ import (
|
|||||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _fakeURN = resource.NewURN("test", "provider", "a", "docker-build:index:Image", "test")
|
var _fakeURN = resource.NewURN("test", "provider", "a", "dockerbuild:index:Image", "test")
|
||||||
|
|
||||||
func TestImageLifecycle(t *testing.T) {
|
func TestImageLifecycle(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
@@ -65,7 +64,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(_ context.Context, b Build) (*client.SolveResponse, error) {
|
func(_ provider.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{
|
||||||
@@ -83,7 +82,6 @@ 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"),
|
||||||
@@ -131,7 +129,6 @@ 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"),
|
||||||
@@ -160,7 +157,6 @@ 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")},
|
||||||
),
|
),
|
||||||
@@ -193,7 +189,6 @@ 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")},
|
||||||
),
|
),
|
||||||
@@ -220,7 +215,6 @@ 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")},
|
||||||
),
|
),
|
||||||
@@ -239,7 +233,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(_ context.Context, b Build) (*client.SolveResponse, error) {
|
func(_ provider.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"},
|
||||||
@@ -252,7 +246,6 @@ 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"),
|
||||||
@@ -273,48 +266,6 @@ 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 {
|
||||||
@@ -322,7 +273,7 @@ func TestImageLifecycle(t *testing.T) {
|
|||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
lc := integration.LifeCycleTest{
|
lc := integration.LifeCycleTest{
|
||||||
Resource: "docker-build:index:Image",
|
Resource: "dockerbuild:index:Image",
|
||||||
Create: tt.op(t),
|
Create: tt.op(t),
|
||||||
}
|
}
|
||||||
s := newServer(tt.client(t))
|
s := newServer(tt.client(t))
|
||||||
@@ -414,13 +365,12 @@ func TestRead(t *testing.T) {
|
|||||||
func TestImageDiff(t *testing.T) {
|
func TestImageDiff(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
emptyDir := t.TempDir()
|
emptyDir := t.TempDir()
|
||||||
host := Host
|
|
||||||
|
|
||||||
hash, err := hashBuildContext(emptyDir, "", nil)
|
hash, err := hashBuildContext(emptyDir, "", nil)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
baseArgs := ImageArgs{
|
baseArgs := ImageArgs{
|
||||||
Context: &BuildContext{Context: Context{Location: emptyDir}},
|
Context: BuildContext{Context: Context{Location: emptyDir}},
|
||||||
Dockerfile: &Dockerfile{Location: "testdata/noop"},
|
Dockerfile: Dockerfile{Location: "testdata/noop"},
|
||||||
Tags: []string{},
|
Tags: []string{},
|
||||||
}
|
}
|
||||||
baseState := ImageState{
|
baseState := ImageState{
|
||||||
@@ -566,21 +516,11 @@ func TestImageDiff(t *testing.T) {
|
|||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "diff if buildOnPreview doesn't change",
|
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
|
||||||
news: func(t *testing.T, ia ImageArgs) ImageArgs {
|
|
||||||
val := true
|
|
||||||
ia.BuildOnPreview = &val
|
|
||||||
return ia
|
|
||||||
},
|
|
||||||
wantChanges: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "diff if buildOnPreview changes",
|
name: "diff if buildOnPreview changes",
|
||||||
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 := false
|
val := true
|
||||||
ia.BuildOnPreview = &val
|
ia.BuildOnPreview = &val
|
||||||
return ia
|
return ia
|
||||||
},
|
},
|
||||||
@@ -626,7 +566,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if context changes",
|
name: "diff if context changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Context = &BuildContext{Context: Context{Location: "testdata/ignores"}}
|
a.Context.Location = "testdata/ignores"
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -635,7 +575,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if named context changes",
|
name: "diff if named context changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Context = &BuildContext{Named: NamedContexts{"foo": Context{Location: "bar"}}}
|
a.Context.Named = NamedContexts{"foo": Context{Location: "bar"}}
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -644,7 +584,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if network changes",
|
name: "diff if network changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Network = &host
|
a.Network = Host
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -653,7 +593,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if dockerfile location changes",
|
name: "diff if dockerfile location changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Dockerfile = &Dockerfile{Location: "testdata/ignores/basedir/Dockerfile"}
|
a.Dockerfile.Location = "testdata/ignores/basedir/Dockerfile"
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -662,7 +602,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if dockerfile inline changes",
|
name: "diff if dockerfile inline changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Dockerfile = &Dockerfile{Inline: "FROM scratch"}
|
a.Dockerfile.Inline = "FROM scratch"
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -689,7 +629,7 @@ func TestImageDiff(t *testing.T) {
|
|||||||
name: "diff if builder changes",
|
name: "diff if builder changes",
|
||||||
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
olds: func(*testing.T, ImageState) ImageState { return baseState },
|
||||||
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
news: func(_ *testing.T, a ImageArgs) ImageArgs {
|
||||||
a.Builder = &BuilderConfig{Name: "foo"}
|
a.Builder.Name = "foo"
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -769,8 +709,6 @@ func TestImageDiff(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
tt := tt
|
tt := tt
|
||||||
baseState := baseState
|
|
||||||
baseArgs := baseArgs
|
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
resp, err := s.Diff(provider.DiffRequest{
|
resp, err := s.Diff(provider.DiffRequest{
|
||||||
@@ -791,7 +729,7 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
args := ImageArgs{
|
args := ImageArgs{
|
||||||
Tags: []string{"a/bad:tag:format"},
|
Tags: []string{"a/bad:tag:format"},
|
||||||
Exports: []Export{{Raw: "badexport,-"}},
|
Exports: []Export{{Raw: "badexport,-"}},
|
||||||
Context: &BuildContext{Context: Context{Location: "./testdata"}},
|
Context: BuildContext{Context: Context{Location: "./testdata"}},
|
||||||
Platforms: []Platform{","},
|
Platforms: []Platform{","},
|
||||||
CacheFrom: []CacheFrom{{Raw: "=badcachefrom"}},
|
CacheFrom: []CacheFrom{{Raw: "=badcachefrom"}},
|
||||||
CacheTo: []CacheTo{{Raw: "=badcacheto"}},
|
CacheTo: []CacheTo{{Raw: "=badcacheto"}},
|
||||||
@@ -809,7 +747,7 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
t.Run("buildOnPreview", func(t *testing.T) {
|
t.Run("buildOnPreview", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
args := ImageArgs{
|
args := ImageArgs{
|
||||||
Context: &BuildContext{Context: Context{Location: "testdata/noop"}},
|
Context: BuildContext{Context: Context{Location: "testdata/noop"}},
|
||||||
Tags: []string{"my-tag"},
|
Tags: []string{"my-tag"},
|
||||||
Exports: []Export{{Registry: &ExportRegistry{ExportImage{Push: pulumi.BoolRef(true)}}}},
|
Exports: []Export{{Registry: &ExportRegistry{ExportImage{Push: pulumi.BoolRef(true)}}}},
|
||||||
}
|
}
|
||||||
@@ -837,12 +775,12 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
"known": "value",
|
"known": "value",
|
||||||
"": "",
|
"": "",
|
||||||
},
|
},
|
||||||
Builder: nil,
|
Builder: BuilderConfig{},
|
||||||
CacheFrom: []CacheFrom{{GHA: &CacheFromGitHubActions{}}, {Raw: ""}},
|
CacheFrom: []CacheFrom{{GHA: &CacheFromGitHubActions{}}, {Raw: ""}},
|
||||||
CacheTo: []CacheTo{{GHA: &CacheToGitHubActions{}}, {Raw: ""}},
|
CacheTo: []CacheTo{{GHA: &CacheToGitHubActions{}}, {Raw: ""}},
|
||||||
Context: nil,
|
Context: BuildContext{},
|
||||||
Exports: []Export{{Raw: ""}},
|
Exports: []Export{{Raw: ""}},
|
||||||
Dockerfile: nil,
|
Dockerfile: Dockerfile{},
|
||||||
Platforms: []Platform{"linux/amd64", ""},
|
Platforms: []Platform{"linux/amd64", ""},
|
||||||
Registries: []Registry{
|
Registries: []Registry{
|
||||||
{
|
{
|
||||||
@@ -865,7 +803,7 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
t.Run("disabled caches", func(t *testing.T) {
|
t.Run("disabled caches", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
args := ImageArgs{
|
args := ImageArgs{
|
||||||
Context: &BuildContext{Context: Context{Location: "testdata/noop"}},
|
Context: BuildContext{Context: Context{Location: "testdata/noop"}},
|
||||||
CacheFrom: []CacheFrom{{Raw: "type=registry", Disabled: true}},
|
CacheFrom: []CacheFrom{{Raw: "type=registry", Disabled: true}},
|
||||||
CacheTo: []CacheTo{{Raw: "type=registry", Disabled: true}},
|
CacheTo: []CacheTo{{Raw: "type=registry", Disabled: true}},
|
||||||
Exports: []Export{{Raw: "type=registry", Disabled: true}},
|
Exports: []Export{{Raw: "type=registry", Disabled: true}},
|
||||||
@@ -915,8 +853,7 @@ func TestValidateImageArgs(t *testing.T) {
|
|||||||
for _, d := range []Dockerfile{
|
for _, d := range []Dockerfile{
|
||||||
{Location: path}, {Inline: string(data)},
|
{Location: path}, {Inline: string(data)},
|
||||||
} {
|
} {
|
||||||
d := d
|
args := ImageArgs{Dockerfile: d}
|
||||||
args := ImageArgs{Dockerfile: &d}
|
|
||||||
_, err := args.validate(false)
|
_, err := args.validate(false)
|
||||||
assert.ErrorContains(t, err, "unknown instruction: RUNN (did you mean RUN?)")
|
assert.ErrorContains(t, err, "unknown instruction: RUNN (did you mean RUN?)")
|
||||||
}
|
}
|
||||||
@@ -1003,14 +940,16 @@ func TestBuildable(t *testing.T) {
|
|||||||
|
|
||||||
func TestToBuild(t *testing.T) {
|
func TestToBuild(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
Max := Max
|
ctrl := gomock.NewController(t)
|
||||||
|
pctx := NewMockProviderContext(ctrl)
|
||||||
|
pctx.EXPECT().Log(gomock.Any(), gomock.Any()).AnyTimes()
|
||||||
|
|
||||||
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"},
|
||||||
@@ -1029,6 +968,6 @@ func TestToBuild(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := ia.toBuild(context.Background(), false)
|
_, err := ia.toBuild(pctx, false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -48,10 +47,10 @@ type Index struct{}
|
|||||||
|
|
||||||
// IndexArgs instantiate an Index.
|
// IndexArgs instantiate an Index.
|
||||||
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"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// IndexState captures the state of an Index.
|
// IndexState captures the state of an Index.
|
||||||
@@ -64,25 +63,13 @@ 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(`
|
||||||
A wrapper around "docker buildx imagetools create" to create an index
|
An index (or manifest list) referencing one or more existing images.
|
||||||
(or manifest list) referencing one or more existing images.
|
|
||||||
|
|
||||||
In most cases you do not need an "Index" to build a multi-platform
|
Useful for crafting a multi-platform image from several
|
||||||
image -- specifying multiple platforms on the "Image" will handle this
|
platform-specific images.
|
||||||
for you automatically.
|
|
||||||
|
|
||||||
However, as of April 2024, building multi-platform images _with
|
This creates an OCI image index or a Docker manifest list depending on
|
||||||
caching_ will only export a cache for one platform at a time (see [this
|
the media types of the source images.
|
||||||
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,
|
||||||
)
|
)
|
||||||
@@ -121,7 +108,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 context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
preview bool,
|
preview bool,
|
||||||
@@ -133,7 +120,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 context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
state IndexState,
|
state IndexState,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
@@ -151,8 +138,6 @@ func (i *Index) Update(
|
|||||||
return state, nil
|
return state, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
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.Push, input.Tag, input.Sources...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return state, fmt.Errorf("creating: %w", err)
|
return state, fmt.Errorf("creating: %w", err)
|
||||||
@@ -166,7 +151,7 @@ func (i *Index) Update(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (i *Index) Read(
|
func (i *Index) Read(
|
||||||
ctx context.Context,
|
ctx provider.Context,
|
||||||
name string,
|
name string,
|
||||||
input IndexArgs,
|
input IndexArgs,
|
||||||
state IndexState,
|
state IndexState,
|
||||||
@@ -175,7 +160,6 @@ func (i *Index) Read(
|
|||||||
state.Ref = input.Tag
|
state.Ref = input.Tag
|
||||||
|
|
||||||
if !input.Push {
|
if !input.Push {
|
||||||
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.
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,8 +168,6 @@ func (i *Index) Read(
|
|||||||
return name, input, state, err
|
return name, input, state, err
|
||||||
}
|
}
|
||||||
|
|
||||||
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 err != nil && strings.Contains(err.Error(), "No such manifest:") && input.Push {
|
||||||
// A remote tag was expected but isn't there -- delete the resource.
|
// A remote tag was expected but isn't there -- delete the resource.
|
||||||
@@ -193,7 +175,7 @@ func (i *Index) Read(
|
|||||||
}
|
}
|
||||||
if err != nil && strings.Contains(err.Error(), "No such manifest:") && !input.Push {
|
if err != nil && strings.Contains(err.Error(), "No such manifest:") && !input.Push {
|
||||||
// Nothing was pushed, so just use the tag without digest..
|
// Nothing was pushed, so just use the tag without digest..
|
||||||
return name, input, state, nil
|
return name, input, state, err
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return name, input, state, err
|
return name, input, state, err
|
||||||
@@ -211,7 +193,7 @@ 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(
|
||||||
_ context.Context,
|
_ provider.Context,
|
||||||
_ string,
|
_ string,
|
||||||
_ resource.PropertyMap,
|
_ resource.PropertyMap,
|
||||||
news resource.PropertyMap,
|
news resource.PropertyMap,
|
||||||
@@ -247,7 +229,7 @@ func (i *Index) Check(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete attempts to delete the remote manifest.
|
// Delete attempts to delete the remote manifest.
|
||||||
func (i *Index) Delete(ctx context.Context, _ string, state IndexState) error {
|
func (i *Index) Delete(ctx provider.Context, _ string, state IndexState) error {
|
||||||
if !state.Push {
|
if !state.Push {
|
||||||
return nil // Nothing to delete.
|
return nil // Nothing to delete.
|
||||||
}
|
}
|
||||||
@@ -271,7 +253,7 @@ func (i *Index) Delete(ctx context.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(
|
||||||
_ context.Context,
|
_ provider.Context,
|
||||||
_ string,
|
_ string,
|
||||||
olds IndexState,
|
olds IndexState,
|
||||||
news IndexArgs,
|
news IndexArgs,
|
||||||
@@ -286,20 +268,14 @@ func (i *Index) Diff(
|
|||||||
if !reflect.DeepEqual(olds.Sources, news.Sources) {
|
if !reflect.DeepEqual(olds.Sources, news.Sources) {
|
||||||
diff["sources"] = update
|
diff["sources"] = update
|
||||||
}
|
}
|
||||||
if olds.Registry != nil && news.Registry != nil {
|
if olds.Registry.Address != news.Registry.Address {
|
||||||
if olds.Registry.Address != news.Registry.Address {
|
diff["registry.address"] = update
|
||||||
diff["registry.address"] = update
|
if olds.Registry.Address != "" {
|
||||||
if olds.Registry.Address != "" {
|
diff["registry.address"] = replace
|
||||||
diff["registry.address"] = replace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if olds.Registry.Username != news.Registry.Username {
|
|
||||||
diff["registry.username"] = update
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (olds.Registry == nil && news.Registry != nil) ||
|
if olds.Registry.Username != news.Registry.Username {
|
||||||
(olds.Registry != nil && news.Registry == nil) {
|
diff["registry.username"] = update
|
||||||
diff["registry"] = update
|
|
||||||
}
|
}
|
||||||
// Intentionally ignore changes to registry.password
|
// Intentionally ignore changes to registry.password
|
||||||
|
|
||||||
@@ -309,11 +285,11 @@ func (i *Index) Diff(
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// client produces a CLI client scoped to this resource and layered on top of
|
// client produces a CLI client with scoped to this resource and layered on top
|
||||||
// any host-level credentials.
|
// of any host-level credentials.
|
||||||
func (i *Index) client(
|
func (i *Index) client(
|
||||||
ctx context.Context,
|
ctx provider.Context,
|
||||||
_ IndexState,
|
state IndexState,
|
||||||
args IndexArgs,
|
args IndexArgs,
|
||||||
) (Client, error) {
|
) (Client, error) {
|
||||||
cfg := infer.GetConfig[Config](ctx)
|
cfg := infer.GetConfig[Config](ctx)
|
||||||
@@ -322,14 +298,8 @@ func (i *Index) client(
|
|||||||
return cli, nil
|
return cli, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// We prefer auth from args, the provider, and state in that order. We
|
auths := cfg.Registries
|
||||||
// build a slice in reverse order because wrap() will overwrite earlier
|
auths = append(auths, state.Registry, args.Registry)
|
||||||
// entries with later ones.
|
|
||||||
auths := []Registry{}
|
|
||||||
auths = append(auths, cfg.Registries...)
|
|
||||||
if args.Registry != nil {
|
|
||||||
auths = append(auths, *args.Registry)
|
|
||||||
}
|
|
||||||
|
|
||||||
return wrap(cfg.host, auths...)
|
return wrap(cfg.host, auths...)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ func TestIndexLifecycle(t *testing.T) {
|
|||||||
t.Skip("missing environment variables")
|
t.Skip("missing environment variables")
|
||||||
}
|
}
|
||||||
lc := integration.LifeCycleTest{
|
lc := integration.LifeCycleTest{
|
||||||
Resource: "docker-build:index:Index",
|
Resource: "dockerbuild:index:Index",
|
||||||
Create: tt.op(t),
|
Create: tt.op(t),
|
||||||
}
|
}
|
||||||
s := newServer(tt.client(t))
|
s := newServer(tt.client(t))
|
||||||
@@ -109,7 +109,7 @@ func TestIndexLifecycle(t *testing.T) {
|
|||||||
|
|
||||||
func TestIndexDiff(t *testing.T) {
|
func TestIndexDiff(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
urn := resource.NewURN("test", "provider", "a", "docker-build:index:Index", "test")
|
urn := resource.NewURN("test", "provider", "a", "dockerbuild:index:Index", "test")
|
||||||
baseArgs := IndexArgs{Sources: []string{"docker.io/nginx:latest"}}
|
baseArgs := IndexArgs{Sources: []string{"docker.io/nginx:latest"}}
|
||||||
baseState := IndexState{IndexArgs: baseArgs}
|
baseState := IndexState{IndexArgs: baseArgs}
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ func TestIndexDiff(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "no diff if registry password changes",
|
name: "no diff if registry password changes",
|
||||||
olds: func(_ *testing.T, s IndexState) IndexState {
|
olds: func(_ *testing.T, s IndexState) IndexState {
|
||||||
s.Registry = &Registry{
|
s.Registry = Registry{
|
||||||
Address: "foo",
|
Address: "foo",
|
||||||
Username: "foo",
|
Username: "foo",
|
||||||
Password: "foo",
|
Password: "foo",
|
||||||
@@ -146,7 +146,7 @@ func TestIndexDiff(t *testing.T) {
|
|||||||
return s
|
return s
|
||||||
},
|
},
|
||||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||||
a.Registry = &Registry{
|
a.Registry = Registry{
|
||||||
Address: "foo",
|
Address: "foo",
|
||||||
Username: "foo",
|
Username: "foo",
|
||||||
Password: "DIFFERENT PASSWORD",
|
Password: "DIFFERENT PASSWORD",
|
||||||
@@ -159,7 +159,7 @@ func TestIndexDiff(t *testing.T) {
|
|||||||
name: "diff if registry added",
|
name: "diff if registry added",
|
||||||
olds: func(*testing.T, IndexState) IndexState { return baseState },
|
olds: func(*testing.T, IndexState) IndexState { return baseState },
|
||||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||||
a.Registry = &Registry{Address: "foo.com", Username: "foo", Password: "foo"}
|
a.Registry = Registry{Address: "foo.com", Username: "foo", Password: "foo"}
|
||||||
return a
|
return a
|
||||||
},
|
},
|
||||||
wantChanges: true,
|
wantChanges: true,
|
||||||
@@ -167,7 +167,7 @@ func TestIndexDiff(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "diff if registry user changes",
|
name: "diff if registry user changes",
|
||||||
olds: func(_ *testing.T, s IndexState) IndexState {
|
olds: func(_ *testing.T, s IndexState) IndexState {
|
||||||
s.Registry = &Registry{
|
s.Registry = Registry{
|
||||||
Address: "foo",
|
Address: "foo",
|
||||||
Username: "foo",
|
Username: "foo",
|
||||||
Password: "foo",
|
Password: "foo",
|
||||||
@@ -175,7 +175,7 @@ func TestIndexDiff(t *testing.T) {
|
|||||||
return s
|
return s
|
||||||
},
|
},
|
||||||
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
news: func(_ *testing.T, a IndexArgs) IndexArgs {
|
||||||
a.Registry = &Registry{
|
a.Registry = Registry{
|
||||||
Address: "DIFFERENT USER",
|
Address: "DIFFERENT USER",
|
||||||
Username: "foo",
|
Username: "foo",
|
||||||
Password: "foo",
|
Password: "foo",
|
||||||
|
|||||||
1
provider/internal/metadata.json
Normal file
1
provider/internal/metadata.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
737
provider/internal/mockcli_test.go
generated
737
provider/internal/mockcli_test.go
generated
@@ -1,737 +0,0 @@
|
|||||||
// Code generated by MockGen. DO NOT EDIT.
|
|
||||||
// Source: cli.go
|
|
||||||
//
|
|
||||||
// Generated by this command:
|
|
||||||
//
|
|
||||||
// mockgen -typed -package internal -source cli.go -destination mockcli_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
|
|
||||||
//
|
|
||||||
// Package internal is a generated GoMock package.
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
io "io"
|
|
||||||
reflect "reflect"
|
|
||||||
|
|
||||||
command "github.com/docker/cli/cli/command"
|
|
||||||
configfile "github.com/docker/cli/cli/config/configfile"
|
|
||||||
docker "github.com/docker/cli/cli/context/docker"
|
|
||||||
store "github.com/docker/cli/cli/context/store"
|
|
||||||
store0 "github.com/docker/cli/cli/manifest/store"
|
|
||||||
client "github.com/docker/cli/cli/registry/client"
|
|
||||||
streams "github.com/docker/cli/cli/streams"
|
|
||||||
trust "github.com/docker/cli/cli/trust"
|
|
||||||
client0 "github.com/docker/docker/client"
|
|
||||||
client1 "github.com/theupdateframework/notary/client"
|
|
||||||
gomock "go.uber.org/mock/gomock"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MockCli is a mock of Cli interface.
|
|
||||||
type MockCli struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockCliMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockCliMockRecorder is the mock recorder for MockCli.
|
|
||||||
type MockCliMockRecorder struct {
|
|
||||||
mock *MockCli
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockCli creates a new mock instance.
|
|
||||||
func NewMockCli(ctrl *gomock.Controller) *MockCli {
|
|
||||||
mock := &MockCli{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockCliMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockCli) EXPECT() *MockCliMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply mocks base method.
|
|
||||||
func (m *MockCli) Apply(ops ...command.CLIOption) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
varargs := []any{}
|
|
||||||
for _, a := range ops {
|
|
||||||
varargs = append(varargs, a)
|
|
||||||
}
|
|
||||||
ret := m.ctrl.Call(m, "Apply", varargs...)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply indicates an expected call of Apply.
|
|
||||||
func (mr *MockCliMockRecorder) Apply(ops ...any) *CliApplyCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Apply", reflect.TypeOf((*MockCli)(nil).Apply), ops...)
|
|
||||||
return &CliApplyCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliApplyCall wrap *gomock.Call
|
|
||||||
type CliApplyCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliApplyCall) Return(arg0 error) *CliApplyCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliApplyCall) Do(f func(...command.CLIOption) error) *CliApplyCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliApplyCall) DoAndReturn(f func(...command.CLIOption) error) *CliApplyCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// BuildKitEnabled mocks base method.
|
|
||||||
func (m *MockCli) BuildKitEnabled() (bool, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "BuildKitEnabled")
|
|
||||||
ret0, _ := ret[0].(bool)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// BuildKitEnabled indicates an expected call of BuildKitEnabled.
|
|
||||||
func (mr *MockCliMockRecorder) BuildKitEnabled() *CliBuildKitEnabledCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BuildKitEnabled", reflect.TypeOf((*MockCli)(nil).BuildKitEnabled))
|
|
||||||
return &CliBuildKitEnabledCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliBuildKitEnabledCall wrap *gomock.Call
|
|
||||||
type CliBuildKitEnabledCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliBuildKitEnabledCall) Return(arg0 bool, arg1 error) *CliBuildKitEnabledCall {
|
|
||||||
c.Call = c.Call.Return(arg0, arg1)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliBuildKitEnabledCall) Do(f func() (bool, error)) *CliBuildKitEnabledCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliBuildKitEnabledCall) DoAndReturn(f func() (bool, error)) *CliBuildKitEnabledCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Client mocks base method.
|
|
||||||
func (m *MockCli) Client() client0.APIClient {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Client")
|
|
||||||
ret0, _ := ret[0].(client0.APIClient)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Client indicates an expected call of Client.
|
|
||||||
func (mr *MockCliMockRecorder) Client() *CliClientCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Client", reflect.TypeOf((*MockCli)(nil).Client))
|
|
||||||
return &CliClientCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliClientCall wrap *gomock.Call
|
|
||||||
type CliClientCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliClientCall) Return(arg0 client0.APIClient) *CliClientCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliClientCall) Do(f func() client0.APIClient) *CliClientCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliClientCall) DoAndReturn(f func() client0.APIClient) *CliClientCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// ConfigFile mocks base method.
|
|
||||||
func (m *MockCli) ConfigFile() *configfile.ConfigFile {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ConfigFile")
|
|
||||||
ret0, _ := ret[0].(*configfile.ConfigFile)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ConfigFile indicates an expected call of ConfigFile.
|
|
||||||
func (mr *MockCliMockRecorder) ConfigFile() *CliConfigFileCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConfigFile", reflect.TypeOf((*MockCli)(nil).ConfigFile))
|
|
||||||
return &CliConfigFileCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliConfigFileCall wrap *gomock.Call
|
|
||||||
type CliConfigFileCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliConfigFileCall) Return(arg0 *configfile.ConfigFile) *CliConfigFileCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliConfigFileCall) Do(f func() *configfile.ConfigFile) *CliConfigFileCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliConfigFileCall) DoAndReturn(f func() *configfile.ConfigFile) *CliConfigFileCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContentTrustEnabled mocks base method.
|
|
||||||
func (m *MockCli) ContentTrustEnabled() bool {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ContentTrustEnabled")
|
|
||||||
ret0, _ := ret[0].(bool)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContentTrustEnabled indicates an expected call of ContentTrustEnabled.
|
|
||||||
func (mr *MockCliMockRecorder) ContentTrustEnabled() *CliContentTrustEnabledCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContentTrustEnabled", reflect.TypeOf((*MockCli)(nil).ContentTrustEnabled))
|
|
||||||
return &CliContentTrustEnabledCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliContentTrustEnabledCall wrap *gomock.Call
|
|
||||||
type CliContentTrustEnabledCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliContentTrustEnabledCall) Return(arg0 bool) *CliContentTrustEnabledCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliContentTrustEnabledCall) Do(f func() bool) *CliContentTrustEnabledCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliContentTrustEnabledCall) DoAndReturn(f func() bool) *CliContentTrustEnabledCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContextStore mocks base method.
|
|
||||||
func (m *MockCli) ContextStore() store.Store {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ContextStore")
|
|
||||||
ret0, _ := ret[0].(store.Store)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContextStore indicates an expected call of ContextStore.
|
|
||||||
func (mr *MockCliMockRecorder) ContextStore() *CliContextStoreCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ContextStore", reflect.TypeOf((*MockCli)(nil).ContextStore))
|
|
||||||
return &CliContextStoreCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliContextStoreCall wrap *gomock.Call
|
|
||||||
type CliContextStoreCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliContextStoreCall) Return(arg0 store.Store) *CliContextStoreCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliContextStoreCall) Do(f func() store.Store) *CliContextStoreCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliContextStoreCall) DoAndReturn(f func() store.Store) *CliContextStoreCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// CurrentContext mocks base method.
|
|
||||||
func (m *MockCli) CurrentContext() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "CurrentContext")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// CurrentContext indicates an expected call of CurrentContext.
|
|
||||||
func (mr *MockCliMockRecorder) CurrentContext() *CliCurrentContextCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentContext", reflect.TypeOf((*MockCli)(nil).CurrentContext))
|
|
||||||
return &CliCurrentContextCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliCurrentContextCall wrap *gomock.Call
|
|
||||||
type CliCurrentContextCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliCurrentContextCall) Return(arg0 string) *CliCurrentContextCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliCurrentContextCall) Do(f func() string) *CliCurrentContextCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliCurrentContextCall) DoAndReturn(f func() string) *CliCurrentContextCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// CurrentVersion mocks base method.
|
|
||||||
func (m *MockCli) CurrentVersion() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "CurrentVersion")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// CurrentVersion indicates an expected call of CurrentVersion.
|
|
||||||
func (mr *MockCliMockRecorder) CurrentVersion() *CliCurrentVersionCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CurrentVersion", reflect.TypeOf((*MockCli)(nil).CurrentVersion))
|
|
||||||
return &CliCurrentVersionCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliCurrentVersionCall wrap *gomock.Call
|
|
||||||
type CliCurrentVersionCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliCurrentVersionCall) Return(arg0 string) *CliCurrentVersionCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliCurrentVersionCall) Do(f func() string) *CliCurrentVersionCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliCurrentVersionCall) DoAndReturn(f func() string) *CliCurrentVersionCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DefaultVersion mocks base method.
|
|
||||||
func (m *MockCli) DefaultVersion() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "DefaultVersion")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// DefaultVersion indicates an expected call of DefaultVersion.
|
|
||||||
func (mr *MockCliMockRecorder) DefaultVersion() *CliDefaultVersionCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DefaultVersion", reflect.TypeOf((*MockCli)(nil).DefaultVersion))
|
|
||||||
return &CliDefaultVersionCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliDefaultVersionCall wrap *gomock.Call
|
|
||||||
type CliDefaultVersionCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliDefaultVersionCall) Return(arg0 string) *CliDefaultVersionCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliDefaultVersionCall) Do(f func() string) *CliDefaultVersionCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliDefaultVersionCall) DoAndReturn(f func() string) *CliDefaultVersionCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DockerEndpoint mocks base method.
|
|
||||||
func (m *MockCli) DockerEndpoint() docker.Endpoint {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "DockerEndpoint")
|
|
||||||
ret0, _ := ret[0].(docker.Endpoint)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// DockerEndpoint indicates an expected call of DockerEndpoint.
|
|
||||||
func (mr *MockCliMockRecorder) DockerEndpoint() *CliDockerEndpointCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DockerEndpoint", reflect.TypeOf((*MockCli)(nil).DockerEndpoint))
|
|
||||||
return &CliDockerEndpointCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliDockerEndpointCall wrap *gomock.Call
|
|
||||||
type CliDockerEndpointCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliDockerEndpointCall) Return(arg0 docker.Endpoint) *CliDockerEndpointCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliDockerEndpointCall) Do(f func() docker.Endpoint) *CliDockerEndpointCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliDockerEndpointCall) DoAndReturn(f func() docker.Endpoint) *CliDockerEndpointCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Err mocks base method.
|
|
||||||
func (m *MockCli) Err() io.Writer {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Err")
|
|
||||||
ret0, _ := ret[0].(io.Writer)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Err indicates an expected call of Err.
|
|
||||||
func (mr *MockCliMockRecorder) Err() *CliErrCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Err", reflect.TypeOf((*MockCli)(nil).Err))
|
|
||||||
return &CliErrCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliErrCall wrap *gomock.Call
|
|
||||||
type CliErrCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliErrCall) Return(arg0 io.Writer) *CliErrCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliErrCall) Do(f func() io.Writer) *CliErrCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliErrCall) DoAndReturn(f func() io.Writer) *CliErrCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// In mocks base method.
|
|
||||||
func (m *MockCli) In() *streams.In {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "In")
|
|
||||||
ret0, _ := ret[0].(*streams.In)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// In indicates an expected call of In.
|
|
||||||
func (mr *MockCliMockRecorder) In() *CliInCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "In", reflect.TypeOf((*MockCli)(nil).In))
|
|
||||||
return &CliInCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliInCall wrap *gomock.Call
|
|
||||||
type CliInCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliInCall) Return(arg0 *streams.In) *CliInCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliInCall) Do(f func() *streams.In) *CliInCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliInCall) DoAndReturn(f func() *streams.In) *CliInCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// ManifestStore mocks base method.
|
|
||||||
func (m *MockCli) ManifestStore() store0.Store {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ManifestStore")
|
|
||||||
ret0, _ := ret[0].(store0.Store)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ManifestStore indicates an expected call of ManifestStore.
|
|
||||||
func (mr *MockCliMockRecorder) ManifestStore() *CliManifestStoreCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManifestStore", reflect.TypeOf((*MockCli)(nil).ManifestStore))
|
|
||||||
return &CliManifestStoreCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliManifestStoreCall wrap *gomock.Call
|
|
||||||
type CliManifestStoreCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliManifestStoreCall) Return(arg0 store0.Store) *CliManifestStoreCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliManifestStoreCall) Do(f func() store0.Store) *CliManifestStoreCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliManifestStoreCall) DoAndReturn(f func() store0.Store) *CliManifestStoreCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotaryClient mocks base method.
|
|
||||||
func (m *MockCli) NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (client1.Repository, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "NotaryClient", imgRefAndAuth, actions)
|
|
||||||
ret0, _ := ret[0].(client1.Repository)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotaryClient indicates an expected call of NotaryClient.
|
|
||||||
func (mr *MockCliMockRecorder) NotaryClient(imgRefAndAuth, actions any) *CliNotaryClientCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotaryClient", reflect.TypeOf((*MockCli)(nil).NotaryClient), imgRefAndAuth, actions)
|
|
||||||
return &CliNotaryClientCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliNotaryClientCall wrap *gomock.Call
|
|
||||||
type CliNotaryClientCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliNotaryClientCall) Return(arg0 client1.Repository, arg1 error) *CliNotaryClientCall {
|
|
||||||
c.Call = c.Call.Return(arg0, arg1)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliNotaryClientCall) Do(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *CliNotaryClientCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliNotaryClientCall) DoAndReturn(f func(trust.ImageRefAndAuth, []string) (client1.Repository, error)) *CliNotaryClientCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Out mocks base method.
|
|
||||||
func (m *MockCli) Out() *streams.Out {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Out")
|
|
||||||
ret0, _ := ret[0].(*streams.Out)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Out indicates an expected call of Out.
|
|
||||||
func (mr *MockCliMockRecorder) Out() *CliOutCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Out", reflect.TypeOf((*MockCli)(nil).Out))
|
|
||||||
return &CliOutCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliOutCall wrap *gomock.Call
|
|
||||||
type CliOutCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliOutCall) Return(arg0 *streams.Out) *CliOutCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliOutCall) Do(f func() *streams.Out) *CliOutCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliOutCall) DoAndReturn(f func() *streams.Out) *CliOutCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// RegistryClient mocks base method.
|
|
||||||
func (m *MockCli) RegistryClient(arg0 bool) client.RegistryClient {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "RegistryClient", arg0)
|
|
||||||
ret0, _ := ret[0].(client.RegistryClient)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// RegistryClient indicates an expected call of RegistryClient.
|
|
||||||
func (mr *MockCliMockRecorder) RegistryClient(arg0 any) *CliRegistryClientCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegistryClient", reflect.TypeOf((*MockCli)(nil).RegistryClient), arg0)
|
|
||||||
return &CliRegistryClientCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliRegistryClientCall wrap *gomock.Call
|
|
||||||
type CliRegistryClientCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliRegistryClientCall) Return(arg0 client.RegistryClient) *CliRegistryClientCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliRegistryClientCall) Do(f func(bool) client.RegistryClient) *CliRegistryClientCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliRegistryClientCall) DoAndReturn(f func(bool) client.RegistryClient) *CliRegistryClientCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerInfo mocks base method.
|
|
||||||
func (m *MockCli) ServerInfo() command.ServerInfo {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "ServerInfo")
|
|
||||||
ret0, _ := ret[0].(command.ServerInfo)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerInfo indicates an expected call of ServerInfo.
|
|
||||||
func (mr *MockCliMockRecorder) ServerInfo() *CliServerInfoCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ServerInfo", reflect.TypeOf((*MockCli)(nil).ServerInfo))
|
|
||||||
return &CliServerInfoCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliServerInfoCall wrap *gomock.Call
|
|
||||||
type CliServerInfoCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliServerInfoCall) Return(arg0 command.ServerInfo) *CliServerInfoCall {
|
|
||||||
c.Call = c.Call.Return(arg0)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliServerInfoCall) Do(f func() command.ServerInfo) *CliServerInfoCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliServerInfoCall) DoAndReturn(f func() command.ServerInfo) *CliServerInfoCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetIn mocks base method.
|
|
||||||
func (m *MockCli) SetIn(in *streams.In) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
m.ctrl.Call(m, "SetIn", in)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetIn indicates an expected call of SetIn.
|
|
||||||
func (mr *MockCliMockRecorder) SetIn(in any) *CliSetInCall {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetIn", reflect.TypeOf((*MockCli)(nil).SetIn), in)
|
|
||||||
return &CliSetInCall{Call: call}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CliSetInCall wrap *gomock.Call
|
|
||||||
type CliSetInCall struct {
|
|
||||||
*gomock.Call
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return rewrite *gomock.Call.Return
|
|
||||||
func (c *CliSetInCall) Return() *CliSetInCall {
|
|
||||||
c.Call = c.Call.Return()
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
|
||||||
func (c *CliSetInCall) Do(f func(*streams.In)) *CliSetInCall {
|
|
||||||
c.Call = c.Call.Do(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// DoAndReturn rewrite *gomock.Call.DoAndReturn
|
|
||||||
func (c *CliSetInCall) DoAndReturn(f func(*streams.In)) *CliSetInCall {
|
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
27
provider/internal/mockclient_test.go
generated
27
provider/internal/mockclient_test.go
generated
@@ -3,7 +3,7 @@
|
|||||||
//
|
//
|
||||||
// Generated by this command:
|
// Generated by this command:
|
||||||
//
|
//
|
||||||
// mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-docker-build/provider/internal
|
// mockgen -typed -package internal -source client.go -destination mockclient_test.go --self_package github.com/pulumi/pulumi-dockerbuild/provider/internal
|
||||||
//
|
//
|
||||||
// Package internal is a generated GoMock package.
|
// Package internal is a generated GoMock package.
|
||||||
package internal
|
package internal
|
||||||
@@ -15,6 +15,7 @@ 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"
|
||||||
)
|
)
|
||||||
@@ -43,7 +44,7 @@ func (m *MockClient) EXPECT() *MockClientMockRecorder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Build mocks base method.
|
// Build mocks base method.
|
||||||
func (m *MockClient) Build(ctx context.Context, b Build) (*client.SolveResponse, error) {
|
func (m *MockClient) Build(ctx provider.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)
|
||||||
@@ -70,13 +71,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(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
func (c *ClientBuildCall) Do(f func(provider.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(context.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
func (c *ClientBuildCall) DoAndReturn(f func(provider.Context, Build) (*client.SolveResponse, error)) *ClientBuildCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
@@ -198,7 +199,7 @@ func (c *ClientInspectCall) DoAndReturn(f func(context.Context, string) ([]descr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ManifestCreate mocks base method.
|
// ManifestCreate mocks base method.
|
||||||
func (m *MockClient) ManifestCreate(ctx context.Context, push bool, target string, refs ...string) error {
|
func (m *MockClient) ManifestCreate(ctx provider.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 {
|
||||||
@@ -229,19 +230,19 @@ func (c *ClientManifestCreateCall) Return(arg0 error) *ClientManifestCreateCall
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientManifestCreateCall) Do(f func(context.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
func (c *ClientManifestCreateCall) Do(f func(provider.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(context.Context, bool, string, ...string) error) *ClientManifestCreateCall {
|
func (c *ClientManifestCreateCall) DoAndReturn(f func(provider.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 context.Context, target string) error {
|
func (m *MockClient) ManifestDelete(ctx provider.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)
|
||||||
@@ -267,19 +268,19 @@ func (c *ClientManifestDeleteCall) Return(arg0 error) *ClientManifestDeleteCall
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do rewrite *gomock.Call.Do
|
// Do rewrite *gomock.Call.Do
|
||||||
func (c *ClientManifestDeleteCall) Do(f func(context.Context, string) error) *ClientManifestDeleteCall {
|
func (c *ClientManifestDeleteCall) Do(f func(provider.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(context.Context, string) error) *ClientManifestDeleteCall {
|
func (c *ClientManifestDeleteCall) DoAndReturn(f func(provider.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 context.Context, target string) (string, error) {
|
func (m *MockClient) ManifestInspect(ctx provider.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)
|
||||||
@@ -306,13 +307,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(context.Context, string) (string, error)) *ClientManifestInspectCall {
|
func (c *ClientManifestInspectCall) Do(f func(provider.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(context.Context, string) (string, error)) *ClientManifestInspectCall {
|
func (c *ClientManifestInspectCall) DoAndReturn(f func(provider.Context, string) (string, error)) *ClientManifestInspectCall {
|
||||||
c.Call = c.Call.DoAndReturn(f)
|
c.Call = c.Call.DoAndReturn(f)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user