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:
6
examples/upgrade-node/Pulumi.yaml
Normal file
6
examples/upgrade-node/Pulumi.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
name: provider-docker-build
|
||||
runtime: nodejs
|
||||
plugins:
|
||||
providers:
|
||||
- name: docker-build
|
||||
path: ../../bin
|
||||
11
examples/upgrade-node/index.ts
Normal file
11
examples/upgrade-node/index.ts
Normal 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! 👍"
|
||||
`,
|
||||
},
|
||||
});
|
||||
10
examples/upgrade-node/package.json
Normal file
10
examples/upgrade-node/package.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "provider-docker-build",
|
||||
"devDependencies": {
|
||||
"@types/node": "^18"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": "^4.0.0",
|
||||
"@pulumi/pulumi": "3.144.1"
|
||||
}
|
||||
}
|
||||
18
examples/upgrade-node/tsconfig.json
Normal file
18
examples/upgrade-node/tsconfig.json
Normal 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",
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user