Do not diff __internal property in DiffConfig (#414)

This PR updates the implementation of DiffConfig to remove the
`__internal` property when comparing provider config between old state
and new input. It is observed that the `__internal` property is present
when a default provider is used. This causes a provider replacement
every time a user upgrades pulumi-docker-build, as the `__internal`
property is always stripped from state, so Pulumi will always report a
diff.

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

Changes:

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

Fixes: #404
This commit is contained in:
Ramon Quitales
2025-01-14 15:01:51 -08:00
committed by GitHub
parent 8025c5f938
commit d46882f9eb
9 changed files with 214 additions and 1 deletions

View File

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

View File

@@ -0,0 +1,11 @@
import * as pulumi from "@pulumi/pulumi";
import * as docker_build from "@pulumi/docker-build";
const inline = new docker_build.Image("inline", {
push: false,
dockerfile: {
inline: `FROM alpine
RUN echo "This uses an inline Dockerfile! 👍"
`,
},
});

View File

@@ -0,0 +1,10 @@
{
"name": "provider-docker-build",
"devDependencies": {
"@types/node": "^18"
},
"dependencies": {
"typescript": "^4.0.0",
"@pulumi/pulumi": "3.144.1"
}
}

View File

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